{ "version": 3, "sources": ["apps/partner-center-client/src/app/vbc/vbc.host.service.ts", "apps/partner-center-client/src/app/user-notifications/constants.ts", "apps/partner-center-client/src/app/user-notifications/legacy-notification-preference/cache-storage.ts", "apps/partner-center-client/src/app/user-notifications/legacy-notification-preference/legacy-notification-preference.service.ts", "apps/partner-center-client/src/app/user-permissions/tab.api.service.ts", "apps/partner-center-client/src/app/users/user-bulk-actions/user-bulk-actions.service.ts", "apps/partner-center-client/src/app/user-permissions/account-group-permissions/business-center-tab.ts", "apps/partner-center-client/src/app/users/user/preview-email/preview-email-modal.component.ts", "apps/partner-center-client/src/app/users/resend-welcome-email-dialog/resend-welcome-email-dialog.component.ts", "apps/partner-center-client/src/app/users/resend-welcome-email-dialog/resend-welcome-email-dialog.component.html", "apps/partner-center-client/src/app/users/user.service.ts", "apps/partner-center-client/src/app/users/manage-users.component.ts", "apps/partner-center-client/src/app/users/manage-users.component.html", "apps/partner-center-client/src/app/common/tertiary-dropdown-button/tertiary-dropdown-button.component.ts", "apps/partner-center-client/src/app/common/tertiary-dropdown-button/tertiary-dropdown-button.component.html", "apps/partner-center-client/src/app/common/tertiary-dropdown-button/tertiary-dropdown-button.module.ts", "apps/partner-center-client/src/app/users/user-profile-page/user-profile-page.component.ts", "apps/partner-center-client/src/app/users/user-profile-page/user-profile-page.component.html", "apps/partner-center-client/src/app/users/vapi.service.ts", "apps/partner-center-client/src/app/users/vbc-api.service.ts", "apps/partner-center-client/src/app/users/user/create-user-form.component.ts", "apps/partner-center-client/src/app/users/user/create-user-form.component.html", "apps/partner-center-client/src/app/users/user/create.component.ts", "apps/partner-center-client/src/app/users/user/create.component.html", "apps/partner-center-client/src/app/users/reset-password.service.ts", "apps/partner-center-client/src/app/users/user/edit.component.ts", "apps/partner-center-client/src/app/users/user/edit.component.html", "apps/partner-center-client/src/app/users/resend-welcome-email-dialog/resend-welcome-email-dialog.module.ts", "apps/partner-center-client/src/app/users/users.module.ts", "apps/partner-center-client/src/app/users/dev-mode.guard.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Environment, EnvironmentService } from '@galaxy/core';\n\n@Injectable({ providedIn: 'root' })\nexport class VbcHostService {\n private _host: string;\n\n constructor(private environmentService: EnvironmentService) {}\n\n host(): string {\n if (this._host) {\n return this._host;\n }\n\n switch (this.environmentService.getEnvironment()) {\n case Environment.LOCAL:\n this._host = 'localhost:8082';\n break;\n case Environment.TEST:\n this._host = 'vbc-test.appspot.com';\n break;\n case Environment.DEMO:\n this._host = 'vbc-demo.appspot.com';\n break;\n case Environment.PROD:\n this._host = 'vbc-prod.appspot.com';\n break;\n }\n return this._host;\n }\n\n hostWithScheme(): string {\n const scheme = this.environmentService.getEnvironment() === Environment.LOCAL ? 'http://' : 'https://';\n return scheme + this.host();\n }\n}\n", "export const INSTANT_EMAIL_SECTION_TYPE = 'instantEmailFlag';\nexport const DAILY_DIGEST_TYPE = 'activityDigestEmailFlag';\nexport const EXECUTIVE_REPORT_TYPE = 'executiveReportFlag';\nexport const GLOBAL_SETTINGS_TYPE = 'globalSettingsFlag';\n", "import { from, Observable } from 'rxjs';\n\nconst headerName = `cache-storage-expiration`;\n\nexport async function fetchWithCache(req: Request, cacheName: string, ttl: number): Promise {\n /**\n * Returns a cached response, making a request to the server if required.\n *\n * @param req - The request to make\n * @param cacheName - the cache that should be used for response\n * @param ttl - the number of milliseconds responses should be cached for\n * @returns the body of the response as a json object\n */\n const cache = await caches.open(cacheName);\n let resp = await cache.match(req.url);\n if (!resp || Date.parse(resp.headers.get(headerName)) < Date.now()) {\n resp = await fetch(req);\n //Response is duplicated to make mutable\n resp = new Response(resp.body, {\n headers: { [headerName]: new Date(Date.now() + ttl).toISOString() },\n });\n await cache.put(req, resp);\n //Response is obtained from cache to prevent 'Body has already been consumed' errors\n resp = await cache.match(req.url);\n }\n return await resp.json();\n}\n\nexport function fetchWithCache$(req: Request, cacheName: string, ttl: number): Observable {\n /**\n * Returns a cached response, making a request to the server if required.\n *\n * @param req - The request to make\n * @param cacheName - the cache that should be used for response\n * @param ttl - the number of milliseconds responses should be held for\n * @returns an observable of the body of the response as a json object\n *\n * @see fetchWithCache\n */\n return from(fetchWithCache(req, cacheName, ttl));\n}\n", "import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { SessionService } from '@galaxy/core';\nimport { WhitelabelService } from '@galaxy/partner';\nimport {\n LegacyNotificationPreferenceService as LegacyNotificationPreferenceSDKService,\n LegacyStatus,\n} from '@vendasta/notifications-sdk';\nimport { GetResponseInterface, PreferenceInterface } from '@vendasta/notifications-sdk/lib/_internal/interfaces';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport { AppIDs } from '../../constants';\nimport { PartnerService } from '../../core/partner.service';\nimport { ProductService } from '../../core/product.service';\nimport { Product } from '../../core/product/product';\nimport { NotificationChange } from '../../users/user-bulk-actions/notification-change';\nimport { VbcHostService } from '../../vbc/vbc.host.service';\nimport { DAILY_DIGEST_TYPE, EXECUTIVE_REPORT_TYPE, INSTANT_EMAIL_SECTION_TYPE } from '../constants';\nimport { fetchWithCache$ } from './cache-storage';\n\nexport interface ProductNotifications {\n productId: string;\n name: string;\n iconUrl?: string;\n iconType?: string;\n sections: AppSettingSection[];\n}\nexport interface AppSettingSection {\n productId: string;\n sectionType: string;\n sectionId: string;\n title: string;\n value: LegacyStatus;\n defaultValue: LegacyStatus;\n children?: AppSettingSection[];\n}\n\nconst EXECUTIVE_REPORT_SECTION_ID = 'executiveReportFlag';\nconst VBC_PRODUCT_ICON = 'https://vbc-prod.appspot.com/static/images/file-upload.png';\nconst SORT_ORDER = [\n 'VBC',\n 'RM',\n 'SM',\n 'LB',\n AppIDs.AdvertisingIntelligence, // Ad Intel\n 'MP-ee4ea04e553a4b1780caf7aad7be07cd', // Website Pro\n].reverse(); // Reversing so it orders it in the needed way for the sort function\n\n@Injectable({ providedIn: 'root' })\nexport class LegacyNotificationPreferenceService {\n constructor(\n private partnerService: PartnerService,\n private sessionService: SessionService,\n private httpClient: HttpClient,\n private productService: ProductService,\n private vbcHostService: VbcHostService,\n private preferenceService: LegacyNotificationPreferenceSDKService,\n private whitelabelService: WhitelabelService,\n ) {}\n\n getSettings(\n partnerId: string,\n marketId?: string,\n userId?: string,\n businessId?: string,\n bulk?: boolean,\n ): Observable {\n return combineLatest([\n this.getAvailableSections(partnerId, marketId, businessId),\n bulk\n ? of({\n components: [\n {\n instant: LegacyStatus.STATUS_UNSET,\n digest: LegacyStatus.STATUS_UNSET,\n monthlyTaskReport: LegacyStatus.STATUS_UNSET,\n instantSettings: [],\n digestSettings: [],\n executiveReportSettings: [],\n },\n ],\n defaults: {\n instant: LegacyStatus.STATUS_UNSET,\n digest: LegacyStatus.STATUS_UNSET,\n monthlyTaskReport: LegacyStatus.STATUS_UNSET,\n instantSettings: [],\n digestSettings: [],\n executiveReportSettings: [],\n },\n userNotificationsDisabled: false,\n } as GetResponseInterface)\n : this.preferenceService.get$(partnerId, marketId, userId, businessId),\n this.productService.products,\n this.whitelabelService.getBranding(partnerId, marketId),\n ]).pipe(\n map(([data, preferences, products, vbcDetails]) =>\n this.extractSettingSections(data, preferences, products, vbcDetails.apps.VBC.name, bulk),\n ),\n );\n }\n\n private extractSettingSections(\n res: any,\n preferences: GetResponseInterface,\n products: Product[],\n vbcName: string,\n bulk?: boolean,\n ): ProductNotifications[] {\n const specificPreferences = preferences.components[0];\n const defaultPreferences = preferences.defaults;\n //Build map of notification preferences from list\n const preferencesMap = {\n instant: new Map(),\n digest: new Map(),\n report: new Map(),\n };\n specificPreferences.instantSettings?.forEach((setting) =>\n preferencesMap.instant.set(setting.notificationId, setting.status),\n );\n specificPreferences.digestSettings?.forEach((setting) =>\n preferencesMap.digest.set(setting.notificationId, setting.status),\n );\n specificPreferences.executiveReportSettings?.forEach((setting) =>\n preferencesMap.report.set(setting.notificationId, setting.status),\n );\n //Build map of default notification preference from list\n const defaultsMap = {\n instant: new Map(),\n digest: new Map(),\n report: new Map(),\n };\n defaultPreferences.instantSettings?.forEach((setting) =>\n defaultsMap.instant.set(\n setting.notificationId,\n setting.status !== LegacyStatus.STATUS_DEFAULT && setting.status !== LegacyStatus.STATUS_UNSET\n ? setting.status\n : LegacyStatus.STATUS_ENABLED,\n ),\n );\n defaultPreferences.digestSettings?.forEach((setting) =>\n defaultsMap.digest.set(\n setting.notificationId,\n setting.status !== LegacyStatus.STATUS_DEFAULT && setting.status !== LegacyStatus.STATUS_UNSET\n ? setting.status\n : LegacyStatus.STATUS_ENABLED,\n ),\n );\n defaultPreferences.executiveReportSettings?.forEach((setting) =>\n defaultsMap.report.set(\n setting.notificationId,\n setting.status !== LegacyStatus.STATUS_DEFAULT && setting.status !== LegacyStatus.STATUS_UNSET\n ? setting.status\n : LegacyStatus.STATUS_ENABLED,\n ),\n );\n //Build sections\n let productSections: ProductNotifications[] = [];\n const baseSections: ProductNotifications = {\n productId: 'custom',\n name: 'Global Settings',\n iconType: 'public',\n sections: [],\n };\n res.data.forEach((details) => {\n // Add the base section data to global settings (Except for exec report)\n if (details.section.id !== EXECUTIVE_REPORT_SECTION_ID) {\n let d =\n details.section.id === INSTANT_EMAIL_SECTION_TYPE ? defaultPreferences.instant : defaultPreferences.digest;\n if (!d || d === LegacyStatus.STATUS_DEFAULT) {\n d = LegacyStatus.STATUS_ENABLED;\n }\n baseSections.sections.push({\n productId: baseSections.productId,\n sectionType: 'globalSettingsFlag',\n sectionId: details.section.id,\n title: details.section.title,\n value:\n details.section.id === INSTANT_EMAIL_SECTION_TYPE\n ? specificPreferences.instant\n : specificPreferences.digest,\n defaultValue: d,\n });\n }\n details.products.forEach((productDetails) => {\n // Add the products to the products array if not already there\n let productSection = productSections.find((product) => product.productId === productDetails.productId);\n\n if (!productSection) {\n if (productDetails.productId === 'VBC') {\n productSection = {\n productId: productDetails.productId,\n name: vbcName,\n iconUrl: VBC_PRODUCT_ICON,\n sections: [],\n };\n } else {\n const marketplaceProduct = products.find((product) => product.product_id === productDetails.productId);\n if (!marketplaceProduct) {\n return;\n }\n productSection = {\n productId: productDetails.productId,\n name: marketplaceProduct.name,\n iconUrl: marketplaceProduct.icon_url,\n sections: [],\n };\n }\n productSections.push(productSection);\n }\n\n // Add the sections to the product\n productSection.sections.push(\n ...productDetails.activities.map((activity) => {\n let typeMap: Map;\n let defaultTypeMap: Map;\n switch (details.section.id) {\n case INSTANT_EMAIL_SECTION_TYPE: {\n typeMap = preferencesMap.instant;\n defaultTypeMap = defaultsMap.instant;\n break;\n }\n case DAILY_DIGEST_TYPE: {\n typeMap = preferencesMap.digest;\n defaultTypeMap = defaultsMap.digest;\n break;\n }\n case EXECUTIVE_REPORT_TYPE: {\n typeMap = preferencesMap.report;\n defaultTypeMap = defaultsMap.report;\n break;\n }\n }\n const defaultValue = bulk ? LegacyStatus.STATUS_UNSET : LegacyStatus.STATUS_DEFAULT;\n return {\n productId: productSection.productId,\n sectionType: details.section.id,\n sectionId: activity.id,\n title: activity.title,\n value: typeMap.get(activity.id) ?? defaultValue,\n defaultValue: defaultTypeMap.get(activity.id) ?? LegacyStatus.STATUS_ENABLED,\n children: activity.tags.map((tag) => {\n return {\n sectionId: tag.id,\n title: tag.title,\n value: typeMap.get(tag.id) ?? LegacyStatus.STATUS_DEFAULT,\n defaultValue: defaultTypeMap.get(tag.id) ?? LegacyStatus.STATUS_ENABLED,\n };\n }),\n };\n }),\n );\n });\n });\n\n productSections = productSections.sort(function (a: ProductNotifications, b: ProductNotifications): number {\n if (SORT_ORDER.indexOf(a.productId) * -1 < SORT_ORDER.indexOf(b.productId) * -1) {\n return -1;\n } else if (SORT_ORDER.indexOf(a.productId) * -1 > SORT_ORDER.indexOf(b.productId) * -1) {\n return 1;\n }\n return 0;\n });\n\n return [baseSections, ...productSections];\n }\n\n deleteSectionSetting(partnerId: string, marketId: string, userId: string, accountGroupId: string): Observable {\n return this.preferenceService.delete$(partnerId, marketId, userId, accountGroupId);\n }\n\n updateSectionSetting(\n sectionId: string,\n settingId: string,\n status: LegacyStatus,\n partnerId: string,\n marketId?: string,\n userId?: string,\n accountGroupId?: string,\n ): Observable {\n const changes: PreferenceInterface = { instantSettings: [], digestSettings: [], executiveReportSettings: [] };\n if (settingId === INSTANT_EMAIL_SECTION_TYPE) {\n changes.instant = status;\n } else if (settingId === DAILY_DIGEST_TYPE) {\n changes.digest = status;\n } else if (sectionId === EXECUTIVE_REPORT_TYPE) {\n changes.executiveReportSettings.push({\n notificationId: settingId,\n status: status,\n });\n } else if (sectionId === INSTANT_EMAIL_SECTION_TYPE) {\n changes.instantSettings.push({\n notificationId: settingId,\n status: status,\n });\n } else if (sectionId === DAILY_DIGEST_TYPE) {\n changes.digestSettings.push({\n notificationId: settingId,\n status: status,\n });\n }\n return this.preferenceService.update$(changes, partnerId, marketId, userId, accountGroupId);\n }\n\n bulkUpdatePermissions(\n partnerId: string,\n userIds: string[],\n permissions: NotificationChange[],\n partialIdentifiers: boolean,\n ): Observable {\n const changes: PreferenceInterface = { instantSettings: [], digestSettings: [], executiveReportSettings: [] };\n permissions.forEach((permission) => {\n if (permission.setting === INSTANT_EMAIL_SECTION_TYPE) {\n changes.instant = permission.valueFlag;\n } else if (permission.setting === DAILY_DIGEST_TYPE) {\n changes.digest = permission.valueFlag;\n } else if (permission.section === EXECUTIVE_REPORT_TYPE) {\n changes.executiveReportSettings.push({\n notificationId: permission.setting,\n status: permission.valueFlag,\n });\n } else if (permission.section === INSTANT_EMAIL_SECTION_TYPE) {\n changes.instantSettings.push({\n notificationId: permission.setting,\n status: permission.valueFlag,\n });\n } else if (permission.section === DAILY_DIGEST_TYPE) {\n changes.digestSettings.push({\n notificationId: permission.setting,\n status: permission.valueFlag,\n });\n }\n });\n // if partialIdentifiers is true, update business\n // if false, update user\n if (!userIds || userIds.length == 0) {\n if (partialIdentifiers) {\n return this.preferenceService.bulkUpdateBusinessByPartner(changes, partnerId);\n } else {\n return this.preferenceService.bulkUpdateUsersByPartner(changes, partnerId);\n }\n } else {\n if (partialIdentifiers) {\n return this.preferenceService.bulkUpdateBusinessByUser(changes, partnerId, userIds);\n } else {\n return this.preferenceService.bulkUpdatePreferenceByIdentifier(\n changes,\n userIds.map((userId) => ({ partnerId, userId })),\n );\n }\n }\n }\n\n private apiOptions(sessionId: string): RequestInit {\n return {\n headers: {\n Authorization: `Bearer ${sessionId}`,\n 'Content-Type': 'application/json',\n },\n };\n }\n\n private getAvailableSections(partnerId: string, marketId: string, businessId: string): Observable {\n let url = `${this.vbcHostService.hostWithScheme()}/nsInternalApi/v3/notificationSettings/getAvailableSections/?partnerId=${partnerId}`;\n if (marketId && marketId !== '') {\n url += `&marketId=${marketId}`;\n }\n if (businessId && businessId !== '') {\n url += `&accountGroupId=${businessId}`;\n }\n return this.sessionService.getSessionId().pipe(\n switchMap((sessionId) => {\n return fetchWithCache$(\n new Request(url, this.apiOptions(sessionId)),\n 'legacy-notification-preferences',\n 1000 * 60 * 60 * 2,\n );\n }),\n map((res) => {\n if (res.statusCode != 200) {\n throw res;\n }\n return res;\n }),\n );\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApiService } from '../api-service/api.service';\n\n/**\n * This service manages the api requests for enabling and disabling Business App tabs\n */\n@Injectable({ providedIn: 'root' })\nexport class TabApiService {\n constructor(private apiService: ApiService) {}\n\n public enableAll(accountGroupId: string, userId: string): Observable {\n const url = '/_ajax/v1/manage-users/vbc-tabs/enable-all/';\n const data = {\n accountGroupId: accountGroupId,\n userId: userId,\n };\n return this.apiService.post(url, data);\n }\n\n public disableAll(accountGroupId: string, userId: string): Observable {\n const url = '/_ajax/v1/manage-users/vbc-tabs/disable-all/';\n const data = {\n accountGroupId: accountGroupId,\n userId: userId,\n };\n return this.apiService.post(url, data);\n }\n\n public set(accountGroupId: string, userId: string, tabIds: string[]): Observable {\n const url = '/_ajax/v1/manage-users/vbc-tabs/set/';\n const data = {\n accountGroupId: accountGroupId,\n userId: userId,\n tabIds: tabIds,\n };\n return this.apiService.post(url, data);\n }\n\n public setMulti(\n userIds: string[],\n partnerTabIds: string[],\n tabIdsToAdd: string[],\n tabIdsToRemove: string[],\n ): Observable {\n const url = '/_ajax/v1/manage-users/vbc-tabs/set/multi';\n const data = {\n userIds,\n partnerTabIds,\n tabIdsToAdd,\n tabIdsToRemove,\n };\n return this.apiService.post(url, data);\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { LegacyStatus } from '@vendasta/notifications-sdk';\nimport { BehaviorSubject, combineLatest, Observable, of } from 'rxjs';\nimport { catchError, map, switchMap, tap } from 'rxjs/operators';\nimport { PartnerService } from '../../core/partner.service';\nimport { User } from '../../core/user';\nimport { LegacyNotificationPreferenceService } from '../../user-notifications/legacy-notification-preference/legacy-notification-preference.service';\nimport { BusinessCenterTab } from '../../user-permissions/account-group-permissions/business-center-tab';\nimport { TabApiService } from '../../user-permissions/tab.api.service';\nimport { NotificationChange } from './notification-change';\n\nexport interface UserTabAccessInfo {\n selectedUsers: User[];\n allUsers: boolean;\n tabs: BusinessCenterTab[];\n}\n\nexport interface TabChange {\n name: string;\n id: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UserBulkActionsService {\n private selectedUsers$$ = new BehaviorSubject(null);\n public selectedUsers$ = this.selectedUsers$$.asObservable();\n private allUsers: boolean;\n private totalUserCount: number;\n private tabs: BusinessCenterTab[];\n\n private tabsGiveAccess$$: BehaviorSubject = new BehaviorSubject([]);\n readonly tabsGiveAccess$: Observable = this.tabsGiveAccess$$.asObservable();\n private tabsRemoveAccess$$: BehaviorSubject = new BehaviorSubject([]);\n readonly tabsRemoveAccess$: Observable = this.tabsRemoveAccess$$.asObservable();\n\n private notificationSettings$$: BehaviorSubject = new BehaviorSubject([]);\n readonly notificationSettings$: Observable = this.notificationSettings$$.asObservable();\n public bulkUpdateScope = false;\n\n constructor(\n private partnerService: PartnerService,\n private tabApiService: TabApiService,\n private notificationPreferenceService: LegacyNotificationPreferenceService,\n private translateService: TranslateService,\n ) {}\n\n areUsersSelected(): boolean {\n return !!this.selectedUsers$$.value;\n }\n\n resetSelections(): void {\n this.tabsGiveAccess$$.next([]);\n this.tabsRemoveAccess$$.next([]);\n this.notificationSettings$$.next([]);\n }\n\n getAmountOfUsersSelectedStringAsync(): Observable {\n if (this.allUsers) {\n return this.translateService.stream('USERS.BULK_UPDATE_SETTINGS.NUM_USERS', {\n numUsers: this.totalUserCount,\n });\n }\n const userNumber = this.selectedUsers$$.value.length;\n const text$ = this.translateService.stream('USERS.BULK_UPDATE_SETTINGS.NUM_USERS', {\n numUsers: userNumber,\n });\n if (userNumber === 1) {\n return combineLatest([this.selectedUsers$, text$]).pipe(\n map(([users, text]) => {\n return users[0]?.fullName ? users[0].fullName : text;\n }),\n );\n }\n return text$;\n }\n\n getUserTabAccessInfo(): UserTabAccessInfo {\n return {\n selectedUsers: this.selectedUsers$$.value,\n allUsers: this.allUsers,\n tabs: this.tabs,\n };\n }\n\n setSelectedUsersInfo(selectedUsers: User[], allUsers: boolean, totalUserCount: number): void {\n this.selectedUsers$$.next(selectedUsers);\n this.allUsers = allUsers;\n this.totalUserCount = totalUserCount;\n }\n\n setAvailableTabs(tabs: BusinessCenterTab[]): void {\n this.tabs = tabs;\n }\n\n setTabAccess(tabsGiveAccess: TabChange[], tabsRemoveAccess: TabChange[]): void {\n this.tabsGiveAccess$$.next(tabsGiveAccess);\n this.tabsRemoveAccess$$.next(tabsRemoveAccess);\n }\n\n setNotificationUpdate(update: NotificationChange): void {\n let changes = this.notificationSettings$$.value;\n const index = changes.findIndex((existing) => {\n return existing.section === update.section && existing.setting === update.setting;\n });\n if (index === -1) {\n changes.push(update);\n } else {\n changes[index] = update;\n }\n changes = changes.filter((change) => change.valueFlag !== LegacyStatus.STATUS_UNSET);\n this.notificationSettings$$.next(changes);\n }\n\n setBulkUpdateScope(val: boolean): void {\n this.bulkUpdateScope = val;\n }\n\n submitChanges(): Observable {\n return combineLatest([\n this.requestTabAccessChanges(\n this.selectedUsers$$.value.map((user) => user.userId),\n this.tabs.map((tab) => tab.id),\n ),\n this.requestNotificationChanges(),\n ]);\n }\n\n private requestTabAccessChanges(userIds: string[], tabIds: string[]): Observable {\n return combineLatest([this.tabsGiveAccess$, this.tabsRemoveAccess$]).pipe(\n tap(([tabsGivenAccess, tabsRemovedAccess]) => {\n if (tabsGivenAccess.length === 0 && tabsRemovedAccess.length === 0) {\n throw new Error('No Tabs to update');\n }\n }),\n switchMap(([tabsGivenAccess, tabsRemovedAccess]) => {\n return this.tabApiService.setMulti(\n userIds,\n tabIds,\n tabsGivenAccess.map((tab) => tab.id),\n tabsRemovedAccess.map((tab) => tab.id),\n );\n }),\n catchError((err) => {\n return of(err.message);\n }),\n );\n }\n\n private requestNotificationChanges(): Observable {\n return this.notificationSettings$.pipe(\n tap((permissions) => {\n if (permissions.length === 0) {\n throw new Error('No Permissions to update');\n }\n }),\n switchMap((permissions) => {\n return this.notificationPreferenceService.bulkUpdatePermissions(\n this.partnerService.partnerId,\n this.selectedUsers$$.value.map((user) => user.unifiedUserId),\n permissions,\n !this.bulkUpdateScope,\n );\n }),\n tap(() => (this.bulkUpdateScope = false)), //reset to default\n catchError((err) => {\n return of(err.message);\n }),\n );\n }\n}\n", "export interface BusinessCenterTab {\n id: string;\n name: string;\n icon: string;\n version?: string;\n}\n\nexport const DASHBOARD_TAB = 'dashboard';\nexport const REPUTATION_TAB = 'reputation';\nexport const SOCIAL_TAB = 'social';\nexport const CUSTOMER_VOICE_TAB = 'customer_voice';\nexport const RECENT_ACTIVITY_TAB = 'recent_activity';\nexport const RECOMMENDATIONS_TAB = 'lmi_dashboard';\nexport const STORE_TAB = 'store';\nexport const CUSTOMER_LIST_TAB = 'customer_list';\nexport const EXECUTIVE_REPORT_TAB = 'executive_report';\nexport const GUIDES_TAB = 'content_library';\nexport const FILES_TAB = 'files';\nexport const BUSINESS_PROFILE_TAB = 'business_profile';\nexport const SOCIAL_CONNECTIONS_TAB = 'social_connections';\nexport const MY_PRODUCTS_TAB = 'my_products';\nexport const INVOICES_TAB = 'invoices';\nexport const GET_STARTED_TAB = 'get_started';\nexport const NEW_INBOX_TAB = 'new_inbox';\nexport const MEETING_SCHEDULER_TAB = 'meeting_scheduler';\nexport const ORDERS_TAB = 'orders';\nexport const PROJECTS_TAB = 'fulfillment';\nexport const CONTACTS_BUTTON = 'contacts_button';\n\nexport const businessNavTabList: BusinessCenterTab[] = [\n {\n id: REPUTATION_TAB,\n name: 'Reputation',\n icon: 'star_rate',\n },\n {\n id: SOCIAL_TAB,\n name: 'Social',\n icon: 'forum',\n },\n {\n id: CUSTOMER_VOICE_TAB,\n name: 'Customer Voice',\n icon: 'rate_review',\n },\n];\n\n/**\n * A list of all the available tabs in Business App. This is the set of tabs\n * which can be toggled on and off for a user.\n */\nexport const businessCenterTabList: BusinessCenterTab[] = [\n {\n id: GET_STARTED_TAB,\n name: 'Get Started',\n icon: 'local_library',\n },\n {\n id: DASHBOARD_TAB,\n name: 'Dashboard',\n icon: 'dashboard',\n },\n {\n id: RECENT_ACTIVITY_TAB,\n name: 'Recent Activity',\n icon: 'history',\n },\n {\n id: NEW_INBOX_TAB,\n name: 'Inbox Messages',\n icon: 'question_answer',\n },\n {\n id: CUSTOMER_LIST_TAB,\n name: 'Customers',\n icon: 'person',\n },\n {\n id: MEETING_SCHEDULER_TAB,\n name: 'My Meetings',\n icon: 'event',\n },\n {\n id: RECOMMENDATIONS_TAB,\n name: 'Recommendations',\n icon: 'speaker_notes',\n },\n {\n id: STORE_TAB,\n name: 'Store',\n icon: 'shopping_basket',\n },\n {\n id: EXECUTIVE_REPORT_TAB,\n name: 'Executive Report',\n icon: 'timeline',\n },\n {\n id: GUIDES_TAB,\n name: 'Guides',\n icon: 'library_books',\n },\n {\n id: FILES_TAB,\n name: 'Files',\n icon: 'insert_drive_file',\n },\n {\n id: BUSINESS_PROFILE_TAB,\n name: 'Business Profile',\n icon: 'account_box',\n },\n {\n id: SOCIAL_CONNECTIONS_TAB,\n name: 'Social Connections',\n icon: 'device_hub',\n },\n {\n id: ORDERS_TAB,\n name: 'Orders',\n icon: 'list_alt',\n },\n {\n id: PROJECTS_TAB,\n name: 'Projects',\n icon: 'timelapse',\n },\n {\n id: INVOICES_TAB,\n name: 'Invoices',\n icon: 'attach_money',\n },\n {\n id: MY_PRODUCTS_TAB,\n name: 'My Products',\n icon: 'apps',\n },\n];\n", "import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, Inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatIconModule } from '@angular/material/icon';\nimport { GalaxyPipesModule } from '@vendasta/galaxy/pipes';\nimport { Observable } from 'rxjs';\n\ninterface PreviewEmailData {\n template: Observable<{ templateHTML: string }>;\n}\n\n@Component({\n template: `\n
\n \n
\n \n
\n
\n `,\n styleUrls: ['./preview-email-modal.component.scss'],\n standalone: true,\n imports: [AsyncPipe, NgIf, MatButtonModule, MatDialogModule, MatIconModule, GalaxyPipesModule],\n})\nexport class PreviewEmailModalComponent {\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: PreviewEmailData,\n public dialogRef: MatDialogRef,\n ) {}\n closeDialog(): void {\n this.dialogRef.close();\n }\n}\n", "import { Component, Inject, OnInit } from '@angular/core';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DomainChoice, shouldUsePlatformDefault } from '@galaxy/email-ui/domain-chooser';\nimport { TranslateService } from '@galaxy/lexicon';\nimport { UserService } from '@vendasta/business-center';\nimport { Sender, SenderType } from '@vendasta/email';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { IAMService } from '@vendasta/iamv2';\nimport { UserIdentifier } from '@vendasta/iamv2/lib/_internal/objects/api';\nimport { Observable, firstValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { MarketsService } from '../../core/markets/markets.service';\nimport { PreviewEmailModalComponent } from '../user/preview-email/preview-email-modal.component';\n\nexport interface ResendWelcomeEmailDialogData {\n userID: string;\n partnerID: string;\n marketId?: string;\n loginUrl: string;\n userLanguage?: string;\n}\n\n@Component({\n templateUrl: 'resend-welcome-email-dialog.component.html',\n styleUrls: ['resend-welcome-email-dialog.component.scss'],\n})\nexport class ResendWelcomeEmailDialogComponent implements OnInit {\n form: UntypedFormGroup;\n marketId: string;\n sender: Sender;\n marketName$: Observable;\n\n constructor(\n private dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) private data: ResendWelcomeEmailDialogData,\n private bcUserService: UserService,\n private formBuilder: UntypedFormBuilder,\n private snackService: SnackbarService,\n private translationService: TranslateService,\n private iamService: IAMService,\n private marketService: MarketsService,\n public previewModal: MatDialog,\n ) {}\n\n ngOnInit(): void {\n this.marketId = this.data.marketId;\n this.form = this.formBuilder.group({\n sendFromDefault: this.formBuilder.control('partner-domain', [Validators.required]),\n });\n this.marketName$ = this.marketService.getMarket(this.data?.marketId || 'default').pipe(\n map((market) => {\n return market?.name || 'default';\n }),\n );\n this.sender = new Sender({ type: SenderType.SENDER_TYPE_PARTNER, id: this.data.partnerID });\n }\n\n resendWelcomeEmail(choice: DomainChoice): void {\n this.bcUserService\n .sendWelcomeEmail(\n this.data.partnerID,\n this.data.userID,\n this.data.loginUrl,\n shouldUsePlatformDefault(choice),\n this.marketId,\n )\n .subscribe({\n next: () => {\n this.snackService.successSnack(\n this.translationService.instant('USERS.RESEND_WELCOME_EMAIL_MODAL.SUCCESS_MESSAGE'),\n );\n this.dialogRef.close();\n },\n error: () =>\n this.snackService.errorSnack(\n this.translationService.instant('USERS.RESEND_WELCOME_EMAIL_MODAL.ERROR_MESSAGE'),\n ),\n });\n }\n\n async openPreviewEmail(): Promise {\n const user = await firstValueFrom(this.iamService.getUser({ userId: this.data.userID } as UserIdentifier));\n\n this.previewModal.open(PreviewEmailModalComponent, {\n data: {\n template: this.bcUserService.getWelcomeEmailTemplate(\n this.data.partnerID,\n user.greetingName || user.firstName || '',\n this.data.loginUrl,\n this.marketId,\n '',\n user.languageCode || 'en',\n ),\n },\n width: '620px',\n height: '80vh',\n maxHeight: '800px',\n });\n }\n}\n", "\n

{{ 'USERS.RESEND_WELCOME_EMAIL_MODAL.TITLE' | translate }}

\n

{{ 'USERS.RESEND_WELCOME_EMAIL_MODAL.CONTENT' | translate }}

\n \n
\n
\n {{ marketName }}\n {{ 'USERS.RESEND_WELCOME_EMAIL_MODAL.MARKET_DESCRIPTION' | translate }}\n
\n \n
\n
\n\n \n \n\n", "import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, Observable, of, Subscription } from 'rxjs';\nimport { catchError, debounceTime, distinctUntilChanged, map, shareReplay, take, tap } from 'rxjs/operators';\nimport { ApiService } from '../api-service/api.service';\nimport { SortOrder } from '../core/sort';\nimport { User } from '../core/user';\n\ndeclare interface UsersResponse {\n totalResults: number;\n loadMoreUrl: string;\n users: User[];\n}\n\n@Injectable({ providedIn: 'root' })\nexport class UserService {\n private sortOn = 'first_name';\n private sortDirection = 'ASCENDING';\n private searchUrl = '/_ajax/v1/manage-users/search/';\n private isInitialState = true;\n\n private loadMoreUrl$$: BehaviorSubject = new BehaviorSubject(null);\n private loadingUsersSubscription: Subscription;\n\n public totalResults = 0;\n\n private users$$: BehaviorSubject = new BehaviorSubject(null);\n private isLoading$$: BehaviorSubject = new BehaviorSubject(false);\n\n private user$$: BehaviorSubject = new BehaviorSubject(null);\n\n get isLoading$(): Observable {\n return this.isLoading$$.asObservable();\n }\n\n get hasMoreResults(): Observable {\n return this.loadMoreUrl$$.asObservable().pipe(map((x) => !!x));\n }\n\n constructor(\n private apiService: ApiService,\n private snackbarService: SnackbarService,\n private router: Router,\n private translate: TranslateService,\n ) {}\n\n get user$(): Observable {\n return this.user$$.asObservable().pipe(shareReplay(1));\n }\n\n get users$(): Observable {\n return this.users$$.asObservable().pipe(shareReplay(1));\n }\n\n public search(terms: Observable, debounceMs = 300): Observable {\n terms.pipe(debounceTime(debounceMs), distinctUntilChanged()).subscribe((term) => {\n this.isInitialState = true;\n this.loadUsers(this.searchUrl, term, false);\n });\n return this.users$$.asObservable();\n }\n\n public setSort(orderBy: string, order: SortOrder): void {\n this.sortOn = orderBy;\n this.sortDirection = order === SortOrder.Ascending ? 'ASCENDING' : 'DESCENDING';\n this.isInitialState = true;\n this.loadUsers(this.searchUrl, null, false);\n }\n\n public loadMore(): void {\n if (this.loadMoreUrl$$.getValue()) {\n this.loadUsers(this.loadMoreUrl$$.getValue(), null, true);\n }\n }\n\n public delete(user: User): void {\n const url = `/_ajax/v1/delete-user/`;\n const body = { vbc_user_id: user.userId };\n this.apiService\n .post(url, body)\n .pipe(\n map(() => true),\n catchError(() => {\n this.snackbarService.errorSnack(this.translate.instant('USER_PERMISSIONS.DELETE_USER_FAILED'));\n return of(null);\n }),\n take(1),\n )\n .subscribe((success) => {\n if (success) {\n this.router.navigateByUrl('/bc-admin');\n const currentUsers = this.users$$.getValue();\n this.users$$.next(currentUsers.filter((next) => next.userId !== user.userId));\n this.snackbarService.successSnack(this.translate.instant('USER_PERMISSIONS.DELETE_USER_SUCCESS'));\n }\n });\n }\n\n public toggleNotificationsEnabled(user: User, value: boolean): Observable {\n const url = `/_ajax/v1/manage-users/toggle-notifications-enabled/`;\n const body = { userId: user.userId, enableFlag: value };\n return this.apiService.post(url, body).pipe(map(() => true));\n }\n\n private processUsersReponse(result: any): UsersResponse {\n const totalResultsKey = 'total_results';\n const usersKey = 'users';\n const loadMoreUrlKey = 'next_url';\n\n return {\n totalResults: result[totalResultsKey],\n users: result[usersKey].map((userData) => new User(userData)),\n loadMoreUrl: result[loadMoreUrlKey],\n };\n }\n\n private loadUsers(url: string, query?: string, append = false): void {\n const body = { filterQuery: query, sort: this.sortOn, direction: this.sortDirection };\n const loadInitialUsers = this.apiService.post(url, body);\n const loadMoreUsers = this.apiService.get(url, {\n params: {\n query: query,\n },\n });\n this.isLoading$$.next(true);\n if (this.loadingUsersSubscription) {\n this.loadingUsersSubscription.unsubscribe();\n }\n this.loadingUsersSubscription = (this.isInitialState ? loadInitialUsers : loadMoreUsers)\n .pipe(map(this.processUsersReponse))\n .subscribe((usersResponse) => {\n if (usersResponse.loadMoreUrl && usersResponse.loadMoreUrl !== this.loadMoreUrl$$.getValue()) {\n const fullUrl = '/_ajax/vbc/manage-users/more/?nextUrl=' + encodeURIComponent(usersResponse.loadMoreUrl);\n this.loadMoreUrl$$.next(fullUrl);\n } else {\n this.loadMoreUrl$$.next(null);\n }\n this.totalResults = usersResponse.totalResults;\n if (append) {\n this.users$$.next(this.users$$.getValue().concat(usersResponse.users));\n } else {\n this.users$$.next(usersResponse.users);\n }\n this.isLoading$$.next(false);\n this.isInitialState = false;\n });\n }\n\n // This will not cache the user like loadUser$ does. The purpose is to allow a user to be retrieved with a field mask that\n // does not interfear with the cached user.\n getUser$(userId: string, fieldMask?: Array): Observable {\n let url = `/_ajax/v1/manage-users/get/?userId=${userId}`;\n if (fieldMask) {\n fieldMask.forEach((m) => (url = url + `&fieldMask=${m}`));\n }\n return this.apiService.get(url).pipe(map((result) => new User(result)));\n }\n\n loadUser$(userId: string, fieldMask?: Array): Observable {\n this.user$$.next(null);\n return this.getUser$(userId, fieldMask).pipe(tap((user) => this.user$$.next(user)));\n }\n\n clearUserSubjects(): void {\n this.users$$.next(null);\n }\n}\n", "import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { AccessRestrictedDialogComponent } from '../access';\nimport { UserBulkActionsService } from './user-bulk-actions/user-bulk-actions.service';\n\nimport { UserService as BusinessCenterUserService } from '@vendasta/business-center';\nimport {\n Button,\n ButtonCell,\n MenuCell,\n MenuItem,\n SortDescriptor,\n SortOrder,\n SwitchCell,\n TableViewModel,\n} from '@vendasta/uikit';\nimport { BehaviorSubject, combineLatest, Observable, Subscription } from 'rxjs';\nimport { filter, first, startWith, take, tap } from 'rxjs/operators';\n\nimport { newPartnerServiceContext, SSOService } from '@vendasta/sso';\nimport { AppConfigService } from '../app-config.service';\nimport { VaDialogService } from '../common/va-dialog.service';\nimport { AccessService, Feature, StubAccessService } from '../core/access';\nimport { getImageSrc } from '../core/images';\nimport { PartnerService } from '../core/partner.service';\nimport { User } from '../core/user';\nimport {\n BusinessCenterTab,\n businessCenterTabList,\n EXECUTIVE_REPORT_TAB,\n GUIDES_TAB,\n RECOMMENDATIONS_TAB,\n} from '../user-permissions/account-group-permissions/business-center-tab';\nimport { VConfigService } from '../vconfig/vconfig.service';\nimport { ResendWelcomeEmailDialogComponent } from './resend-welcome-email-dialog/resend-welcome-email-dialog.component';\nimport { UserService } from './user.service';\n\n@Component({\n templateUrl: './manage-users.component.html',\n styleUrls: ['./manage-users.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ManageUsersComponent implements OnInit, OnDestroy {\n constructor(\n private dialogService: VaDialogService,\n private snackbarService: SnackbarService,\n public usersService: UserService,\n public partnerService: PartnerService,\n private router: Router,\n private activatedRoute: ActivatedRoute,\n private vconfigService: VConfigService,\n private userBulkActionsService: UserBulkActionsService,\n @Inject(StubAccessService) private accessService: AccessService,\n private partner: PartnerService,\n private dialog: MatDialog,\n private bcUserService: BusinessCenterUserService,\n private ssoService: SSOService,\n @Inject('PARTNER_ID') public readonly partnerId$: Observable,\n @Inject('USER_ID') public readonly userId$: Observable,\n private appConfig: AppConfigService,\n ) {}\n\n private searchTerm$$: BehaviorSubject = new BehaviorSubject(null);\n readonly searchTerm$: Observable = this.searchTerm$$.asObservable();\n\n users$: Observable;\n busy$: Observable;\n hasAccessToLists: boolean;\n loginUrl: string;\n loginUrlText: string;\n subscriptions: Subscription[] = [];\n\n totalUserCount = 0;\n displayBulkActions = false;\n hideEmptyState = false;\n selectedUsers: User[] = [];\n\n getImageSrc = getImageSrc;\n\n private buttonTextDisplay$$: BehaviorSubject = new BehaviorSubject(null);\n readonly buttonTextDisplay$: Observable = this.buttonTextDisplay$$.asObservable();\n\n initialSort: SortDescriptor = {\n fieldname: 'first_name',\n order: SortOrder.Ascending,\n };\n\n isSearching = false;\n searchedUsers: User[] = [];\n tabsDetails$: Observable;\n tabs: BusinessCenterTab[];\n\n private accessRestrictedDialogRef: MatDialogRef;\n\n usersTable = new TableViewModel({\n columns: [\n {\n title: 'Name',\n cellForItem: (user) => user.fullName,\n sortOn: 'first_name',\n config: { width: '140px' },\n },\n {\n title: 'Email',\n cellForItem: (user) => user.email,\n sortOn: 'email',\n config: { width: '316px' },\n },\n // {\n // title: 'Days Active *',\n // cellForItem: (user) => (user.daysActive || 0).toString(),\n // config: { width: '100px' },\n // },\n {\n title: 'Accounts',\n cellForItem: (user) => (user.accountGroupAssociationCount || 0).toString(),\n config: { width: '100px' },\n },\n {\n title: 'Notifications',\n cellForItem: (user) => this.toggleCell(user),\n alignment: 'left',\n config: { width: '90px' },\n },\n {\n title: '',\n cellForItem: (user) => this.actionsCell(user),\n alignment: 'right',\n config: { width: '60px' },\n },\n {\n title: '',\n cellForItem: (user) => this.actionsMenu(user),\n alignment: 'right',\n config: { width: '44px' },\n },\n ],\n selection: {\n selectable: true,\n selectAll: true,\n selectionChanged: (selected) => {\n this.selectedUsers = selected;\n this.updateButtonCount();\n },\n },\n loadMoreItemsTriggered: () => this.onLoadMore(),\n });\n\n ngOnInit(): void {\n const userEmailKey = 'email';\n const userParam = this.activatedRoute.snapshot.queryParams[userEmailKey] || '';\n this.searchTerm$$.next(userParam);\n\n this.busy$ = this.usersService.isLoading$;\n this.users$ = this.usersService\n .search(\n this.searchTerm$.pipe(\n startWith(userParam),\n tap((searchTerm) => {\n this.isSearching = !!searchTerm;\n }),\n ),\n )\n .pipe(\n tap((users) => {\n if (this.isSearching) {\n this.searchedUsers = users;\n } else {\n this.searchedUsers = [];\n }\n this.hideEmptyState = this.hideEmptyState || users?.length > 0;\n this.updateButtonCount();\n }),\n );\n\n this.partnerService.getBusinessCenterHostname().subscribe((loginUrl) => {\n this.loginUrlText = loginUrl;\n this.loginUrl = loginUrl + '/login/';\n });\n\n this.checkTabsVisible();\n\n this.subscriptions.push(\n this.accessService.hasAccessToFeature(Feature.lists).subscribe((hasAccess) => {\n this.hasAccessToLists = hasAccess;\n }),\n );\n }\n\n ngOnDestroy(): void {\n for (const sub of this.subscriptions) {\n sub.unsubscribe();\n }\n this.usersService.clearUserSubjects();\n }\n\n private checkTabsVisible(): void {\n const whitelabelConfig$ = this.vconfigService.getConfigurations(this.partnerService.partnerId, [\n 'vbc_show_content_library',\n ]);\n const hasAccessToGuides$ = this.accessService.hasAccessToFeature(Feature.contentLibrary);\n const hasAccessToLocalMarketingIndex$ = this.accessService.hasAccessToFeature(Feature.localMarketingIndex);\n const hasAccessToExecutiveReport$ = this.accessService.hasAccessToFeature(Feature.executiveReport);\n\n this.tabsDetails$ = combineLatest([\n whitelabelConfig$,\n hasAccessToGuides$,\n hasAccessToLocalMarketingIndex$,\n hasAccessToExecutiveReport$,\n ]).pipe(\n first(),\n tap(([wlConfig, hasAccessToGuides, hasAccessToLocalMarketingIndex, hasAccessToExecutiveReport]) => {\n const exclude = [];\n if (!wlConfig.vbc_show_content_library) {\n exclude.push(RECOMMENDATIONS_TAB);\n exclude.push(GUIDES_TAB);\n }\n if (!hasAccessToGuides) {\n exclude.push(GUIDES_TAB);\n }\n if (!hasAccessToExecutiveReport) {\n exclude.push(EXECUTIVE_REPORT_TAB);\n }\n if (!hasAccessToLocalMarketingIndex) {\n exclude.push(RECOMMENDATIONS_TAB);\n }\n // TODO: Remove this when we are wanting to release reccomendations to everyone. Currently only ABC can view it.\n if (this.partnerService.partnerId !== 'ABC') {\n exclude.push(RECOMMENDATIONS_TAB);\n }\n this.tabs = businessCenterTabList.filter((tab) => exclude.indexOf(tab.id) === -1);\n }),\n );\n }\n\n updateSearchTerm(newTerm: string): void {\n this.searchTerm$$.next(newTerm.toLowerCase());\n }\n\n navigateToBulkActions(): void {\n let users = this.selectedUsers;\n let allUsersAvailable = true;\n if (this.isSearching && this.selectedUsers.length === 0) {\n users = this.searchedUsers;\n allUsersAvailable = false;\n }\n\n this.userBulkActionsService.setSelectedUsersInfo(\n users,\n this.selectedUsers.length === 0 && allUsersAvailable,\n this.totalUserCount,\n );\n this.userBulkActionsService.setAvailableTabs(this.tabs);\n this.router.navigate(['/bc-admin/users/bulk-update']);\n }\n\n public createUserClick(): void {\n this.router.navigateByUrl('/bc-admin/user/create/');\n }\n\n private updateButtonCount(): void {\n if (this.selectedUsers.length === 0 && this.searchedUsers.length === 0 && !this.isSearching) {\n this.totalUserCount = this.usersService.totalResults;\n this.displayBulkActions = this.usersService.totalResults >= 1;\n this.buttonTextDisplay$$.next(\n `Bulk Update ${this.usersService.totalResults} User${this.usersService.totalResults === 1 ? '' : 's'}`,\n );\n } else if (this.selectedUsers.length > 0) {\n this.displayBulkActions = this.selectedUsers.length >= 1;\n this.buttonTextDisplay$$.next(\n `Bulk Update ${this.selectedUsers.length} User${this.selectedUsers.length === 1 ? '' : 's'}`,\n );\n } else if (this.searchedUsers.length > 0 && this.isSearching) {\n this.displayBulkActions = this.searchedUsers.length >= 1;\n this.buttonTextDisplay$$.next(\n `Bulk Update ${this.searchedUsers.length} User${this.searchedUsers.length === 1 ? '' : 's'}`,\n );\n }\n }\n\n toggleCell(user: User): SwitchCell {\n return new SwitchCell({\n disabled: false,\n checked: user.notificationsEnabled,\n onClick: (checked) => this.handleNotificationsToggle(user, checked),\n });\n }\n\n actionsCell(user: User): ButtonCell {\n return new ButtonCell(this.impersonateButton(user));\n }\n\n deleteCell(user: User): ButtonCell {\n return new ButtonCell({\n type: 'icon',\n icon: 'close',\n onClick: () => this.deleteUser(user),\n });\n }\n\n impersonateButton(user: User): Button {\n return {\n type: 'icon',\n icon: 'people',\n color: 'primary',\n onClick: () => {\n this.ssoService\n .getEntryUrl('VBC', newPartnerServiceContext(this.partnerService.partnerId), {\n impersonation: user.unifiedUserId,\n })\n .subscribe({\n next: (url) => {\n if (url === undefined || url === 'undefined') {\n this.snackbarService.errorSnack('Error Impersonating User');\n return;\n }\n window.open(url, '_blank', 'noopener');\n },\n error: () => this.snackbarService.errorSnack('Error Impersonating User'),\n });\n },\n tooltip: 'Impersonate',\n };\n }\n\n actionsMenu(user: User): MenuCell {\n const menuItems: MenuItem[] = [\n {\n text: 'Edit User',\n leftIcon: 'edit',\n link: { url: `/bc-admin/user/${user.userId}/edit/` },\n },\n {\n text: 'Edit Permissions',\n leftIcon: 'vpn_key',\n link: { url: `/bc-admin/users/${user.userId}/permissions/` },\n },\n {\n text: 'Edit Notifications',\n leftIcon: 'notifications',\n link: { url: `/bc-admin/users/${user.userId}/notifications/` },\n },\n {\n text: 'Resend Welcome Email',\n leftIcon: 'email',\n click: () => this.presentSendWelcomeEmailDialog(user),\n },\n {\n text: 'Delete User',\n showTopDivider: true,\n leftIcon: 'close',\n click: () => this.deleteUser(user),\n },\n ];\n\n return new MenuCell({ menuItems: menuItems });\n }\n\n presentSendWelcomeEmailDialog(user: User): void {\n this.dialog.open(ResendWelcomeEmailDialogComponent, {\n data: {\n userID: user.unifiedUserId,\n partnerID: this.partnerService.partnerId,\n loginUrl: this.loginUrl,\n },\n width: '600px',\n });\n }\n\n onLoadMore(): void {\n this.usersService.loadMore();\n }\n\n onSort(event: SortDescriptor): void {\n this.usersService.setSort(event.fieldname, event.order);\n }\n\n deleteUser(user: User): void {\n this.subscriptions.push(\n this.dialogService\n .delete('Delete', `Are you sure you want to delete user ${user.email}?`, 'Delete')\n .pipe(\n filter((result) => result === 'yes'),\n take(1),\n )\n .subscribe(() => {\n this.usersService.delete(user);\n }),\n );\n }\n\n navigateToURL(url: string): void {\n this.router.navigateByUrl(url);\n }\n\n private handleNotificationsToggle(user: User, checked: boolean): void {\n let accountOrAccounts = '';\n if (user.accountGroupAssociationCount === 1) {\n accountOrAccounts = 'account';\n } else {\n accountOrAccounts = 'accounts';\n }\n\n let message = '';\n let buttonText = '';\n if (checked) {\n message = `${user.fullName || user.email} will receive instant notifications,\n daily digests, Task Manager reports, and Executive reports for the ${\n user.accountGroupAssociationCount\n }\n ${accountOrAccounts} they have permission to (based on their existing email\n preferences). This will not affect their email campaigns.`;\n buttonText = 'Turn On';\n } else {\n message = `${user.fullName || user.email} will no longer receive instant notifications,\n daily digests, Task Manager reports, or Executive reports for the ${\n user.accountGroupAssociationCount\n }\n ${accountOrAccounts} they have permission to. However, they may continue to receive\n email campaigns.`;\n buttonText = 'Turn Off';\n }\n\n this.subscriptions.push(\n this.dialogService\n .confirm('Are you sure?', message, buttonText)\n .pipe(take(1))\n .subscribe((dialogResponse) => {\n if (dialogResponse === 'yes') {\n this.usersService.toggleNotificationsEnabled(user, checked).subscribe({\n next: () => {\n user.notificationsEnabled = checked;\n this.snackbarService.successSnack('Notifications updated successfully.');\n },\n error: () => {\n this.snackbarService.errorSnack('Notifications update failed. Try again.');\n this.usersTable.updateColumnTitled('Notifications', {\n cellForItem: this.toggleCell.bind(this),\n });\n },\n });\n } else {\n this.usersTable.updateColumnTitled('Notifications', {\n cellForItem: this.toggleCell.bind(this),\n });\n }\n }),\n );\n }\n\n private openBulkUserImport(): void {\n this.router.navigate(['/bc-admin/users/bulk-import']);\n }\n\n public importUsersCallback(hasAccess: boolean): void {\n return hasAccess ? this.openBulkUserImport() : this.openAccessRestrictedDialog(Feature.lists);\n }\n\n private openAccessRestrictedDialog(featureId: string): void {\n this.dialog.closeAll();\n this.accessRestrictedDialogRef = this.dialog.open(AccessRestrictedDialogComponent, {\n width: '710px',\n data: { featureId: featureId },\n });\n this.subscriptions.push(\n this.accessRestrictedDialogRef.afterClosed().subscribe(() => (this.accessRestrictedDialogRef = null)),\n );\n }\n}\n", "\n \n \n {{ 'USERS.TITLE' | translate }}\n \n \n \n \n \n settings\n \n \n \n \n \n \n 0 || hideEmptyState; else emptyState\">\n
\n \n {{ 'USERS.LOGIN_URL_SUBTITLE' | translate }}\n {{ loginUrlText }}\n \n
\n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n\n\n \n \n \n \n \n {{ 'USERS.EMPTY_STATE.TITLE' | translate }}\n \n

{{ 'USERS.EMPTY_STATE.DESCRIPTION' | translate }}

\n \n \n {{ 'USERS.EMPTY_STATE.CTA' | translate }}\n \n \n
\n
\n\n\n \n\n", "import { Component, Input } from '@angular/core';\n\nexport interface HeaderButton {\n title: string;\n url?: string;\n callback?: () => void;\n icon?: string;\n tooltip?: string;\n cssClasses?: string;\n buttonId?: string;\n openNewTab?: boolean;\n}\n\n@Component({\n selector: 'app-tertiary-dropdown-button',\n templateUrl: './tertiary-dropdown-button.component.html',\n styleUrls: ['./tertiary-dropdown-button.component.css'],\n})\nexport class TertiaryDropdownButtonComponent {\n @Input() tertiaryButtons: HeaderButton[];\n\n clicked(button: HeaderButton): void {\n if (!button.callback) {\n console.log(`clicked on ${button.title} but it has no callback`);\n return;\n }\n button.callback();\n }\n}\n", " 0\">\n \n\n \n \n \n \n {{ button.icon }}\n \n {{ button.title | translate }}\n \n \n \n\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { RouterModule } from '@angular/router';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TertiaryDropdownButtonComponent } from './tertiary-dropdown-button.component';\n\n@NgModule({\n declarations: [TertiaryDropdownButtonComponent],\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatMenuModule,\n MatTooltipModule,\n RouterModule,\n TranslateModule,\n ],\n exports: [TertiaryDropdownButtonComponent],\n})\nexport class TertiaryDropdownButtonModule {}\n", "import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { UserService as BCUserService } from '@vendasta/business-center';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { newPartnerServiceContext, SSOService } from '@vendasta/sso';\nimport { Breadcrumbs } from '@vendasta/uikit';\nimport { merge, Observable, of, Subscription } from 'rxjs';\nimport { filter, map, scan, switchMap, take } from 'rxjs/operators';\nimport { HeaderButton, NavigationDepth } from '../../common/header-button';\nimport { VaDialogService } from '../../common/va-dialog.service';\nimport { PartnerService } from '../../core/partner.service';\nimport { User } from '../../core/user';\nimport { ResendWelcomeEmailDialogComponent } from '../resend-welcome-email-dialog/resend-welcome-email-dialog.component';\nimport { UserService } from '../user.service';\n\n@Component({\n selector: 'app-user-profile-page',\n templateUrl: './user-profile-page.component.html',\n styleUrls: ['./user-profile-page.component.scss'],\n})\nexport class UserProfilePageComponent implements OnInit, OnDestroy {\n pageTitle$: Observable;\n breadcrumbs$: Observable;\n user$: Observable;\n headerButtons$: Observable;\n subscriptions: Subscription[] = [];\n impersonationUrl$: Observable;\n\n constructor(\n private route: ActivatedRoute,\n public userService: UserService,\n private dialogService: VaDialogService,\n private snackbarService: SnackbarService,\n private translateService: TranslateService,\n private bcUserService: BCUserService,\n private partnerService: PartnerService,\n private dialog: MatDialog,\n private ssoService: SSOService,\n ) {}\n\n ngOnInit(): void {\n const userId$ = this.route.params.pipe(map((params) => params.userId));\n\n this.user$ = userId$.pipe(\n switchMap((userId) =>\n this.userService.getUser$(userId, ['SUBJECT_ID', 'USER_ID', 'EMAIL', 'ATTRIBUTES', 'STRUCT_ATTRIBUTES']),\n ),\n );\n\n this.headerButtons$ = this.user$.pipe(\n map((user) => [\n {\n title: 'MANAGE_ACCOUNTS.USERS_BOX.EDIT_USER',\n icon: 'edit',\n url: `/bc-admin/user/${user.userId}/edit/`,\n navigationDepth: NavigationDepth.tertiary,\n },\n {\n title: 'MANAGE_ACCOUNTS.USERS_BOX.EDIT_PERMISSIONS',\n icon: 'vpn_key',\n url: `/bc-admin/users/${user.userId}/permissions/`,\n navigationDepth: NavigationDepth.tertiary,\n },\n {\n title: 'MANAGE_ACCOUNTS.USERS_BOX.EDIT_NOTIFICATIONS',\n icon: 'notifications',\n url: `/bc-admin/users/${user.userId}/notifications/`,\n navigationDepth: NavigationDepth.tertiary,\n },\n {\n title: 'MANAGE_ACCOUNTS.USERS_BOX.RESEND_WELCOME_EMAIL',\n icon: 'email',\n callback: () => this.presentSendWelcomeEmailDialog(user),\n navigationDepth: NavigationDepth.tertiary,\n },\n {\n title: 'USERS.DELETE_DIALOG.DELETE_USER',\n showTopDivider: true,\n icon: 'close',\n callback: () => this.deleteUser(user),\n navigationDepth: NavigationDepth.tertiary,\n },\n ]),\n );\n\n this.pageTitle$ = this.user$.pipe(map((user) => user.fullName || user.email));\n\n this.impersonationUrl$ = this.user$.pipe(\n switchMap((user) =>\n this.ssoService.getEntryUrl('VBC', newPartnerServiceContext(this.partnerService.partnerId), {\n impersonation: user.unifiedUserId,\n }),\n ),\n );\n\n this.breadcrumbs$ = merge(\n of({ url: '/bc-admin', text: 'COMMON.USERS' }),\n this.pageTitle$.pipe(map((pageTitle) => ({ text: pageTitle }))),\n ).pipe(scan((a, c) => [...a, c], []));\n }\n\n ngOnDestroy(): void {\n for (const sub of this.subscriptions) {\n sub.unsubscribe();\n }\n }\n\n presentSendWelcomeEmailDialog(user: User): void {\n this.partnerService\n .getBusinessCenterHostname()\n .pipe(take(1))\n .subscribe((hostName) =>\n this.dialog.open(ResendWelcomeEmailDialogComponent, {\n data: {\n userID: user.unifiedUserId,\n partnerID: this.partnerService.partnerId,\n loginUrl: hostName + '/login/',\n },\n width: '600px',\n }),\n );\n }\n\n deleteUser(user: User): void {\n this.subscriptions.push(\n this.dialogService\n .delete(\n 'COMMON.ACTION_LABELS.DELETE',\n this.translateService.instant('USERS.DELETE_DIALOG.ARE_YOU_SURE', { name: user.email }),\n 'COMMON.ACTION_LABELS.DELETE',\n )\n .pipe(\n filter((result) => result === 'yes'),\n take(1),\n )\n .subscribe(() => {\n this.userService.delete(user);\n }),\n );\n }\n}\n", "\n \n \n {{ pageTitle$ | async }}\n \n \n \n \n \n \n \n \n {{ 'COMMON.ACTION_LABELS.IMPERSONATE' | translate }}\n \n \n \n \n \n \n \n \n\n", "import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, throwError as observableThrowError } from 'rxjs';\n\nimport { SessionService } from '@galaxy/core';\nimport { catchError, map, switchMap } from 'rxjs/operators';\n\nexport class ApiError implements Error {\n name: string;\n message: string;\n code: number;\n data?: any;\n\n constructor(message: string, code: number, data?: any) {\n this.name = `ApiError${code}`;\n this.message = message;\n this.code = code;\n this.data = data;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class VApiService {\n constructor(\n private http: HttpClient,\n private sessionService: SessionService,\n ) {}\n\n public get(url: string, options?: any): Observable {\n return this.http\n .get(url, Object.assign({}, this.apiOptions, options))\n .pipe(map(this.extractData), catchError(this.handleError));\n }\n\n public put(url: string, body: any, options?: any): Observable {\n return this.http\n .put(url, body, Object.assign({}, this.apiOptions, options))\n .pipe(map(this.extractData), catchError(this.handleError));\n }\n\n public post(url: string, body: any, options?: any): Observable {\n return this.sessionService.getSessionId().pipe(\n switchMap(() => {\n return this.http.post(url, body, Object.assign({}, { withCredentials: true }, options));\n }),\n map(this.extractData),\n catchError(this.handleError),\n );\n }\n\n public generateUrlWithParams(url: string, params: any): string {\n if (Object.keys(params).length === 0) {\n return url;\n }\n\n const finalUrl = url + '?';\n const finalParams = Object.keys(params)\n .map((param_key) => `${param_key}=${params[param_key]}`)\n .join('&');\n return finalUrl + finalParams;\n }\n\n public generateRepeatedUrlParams(paramName: string, params: string[]): string {\n let repeatedParams = '';\n params.forEach((id, index) => {\n if (index !== 0) {\n repeatedParams += '&';\n }\n repeatedParams += paramName + '=' + id;\n });\n return repeatedParams;\n }\n\n private apiOptions(sessionId: string): any {\n return {\n headers: new HttpHeaders({\n Authorization: `Bearer ${sessionId}`,\n 'Content-Type': 'application/json',\n }),\n withCredentials: true,\n responseType: 'json',\n };\n }\n\n private extractData(res: any): any {\n try {\n return Object.prototype.hasOwnProperty.call(res, 'data') ? res.data : res;\n } catch (error) {\n return res;\n }\n }\n\n private handleError(error: HttpErrorResponse): Observable {\n try {\n const errorInfo = error;\n const err = new ApiError(errorInfo.message, errorInfo.status, errorInfo.error);\n return observableThrowError(err);\n } catch (error) {\n const err = new ApiError('Unknown Error', 500);\n return observableThrowError(err);\n }\n }\n}\n", "import { HttpParameterCodec, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Environment, EnvironmentService } from '@galaxy/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { User } from '../core/user';\nimport { VApiService } from './vapi.service';\n\n/*\n https://github.com/angular/angular/issues/11058\n New HttpParams class has a different serialization behaviour than decprecated URLSearchParams, which Angular team\n is already realized, but they still have this issue opened. So in here, a temporary solution is a customized encoder to make sure\n marketing-automation can still get exactly same html encoded string as before.\n*/\nclass CustomQueryEncoderHelper implements HttpParameterCodec {\n encodeKey(k: string): string {\n return encodeURIComponent(k);\n }\n\n encodeValue(v: string): string {\n return encodeURIComponent(v);\n }\n\n decodeKey(k: string): string {\n return decodeURIComponent(k);\n }\n\n decodeValue(v: string): string {\n return decodeURIComponent(v);\n }\n}\n\nconst VBC_HOSTS = new Map();\nVBC_HOSTS.set(Environment.LOCAL, 'vbc-demo.appspot.com');\nVBC_HOSTS.set(Environment.DEMO, 'vbc-demo.appspot.com');\nVBC_HOSTS.set(Environment.PROD, 'vbc-prod.appspot.com');\n\nexport interface VbcUser {\n unifiedUserId?: string;\n firstName?: string;\n createdDateTime: string;\n lastLoginDateTime?: string;\n phoneNumber?: string;\n lastName?: string;\n email: string;\n phone?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class VbcApiService {\n private scheme = '';\n private vbcHost = '';\n\n constructor(private vapiService: VApiService, private environmentService: EnvironmentService) {\n this.scheme = window.location.protocol.startsWith('https') ? 'https' : 'http';\n this.vbcHost = VBC_HOSTS.get(environmentService.getEnvironment());\n }\n\n getUser(partnerId: string, userId: string): Observable {\n return this.vapiService.post(`${this.scheme}://${this.vbcHost}/api/v2/user/get/`, null, {\n params: {\n apiUser: partnerId,\n userId: userId,\n },\n });\n }\n\n updateUser(\n partnerId: string,\n userId: string,\n firstName: string,\n lastName: string,\n greetingName: string,\n email: string,\n phone: string,\n preferredLocale: string,\n ): Observable {\n const params = new HttpParams({\n encoder: new CustomQueryEncoderHelper(),\n })\n .set('apiUser', partnerId)\n .set('userId', userId)\n .set('firstName', firstName)\n .set('lastName', lastName)\n .set('greetingName', greetingName)\n .set('email', email)\n .set('phone', phone)\n .set('preferredLocale', preferredLocale);\n\n return this.vapiService\n .post(`${this.scheme}://${this.vbcHost}/api/v2/user/update/`, null, {\n params: params,\n })\n .pipe(\n map(() => true),\n catchError(() => {\n return of(false);\n }),\n );\n }\n\n createUser(\n partnerId: string,\n accountGroupId: string,\n firstName: string,\n lastName: string,\n greetingName: string,\n email: string,\n phone: string,\n welcomeMessageFlag: string,\n emailLocale: string,\n welcomeMessage: string,\n ): Observable {\n let params = new HttpParams({\n encoder: new CustomQueryEncoderHelper(),\n })\n .set('apiUser', partnerId)\n .set('firstName', firstName)\n .set('lastName', lastName)\n .set('greetingName', greetingName)\n .set('email', email)\n .set('phone', phone)\n .set('sendWelcomeEmailFlag', welcomeMessageFlag)\n .set('preferredLocale', emailLocale)\n .set('welcomeMessage', welcomeMessage);\n const postUrl = accountGroupId\n ? `${this.scheme}://${this.vbcHost}/internalApi/v3/user/createAndAssociate/`\n : `${this.scheme}://${this.vbcHost}/api/v2/user/create/`;\n params = accountGroupId ? params.appendAll({ ['pid']: partnerId, ['accountGroupId']: accountGroupId }) : params;\n return this.vapiService.post(postUrl, null, {\n params: params,\n });\n }\n}\n", "import { NgForOf, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, FormGroup, FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog, MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { UserService } from '@vendasta/business-center';\nimport { emailValidator } from '@vendasta/forms';\nimport { GalaxyCheckboxModule } from '@vendasta/galaxy/checkbox';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxySnackbarModule, SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { BehaviorSubject, firstValueFrom, Observable } from 'rxjs';\nimport { AppConfigService } from '../../app-config.service';\nimport { EmailLocale, SELECT_WELCOME_EMAIL_LOCALES } from '../../constants';\nimport { PartnerService } from '../../core/partner.service';\nimport { User } from '../../core/user';\nimport { VbcApiService } from '../vbc-api.service';\nimport { PreviewEmailModalComponent } from './preview-email/preview-email-modal.component';\n\n@Component({\n selector: 'app-create-user-form',\n templateUrl: './create-user-form.component.html',\n styleUrls: ['./create-user-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n FormsModule,\n GalaxyCheckboxModule,\n GalaxyInputModule,\n GalaxySnackbarModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n NgForOf,\n NgIf,\n ReactiveFormsModule,\n TranslateModule,\n ],\n})\nexport class CreateUserFormComponent {\n @Input() accountGroupId = '';\n @Output() userCreated: EventEmitter = new EventEmitter();\n protected readonly emailLanguages = SELECT_WELCOME_EMAIL_LOCALES;\n returnUrl: string;\n loginUrl: string;\n\n private _isCreatingUser$$: BehaviorSubject = new BehaviorSubject(false);\n private _isCreatingUser$: Observable = this._isCreatingUser$$.asObservable();\n\n readonly form = new FormGroup({\n first_name: new FormControl(''),\n last_name: new FormControl(''),\n greeting_name: new FormControl(''),\n user_email: new FormControl('', [Validators.required, emailValidator]),\n phone: new FormControl(''),\n languages: new FormControl({ value: 'en', label: 'English' }),\n send_welcome_email: new FormControl(false),\n custom_welcome_message: new FormControl(''),\n });\n\n constructor(\n private snackbarService: SnackbarService,\n public filterModal: MatDialog,\n private vbcApiService: VbcApiService,\n private appConfigService: AppConfigService,\n private bcUserService: UserService,\n public partnerService: PartnerService,\n ) {}\n\n public isCreatingUser(): Observable {\n return this._isCreatingUser$;\n }\n\n async createUser(): Promise {\n if (this.form.invalid) {\n this.form.markAsDirty();\n this.snackbarService.openErrorSnack('CREATE_BUSSINESS_USER_PAGE.CREATE_USER_INVALID_FORM');\n return;\n }\n\n this._isCreatingUser$$.next(true);\n\n const createUserRequest = {\n partnerId: this.appConfigService.config.partnerId,\n accountGroupId: this.accountGroupId,\n firstName: this.form.value.first_name || '',\n lastName: this.form.value.last_name || '',\n greetingName: this.form.value.greeting_name || '',\n email: this.form.value.user_email,\n phone: this.form.value.phone,\n welcomeMessageFlag: this.form.value.send_welcome_email || false,\n emailLocale: this.form.value.languages,\n welcomeMessage: this.form.value.custom_welcome_message || '',\n };\n\n try {\n const user = await firstValueFrom(\n this.vbcApiService.createUser(\n createUserRequest.partnerId,\n createUserRequest.accountGroupId,\n createUserRequest.firstName,\n createUserRequest.lastName,\n createUserRequest.greetingName,\n createUserRequest.email.toLowerCase(),\n createUserRequest.phone,\n createUserRequest.welcomeMessageFlag.toString(),\n createUserRequest.emailLocale.value,\n createUserRequest.welcomeMessage,\n ),\n );\n this.userCreated.emit(user);\n this.snackbarService.openSuccessSnack('CREATE_BUSSINESS_USER_PAGE.CREATE_USER_SUCCESS');\n } catch (err) {\n let errTranslationId = 'CREATE_BUSSINESS_USER_PAGE.CREATE_USER_ERROR';\n if (err?.data?.message?.includes('LimitError:')) {\n errTranslationId = 'CREATE_BUSSINESS_USER_PAGE.CREATE_USER_LIMIT_ERROR';\n } else if (err?.data?.message?.includes('already exists')) {\n errTranslationId = 'CREATE_BUSSINESS_USER_PAGE.CREATE_USER_ALREADY_EXISTS_ERROR';\n }\n this.snackbarService.openErrorSnack(errTranslationId);\n } finally {\n this._isCreatingUser$$.next(false);\n }\n }\n\n openPreviewEmail(): void {\n this.partnerService.getBusinessCenterHostname().subscribe((loginUrl) => {\n this.loginUrl = loginUrl + '/login/';\n });\n this.filterModal.open(PreviewEmailModalComponent, {\n data: {\n template: this.bcUserService.getWelcomeEmailTemplate(\n this.partnerService.partnerId,\n this.form.value.greeting_name || this.form.value.first_name || '',\n this.loginUrl,\n '',\n this.form.value.custom_welcome_message || '',\n this.form.value.languages.value,\n ),\n },\n width: '620px',\n height: '80vh',\n maxHeight: '800px',\n });\n }\n}\n", "
\n \n \n {{ 'CREATE_BUSSINESS_USER_PAGE.FIRST_NAME' | translate }}\n \n \n \n\n \n \n {{ 'CREATE_BUSSINESS_USER_PAGE.LAST_NAME' | translate }}\n \n \n \n\n \n\n \n \n {{ 'CREATE_BUSSINESS_USER_PAGE.USER_EMAIL' | translate }}\n \n \n \n\n \n {{ 'CREATE_BUSSINESS_USER_PAGE.CORRESPONDENCE_LANGUAGE' | translate }}\n \n \n {{ l.label }}\n \n \n \n {{ 'CREATE_BUSSINESS_USER_PAGE.LANGUAGE_HINT' | translate }}\n \n \n\n \n {{ 'CREATE_BUSSINESS_USER_PAGE.GREETING_NAME' | translate }}\n \n \n {{ 'CREATE_BUSSINESS_USER_PAGE.GREETING_NAME_HINT' | translate }}\n \n \n\n
\n \n {{ 'CREATE_BUSSINESS_USER_PAGE.WELCOME_MESSAGE_FLAG' | translate }}\n \n\n \n {{ 'CREATE_BUSSINESS_USER_PAGE.PREVIEW' | translate }}\n \n
\n\n \n \n \n {{ 'CREATE_BUSSINESS_USER_PAGE.WELCOME_MESSAGE' | translate }}\n \n \n \n \n
\n", "import { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BehaviorSubject, combineLatest, Observable, Subject } from 'rxjs';\nimport { map, shareReplay, take, takeUntil } from 'rxjs/operators';\nimport { User } from '../../core/user';\nimport { CreateUserFormComponent } from './create-user-form.component';\n\n@Component({\n templateUrl: './create.component.html',\n styleUrls: ['./create.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BusinessUserCreateComponent implements OnInit, AfterViewInit, OnDestroy {\n returnUrl: string;\n isCreatingUser$$: BehaviorSubject = new BehaviorSubject(false);\n @ViewChild('createForm') createFormComponent: CreateUserFormComponent;\n\n private _destroy$$ = new Subject();\n accountGroupId$: Observable;\n\n constructor(private router: Router, private route: ActivatedRoute) {}\n\n ngOnInit(): void {\n this.accountGroupId$ = this.route.queryParamMap.pipe(\n map((params) => params.get('accountGroupId')),\n shareReplay(1),\n );\n\n this.returnUrl = '/bc-admin';\n const from$ = this.route.queryParamMap.pipe(map((params) => params.get('from')));\n combineLatest([this.accountGroupId$, from$])\n .pipe(takeUntil(this._destroy$$))\n .subscribe(([accountGroupId, from]) => {\n if (from === 'account-details') {\n this.returnUrl = `businesses/accounts/${accountGroupId}/details`;\n }\n });\n }\n\n ngAfterViewInit(): void {\n this.createFormComponent\n .isCreatingUser()\n .pipe(takeUntil(this._destroy$$))\n .subscribe((isLoading) => this.isCreatingUser$$.next(isLoading));\n }\n\n ngOnDestroy(): void {\n this._destroy$$.next();\n this._destroy$$.complete();\n }\n\n navigateAfterUserCreation(user: User): void {\n const url = user.userId ? '/bc-admin/users/' + user.userId + '/permissions/' : '';\n this.accountGroupId$\n .pipe(take(1))\n .subscribe((accountGroupId: string) =>\n accountGroupId ? this.router.navigateByUrl(this.returnUrl) : this.router.navigateByUrl(url),\n );\n }\n\n cancel(): void {\n this.router.navigateByUrl(this.returnUrl);\n }\n\n createUser(): void {\n this.createFormComponent.createUser();\n }\n}\n", "\n \n \n {{ 'CREATE_BUSSINESS_USER_PAGE.TITLE' | translate }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ 'CREATE_BUSSINESS_USER_PAGE.CREATE_USER_BUTTON' | translate }}\n \n \n \n \n \n \n\n", "import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, map, take } from 'rxjs/operators';\nimport { VbcHostService } from '../vbc/vbc.host.service';\n\ninterface ResetPasswordRequest {\n partnerId: string;\n email: string;\n nextUrl?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ResetPasswordService {\n constructor(\n private vbcHostService: VbcHostService,\n private http: HttpClient,\n ) {}\n\n public resetPassword(r: ResetPasswordRequest): Observable {\n const params = new URLSearchParams();\n params.set('partnerId', r.partnerId);\n params.set('email', r.email);\n return this.http\n .post>(\n this.vbcHostService.hostWithScheme() + '/ajax/v1/forgot-password/',\n params.toString(),\n {\n headers: new HttpHeaders({\n 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',\n }),\n withCredentials: false,\n },\n )\n .pipe(\n take(1),\n map(() => true),\n catchError(() => {\n return of(false);\n }),\n );\n }\n}\n", "import { Component, Inject, OnInit, ViewChild } from '@angular/core';\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { AuxiliaryDataTableComponent, ObjectType } from '@vendasta/auxiliary-data-components';\nimport { PageService } from '@vendasta/galaxy/page/src/page.service';\nimport { SnackbarService } from '@vendasta/galaxy/snackbar-service';\nimport { IAMService, User } from '@vendasta/iam';\nimport { ProductAnalyticsService } from '@vendasta/product-analytics';\nimport { combineLatest, Observable, of } from 'rxjs';\nimport { catchError, filter, map, publishReplay, refCount, switchMap, take, tap } from 'rxjs/operators';\nimport { ConfirmationDialogComponent } from '../../acquisition-widget/acquisition-widget-overview.component';\nimport { AppConfigService } from '../../app-config.service';\nimport { SELECT_WELCOME_EMAIL_LOCALES } from '../../constants';\nimport { AccessService, Feature, StubAccessService } from '../../core/access';\nimport { ResetPasswordService } from '../reset-password.service';\nimport { UserService } from '../user.service';\nimport { VbcApiService, VbcUser } from '../vbc-api.service';\n\nconst SNACKBAR_DURATION = 4000;\n\ninterface UserInfo {\n firstName: string;\n lastName: string;\n greetingName: string;\n email: string;\n phone: string;\n language: string;\n}\n\n@Component({\n templateUrl: `./edit.component.html`,\n styleUrls: ['./edit.component.scss'],\n})\nexport class BusinessUserEditComponent implements OnInit {\n @ViewChild('auxiliarydatatable')\n private auxiliaryDataTable: AuxiliaryDataTableComponent;\n auxiliaryDataObjectType: ObjectType = 'user';\n\n isUpdatingUser = false;\n\n emailLanguages = SELECT_WELCOME_EMAIL_LOCALES;\n\n userFormGroup = new UntypedFormGroup({\n first_name: new UntypedFormControl(),\n last_name: new UntypedFormControl(),\n greeting_name: new UntypedFormControl(),\n user_email: new UntypedFormControl(),\n phone: new UntypedFormControl(),\n languages: new UntypedFormControl(SELECT_WELCOME_EMAIL_LOCALES[0].value),\n });\n private userId$: Observable;\n iamUserId$: Observable;\n private iamUser$: Observable;\n private vbcUser$: Observable;\n user$: Observable;\n hasCustomFieldAccess$ = this.accessService.hasAccessToFeature(Feature.customFields);\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private user: UserService,\n private resetPasswordService: ResetPasswordService,\n private appConfigService: AppConfigService,\n private snackbarService: SnackbarService,\n private dialog: MatDialog,\n private translationService: TranslateService,\n @Inject('PARTNER_ID') public partnerId$: Observable,\n private iamService: IAMService,\n private vbcApiService: VbcApiService,\n private readonly trackingService: ProductAnalyticsService,\n private readonly pageService: PageService,\n @Inject(StubAccessService) private readonly accessService: AccessService,\n ) {}\n\n ngOnInit(): void {\n this.userId$ = this.route.paramMap.pipe(\n map((params) => params.get('userId')),\n publishReplay(1),\n refCount(),\n );\n\n this.vbcUser$ = combineLatest([this.partnerId$, this.userId$]).pipe(\n switchMap(([partnerId, userId]) => this.vbcApiService.getUser(partnerId, userId)),\n publishReplay(1),\n refCount(),\n );\n\n this.iamUserId$ = this.vbcUser$.pipe(\n map((user) => user?.unifiedUserId),\n filter((id) => !!id),\n );\n this.iamUser$ = this.vbcUser$.pipe(\n switchMap((user) => {\n const userId = user?.unifiedUserId || '';\n return this.iamService.getMultiUsers([{ userId }]);\n }),\n map((users) => {\n return users[0];\n }),\n tap((user) => {\n this.userFormGroup.patchValue({\n languages: user.languageCode,\n });\n }),\n publishReplay(1),\n refCount(),\n );\n\n this.user$ = combineLatest([this.vbcUser$, this.iamUser$]).pipe(\n map(([vbc, iam]): UserInfo => {\n //try to find the language in existing languages\n const matchedLanguage = this.findClosestLanguageCode(iam.languageCode);\n return {\n firstName: vbc?.firstName || '',\n lastName: vbc?.lastName || '',\n greetingName: iam?.greetingName || '',\n email: vbc?.email,\n phone: vbc?.phone,\n language: matchedLanguage,\n };\n }),\n tap((user) => {\n this.userFormGroup.patchValue({\n first_name: user?.firstName,\n last_name: user?.lastName,\n greeting_name: user?.greetingName,\n user_email: user?.email,\n languages: user?.language || SELECT_WELCOME_EMAIL_LOCALES[0].value,\n });\n }),\n );\n }\n\n public resetPassword(): void {\n const confirmDialogRef = this.dialog.open(ConfirmationDialogComponent, {\n width: '620px',\n });\n confirmDialogRef.componentInstance.dialogData = {\n title: this.translationService.instant('USERS.ACTIONS.SEND_RESET_PASSWORD_EMAIL_PROMPT'),\n body: this.translationService.instant('USERS.ACTIONS.SEND_RESET_PASSWORD_EMAIL_CONFIRMATION'),\n buttonText: this.translationService.instant('COMMON.ACTION_LABELS.SEND'),\n buttonClass: 'button-normal',\n };\n confirmDialogRef\n .afterClosed()\n .pipe(\n take(1),\n filter((val) => val),\n switchMap(() => this.iamUser$),\n )\n .subscribe((user: User) => {\n this.resetPasswordService\n .resetPassword({\n email: user.email,\n partnerId: this.appConfigService.config.partnerId,\n })\n .subscribe((result) => {\n if (result) {\n this.snackbarService.successSnack(\n this.translationService.instant('USERS.ACTIONS.SEND_RESET_PASSWORD_EMAIL_SUCCESS'),\n );\n } else {\n this.snackbarService.errorSnack(\n this.translationService.instant('USERS.ERRORS.RESET_PASSWORD_FAILED'),\n null,\n SNACKBAR_DURATION,\n );\n }\n });\n });\n }\n\n updateUser(): void {\n this.isUpdatingUser = true;\n const updateCustomFields$ = this.hasCustomFieldAccess$.pipe(\n switchMap((hasCustomFieldAccess) => {\n if (hasCustomFieldAccess) {\n return this.updateCustomFields();\n }\n return of(true);\n }),\n );\n\n combineLatest([this.updateFixedFields(), updateCustomFields$])\n .pipe(take(1))\n .subscribe({\n next: ([successFixed, successCustom]) => {\n this.isUpdatingUser = false;\n if (successFixed && successCustom) {\n this.snackbarService.openSuccessSnack('EDIT_BUSINESS_USER_PAGE.SUBMIT_USER_SUCCESS');\n this.router.navigateByUrl(this.routeToNavigateTo());\n } else {\n this.snackbarService.openErrorSnack('EDIT_BUSINESS_USER_PAGE.SUBMIT_USER_ERROR', {\n duration: SNACKBAR_DURATION,\n });\n }\n },\n });\n }\n\n private updateFixedFields(): Observable {\n return combineLatest([this.partnerId$, this.userId$]).pipe(\n switchMap(([partnerId, userId]) => {\n return this.vbcApiService.updateUser(\n partnerId,\n userId,\n this.userFormGroup.get('first_name').value || '',\n this.userFormGroup.get('last_name').value || '',\n this.userFormGroup.get('greeting_name').value || '',\n this.userFormGroup.get('user_email').value,\n this.userFormGroup.get('phone').value,\n this.userFormGroup.get('languages').value,\n );\n }),\n take(1),\n );\n }\n\n private updateCustomFields(): Observable {\n this.posthogTrackCustomFieldEvent('start');\n return this.auxiliaryDataTable.saveChanges().pipe(\n map(() => true),\n catchError(() => {\n this.posthogTrackCustomFieldEvent('fail');\n return of(false);\n }),\n tap((success) => {\n if (success) {\n this.posthogTrackCustomFieldEvent('success');\n }\n }),\n );\n }\n\n private posthogTrackCustomFieldEvent(suffix: string): void {\n if (this.auxiliaryDataTable.hasChanges()) {\n this.trackingService.trackEvent(\n `CustomFields:edit-user-custom-field-data-${suffix}`,\n 'CustomFields',\n `edit-user-custom-field-data-${suffix}`,\n );\n }\n }\n\n private findClosestLanguageCode(lc: string): string {\n //return early if there is no language code to match\n if (!lc) {\n return '';\n }\n //try to find the language in existing languages\n let matchedLanguage = this.emailLanguages.find((t) => t.value == lc);\n //If the language code isn't in our dictionary, try trimming the code and seeing if we can find it\n if (matchedLanguage == undefined) {\n matchedLanguage = this.emailLanguages.find((t) => t.value == lc.split('-')[0]);\n }\n return matchedLanguage?.value || lc;\n }\n\n private routeToNavigateTo(): string {\n return this.pageService.getPreviousPageUrl('/bc-admin');\n }\n\n cancelUpdateUser(): void {\n this.posthogTrackCustomFieldEvent('cancel');\n this.router.navigateByUrl(this.routeToNavigateTo());\n }\n}\n", "\n \n Edit User\n \n \n \n \n \n \n \n \n \n \n \n \n {{ 'USERS.FORM_TAB.BASIC' | translate }}\n \n \n \n \n \n \n \n {{ 'USERS.FORM_TAB.CUSTOM_FIELDS' | translate }}\n \n \n \n \n \n\n
\n \n \n
\n
\n
\n\n\n \n \n \n {{ 'EDIT_BUSINESS_USER_PAGE.TITLE' | translate }}\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 { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { DomainChooserModule } from '@galaxy/email-ui/domain-chooser';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ResendWelcomeEmailDialogComponent } from './resend-welcome-email-dialog.component';\n\n@NgModule({\n declarations: [ResendWelcomeEmailDialogComponent],\n imports: [CommonModule, DomainChooserModule, MatDialogModule, TranslateModule, MatButtonModule],\n})\nexport class ResendWelcomeEmailDialogModule {}\n", "import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { RouterModule } from '@angular/router';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { AuxiliaryDataModule } from '@vendasta/auxiliary-data-components';\nimport { GalaxyBadgeModule } from '@vendasta/galaxy/badge';\nimport { GalaxyButtonLoadingIndicatorModule } from '@vendasta/galaxy/button-loading-indicator';\nimport { GalaxyCheckboxModule } from '@vendasta/galaxy/checkbox';\nimport { GalaxyEmptyStateModule } from '@vendasta/galaxy/empty-state';\nimport { GalaxyFormFieldModule } from '@vendasta/galaxy/form-field';\nimport { GalaxyWrapModule } from '@vendasta/galaxy/galaxy-wrap';\nimport { GalaxyInputModule } from '@vendasta/galaxy/input';\nimport { GalaxyLoadingSpinnerModule } from '@vendasta/galaxy/loading-spinner';\nimport { GalaxyPageModule } from '@vendasta/galaxy/page';\nimport { VaFilterModule, VaTableModule } from '@vendasta/uikit';\nimport { VFormModule } from '@vendasta/vform';\nimport { ConfirmationDialogComponent } from '../common/confirmation-dialog.component';\nimport { TertiaryDropdownButtonModule } from '../common/tertiary-dropdown-button/tertiary-dropdown-button.module';\nimport { TeamMemberService } from '../manage-team/team-member.service';\nimport { VbcHostService } from '../vbc/vbc.host.service';\nimport { ManageUsersComponent } from './manage-users.component';\nimport { ResendWelcomeEmailDialogModule } from './resend-welcome-email-dialog/resend-welcome-email-dialog.module';\nimport { ResetPasswordService } from './reset-password.service';\nimport { UserBulkActionsService } from './user-bulk-actions/user-bulk-actions.service';\nimport { UserProfilePageComponent } from './user-profile-page/user-profile-page.component';\nimport { CreateUserFormComponent } from './user/create-user-form.component';\nimport { BusinessUserCreateComponent } from './user/create.component';\nimport { BusinessUserEditComponent } from './user/edit.component';\n\n@NgModule({\n imports: [\n ConfirmationDialogComponent,\n AuxiliaryDataModule,\n CommonModule,\n CreateUserFormComponent,\n GalaxyButtonLoadingIndicatorModule,\n GalaxyCheckboxModule,\n GalaxyEmptyStateModule,\n GalaxyFormFieldModule,\n GalaxyInputModule,\n GalaxyLoadingSpinnerModule,\n GalaxyPageModule,\n GalaxyWrapModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatDialogModule,\n MatDividerModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatSelectModule,\n MatTabsModule,\n ReactiveFormsModule,\n ResendWelcomeEmailDialogModule,\n RouterModule,\n TertiaryDropdownButtonModule,\n TranslateModule,\n VaTableModule,\n VFormModule,\n GalaxyBadgeModule,\n VaFilterModule,\n ],\n declarations: [\n ManageUsersComponent,\n UserProfilePageComponent,\n BusinessUserCreateComponent,\n BusinessUserEditComponent,\n ],\n providers: [UserBulkActionsService, VbcHostService, ResetPasswordService, TranslateService, TeamMemberService],\n exports: [UserProfilePageComponent],\n})\nexport class UsersModule {}\n", "import { Injectable } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\n\n/*\nThis \"guard\" can be used to hide features until the devMode query parameter is set to \"true\".\n\nNote: This should only be used for coordinating the release of new features.\nDo not use this as a security mechanism!\n */\n@Injectable()\nexport class InsecureDevMode {\n private isDev = false;\n constructor(route: ActivatedRoute) {\n route.queryParams.subscribe((params) => {\n const dm = String(params.devMode).toLowerCase();\n this.isDev = dm === 'true';\n if (this.isDev) {\n console.log('\"In Development\" components are now visible.');\n }\n });\n }\n isActive(): boolean {\n return this.isDev;\n }\n}\n"], "mappings": "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", "names": ["VbcHostService", "constructor", "environmentService", "host", "_host", "getEnvironment", "Environment", "LOCAL", "TEST", "DEMO", "PROD", "hostWithScheme", "\u0275\u0275inject", "EnvironmentService", "factory", "\u0275fac", "providedIn", "_VbcHostService", "INSTANT_EMAIL_SECTION_TYPE", "DAILY_DIGEST_TYPE", "EXECUTIVE_REPORT_TYPE", "GLOBAL_SETTINGS_TYPE", "headerName", "fetchWithCache", "req", "cacheName", "ttl", "__async", "cache", "caches", "open", "resp", "match", "url", "Date", "parse", "headers", "get", "now", "fetch", "Response", "body", "toISOString", "put", "json", "fetchWithCache$", "from", "EXECUTIVE_REPORT_SECTION_ID", "VBC_PRODUCT_ICON", "SORT_ORDER", "AppIDs", "AdvertisingIntelligence", "reverse", "LegacyNotificationPreferenceService", "constructor", "partnerService", "sessionService", "httpClient", "productService", "vbcHostService", "preferenceService", "whitelabelService", "getSettings", "partnerId", "marketId", "userId", "businessId", "bulk", "combineLatest", "getAvailableSections", "of", "components", "instant", "LegacyStatus", "STATUS_UNSET", "digest", "monthlyTaskReport", "instantSettings", "digestSettings", "executiveReportSettings", "defaults", "userNotificationsDisabled", "get$", "products", "getBranding", "pipe", "map", "data", "preferences", "vbcDetails", "extractSettingSections", "apps", "VBC", "name", "res", "vbcName", "specificPreferences", "defaultPreferences", "preferencesMap", "Map", "report", "forEach", "setting", "set", "notificationId", "status", "defaultsMap", "STATUS_DEFAULT", "STATUS_ENABLED", "productSections", "baseSections", "productId", "iconType", "sections", "details", "section", "id", "d", "INSTANT_EMAIL_SECTION_TYPE", "push", "sectionType", "sectionId", "title", "value", "defaultValue", "productDetails", "productSection", "find", "product", "iconUrl", "marketplaceProduct", "product_id", "icon_url", "activities", "activity", "typeMap", "defaultTypeMap", "DAILY_DIGEST_TYPE", "EXECUTIVE_REPORT_TYPE", "get", "children", "tags", "tag", "sort", "a", "b", "indexOf", "deleteSectionSetting", "accountGroupId", "delete$", "updateSectionSetting", "settingId", "changes", "update$", "bulkUpdatePermissions", "userIds", "permissions", "partialIdentifiers", "permission", "valueFlag", "length", "bulkUpdateBusinessByPartner", "bulkUpdateUsersByPartner", "bulkUpdateBusinessByUser", "bulkUpdatePreferenceByIdentifier", "apiOptions", "sessionId", "headers", "Authorization", "url", "hostWithScheme", "getSessionId", "switchMap", "fetchWithCache$", "Request", "statusCode", "\u0275\u0275inject", "PartnerService", "SessionService", "HttpClient", "ProductService", "VbcHostService", "WhitelabelService", "factory", "\u0275fac", "providedIn", "_LegacyNotificationPreferenceService", "TabApiService", "constructor", "apiService", "enableAll", "accountGroupId", "userId", "url", "data", "post", "disableAll", "set", "tabIds", "setMulti", "userIds", "partnerTabIds", "tabIdsToAdd", "tabIdsToRemove", "\u0275\u0275inject", "ApiService", "factory", "\u0275fac", "providedIn", "_TabApiService", "UserBulkActionsService", "constructor", "partnerService", "tabApiService", "notificationPreferenceService", "translateService", "selectedUsers$$", "BehaviorSubject", "selectedUsers$", "asObservable", "tabsGiveAccess$$", "tabsGiveAccess$", "tabsRemoveAccess$$", "tabsRemoveAccess$", "notificationSettings$$", "notificationSettings$", "bulkUpdateScope", "areUsersSelected", "value", "resetSelections", "next", "getAmountOfUsersSelectedStringAsync", "allUsers", "stream", "numUsers", "totalUserCount", "userNumber", "length", "text$", "combineLatest", "pipe", "map", "users", "text", "fullName", "getUserTabAccessInfo", "selectedUsers", "tabs", "setSelectedUsersInfo", "setAvailableTabs", "setTabAccess", "tabsGiveAccess", "tabsRemoveAccess", "setNotificationUpdate", "update", "changes", "index", "findIndex", "existing", "section", "setting", "push", "filter", "change", "valueFlag", "LegacyStatus", "STATUS_UNSET", "setBulkUpdateScope", "val", "submitChanges", "requestTabAccessChanges", "user", "userId", "tab", "id", "requestNotificationChanges", "userIds", "tabIds", "tap", "tabsGivenAccess", "tabsRemovedAccess", "Error", "switchMap", "setMulti", "catchError", "err", "of", "message", "permissions", "bulkUpdatePermissions", "partnerId", "unifiedUserId", "\u0275\u0275inject", "PartnerService", "TabApiService", "LegacyNotificationPreferenceService", "TranslateService", "factory", "\u0275fac", "providedIn", "_UserBulkActionsService", "DASHBOARD_TAB", "REPUTATION_TAB", "SOCIAL_TAB", "CUSTOMER_VOICE_TAB", "RECENT_ACTIVITY_TAB", "RECOMMENDATIONS_TAB", "STORE_TAB", "CUSTOMER_LIST_TAB", "EXECUTIVE_REPORT_TAB", "GUIDES_TAB", "FILES_TAB", "BUSINESS_PROFILE_TAB", "SOCIAL_CONNECTIONS_TAB", "MY_PRODUCTS_TAB", "INVOICES_TAB", "GET_STARTED_TAB", "NEW_INBOX_TAB", "MEETING_SCHEDULER_TAB", "ORDERS_TAB", "PROJECTS_TAB", "businessNavTabList", "id", "REPUTATION_TAB", "name", "icon", "SOCIAL_TAB", "CUSTOMER_VOICE_TAB", "businessCenterTabList", "GET_STARTED_TAB", "DASHBOARD_TAB", "RECENT_ACTIVITY_TAB", "NEW_INBOX_TAB", "CUSTOMER_LIST_TAB", "MEETING_SCHEDULER_TAB", "RECOMMENDATIONS_TAB", "STORE_TAB", "EXECUTIVE_REPORT_TAB", "GUIDES_TAB", "FILES_TAB", "BUSINESS_PROFILE_TAB", "SOCIAL_CONNECTIONS_TAB", "ORDERS_TAB", "PROJECTS_TAB", "INVOICES_TAB", "MY_PRODUCTS_TAB", "\u0275\u0275elementStart", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "ctx_r1", "\u0275\u0275nextContext", "\u0275\u0275resetView", "closeDialog", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275advance", "\u0275\u0275property", "\u0275\u0275pipeBind1", "preview_r3", "templateHtml", "\u0275\u0275sanitizeHtml", "PreviewEmailModalComponent", "constructor", "data", "dialogRef", "close", "\u0275\u0275directiveInject", "MAT_DIALOG_DATA", "MatDialogRef", "selectors", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "PreviewEmailModalComponent_div_0_Template", "AsyncPipe", "NgIf", "MatButtonModule", "MatIconButton", "MatDialogModule", "MatIconModule", "MatIcon", "GalaxyPipesModule", "GalaxyITrustThisHtmlPipe", "styles", "_PreviewEmailModalComponent", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "marketName_r2", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "ResendWelcomeEmailDialogComponent", "constructor", "dialogRef", "data", "bcUserService", "formBuilder", "snackService", "translationService", "iamService", "marketService", "previewModal", "ngOnInit", "marketId", "form", "group", "sendFromDefault", "control", "Validators", "required", "marketName$", "getMarket", "pipe", "map", "market", "name", "sender", "Sender", "type", "SenderType", "SENDER_TYPE_PARTNER", "id", "partnerID", "resendWelcomeEmail", "choice", "sendWelcomeEmail", "userID", "loginUrl", "shouldUsePlatformDefault", "subscribe", "next", "successSnack", "instant", "close", "error", "errorSnack", "openPreviewEmail", "__async", "user", "firstValueFrom", "getUser", "userId", "open", "PreviewEmailModalComponent", "template", "getWelcomeEmailTemplate", "greetingName", "firstName", "languageCode", "width", "height", "maxHeight", "\u0275\u0275directiveInject", "MatDialogRef", "MAT_DIALOG_DATA", "UserService", "UntypedFormBuilder", "SnackbarService", "TranslateService", "IAMService", "MarketsService", "MatDialog", "selectors", "decls", "vars", "consts", "rf", "ctx", "\u0275\u0275element", "\u0275\u0275template", "ResendWelcomeEmailDialogComponent_div_10_Template", "\u0275\u0275listener", "i0", "\u0275\u0275restoreView", "_r1", "\u0275\u0275resetView", "domain_r3", "\u0275\u0275reference", "getChoice", "\u0275\u0275property", "_ResendWelcomeEmailDialogComponent", "UserService", "isLoading$", "isLoading$$", "asObservable", "hasMoreResults", "loadMoreUrl$$", "pipe", "map", "x", "constructor", "apiService", "snackbarService", "router", "translate", "sortOn", "sortDirection", "searchUrl", "isInitialState", "BehaviorSubject", "totalResults", "users$$", "user$$", "user$", "shareReplay", "users$", "search", "terms", "debounceMs", "debounceTime", "distinctUntilChanged", "subscribe", "term", "loadUsers", "setSort", "orderBy", "order", "SortOrder", "Ascending", "loadMore", "getValue", "delete", "user", "url", "body", "vbc_user_id", "userId", "post", "catchError", "errorSnack", "instant", "of", "take", "success", "navigateByUrl", "currentUsers", "next", "filter", "successSnack", "toggleNotificationsEnabled", "value", "enableFlag", "processUsersReponse", "result", "users", "userData", "User", "loadMoreUrl", "query", "append", "filterQuery", "sort", "direction", "loadInitialUsers", "loadMoreUsers", "get", "params", "loadingUsersSubscription", "unsubscribe", "usersResponse", "fullUrl", "encodeURIComponent", "concat", "getUser$", "fieldMask", "forEach", "m", "loadUser$", "tap", "clearUserSubjects", "\u0275\u0275inject", "ApiService", "SnackbarService", "Router", "TranslateService", "factory", "\u0275fac", "providedIn", "_UserService", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r4", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "navigateToBulkActions", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "buttonTextDisplay$", "\u0275\u0275elementContainerStart", "$event", "_r2", "updateSearchTerm", "\u0275\u0275template", "ManageUsersComponent_ng_container_17_ng_container_1_ng_container_1_span_10_Template", "onSort", "\u0275\u0275property", "loginUrl", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate", "loginUrlText", "\u0275\u0275pipeBind2", "\u0275\u0275pureFunction2", "_c2", "pageData_r5", "users", "\u0275\u0275pureFunction0", "_c1", "length", "usersService", "totalResults", "displayBulkActions", "usersTable", "initialSort", "busy", "hasMoreResults", "ManageUsersComponent_ng_container_17_ng_container_1_ng_container_1_Template", "hideEmptyState", "emptyState_r6", "ManageUsersComponent_ng_container_17_ng_container_1_Template", "tabDetails", "loading_r7", "\u0275\u0275element", "_r8", "navigateToURL", "getImageSrc", "ManageUsersComponent", "constructor", "dialogService", "snackbarService", "partnerService", "router", "activatedRoute", "vconfigService", "userBulkActionsService", "accessService", "partner", "dialog", "bcUserService", "ssoService", "partnerId$", "userId$", "appConfig", "searchTerm$$", "BehaviorSubject", "searchTerm$", "asObservable", "subscriptions", "totalUserCount", "selectedUsers", "buttonTextDisplay$$", "fieldname", "order", "SortOrder", "Ascending", "isSearching", "searchedUsers", "TableViewModel", "columns", "title", "cellForItem", "user", "fullName", "sortOn", "config", "width", "email", "accountGroupAssociationCount", "toString", "toggleCell", "alignment", "actionsCell", "actionsMenu", "selection", "selectable", "selectAll", "selectionChanged", "selected", "updateButtonCount", "loadMoreItemsTriggered", "onLoadMore", "ngOnInit", "userParam", "snapshot", "queryParams", "next", "busy$", "isLoading$", "users$", "search", "pipe", "startWith", "tap", "searchTerm", "getBusinessCenterHostname", "subscribe", "checkTabsVisible", "push", "hasAccessToFeature", "hasAccess", "hasAccessToLists", "ngOnDestroy", "sub", "unsubscribe", "clearUserSubjects", "whitelabelConfig$", "getConfigurations", "partnerId", "hasAccessToGuides$", "hasAccessToLocalMarketingIndex$", "hasAccessToExecutiveReport$", "tabsDetails$", "combineLatest", "first", "wlConfig", "hasAccessToGuides", "hasAccessToLocalMarketingIndex", "hasAccessToExecutiveReport", "exclude", "vbc_show_content_library", "RECOMMENDATIONS_TAB", "GUIDES_TAB", "EXECUTIVE_REPORT_TAB", "tabs", "businessCenterTabList", "filter", "tab", "indexOf", "id", "newTerm", "toLowerCase", "allUsersAvailable", "setSelectedUsersInfo", "setAvailableTabs", "navigate", "createUserClick", "navigateByUrl", "SwitchCell", "disabled", "checked", "notificationsEnabled", "onClick", "handleNotificationsToggle", "ButtonCell", "impersonateButton", "deleteCell", "type", "icon", "deleteUser", "color", "getEntryUrl", "newPartnerServiceContext", "impersonation", "unifiedUserId", "url", "undefined", "errorSnack", "window", "open", "error", "tooltip", "menuItems", "text", "leftIcon", "link", "userId", "click", "presentSendWelcomeEmailDialog", "showTopDivider", "MenuCell", "ResendWelcomeEmailDialogComponent", "data", "userID", "partnerID", "loadMore", "event", "setSort", "delete", "result", "take", "accountOrAccounts", "message", "buttonText", "confirm", "dialogResponse", "toggleNotificationsEnabled", "successSnack", "updateColumnTitled", "bind", "openBulkUserImport", "importUsersCallback", "openAccessRestrictedDialog", "featureId", "closeAll", "accessRestrictedDialogRef", "AccessRestrictedDialogComponent", "afterClosed", "\u0275\u0275directiveInject", "VaDialogService", "SnackbarService", "UserService", "PartnerService", "Router", "ActivatedRoute", "VConfigService", "UserBulkActionsService", "StubAccessService", "MatDialog", "SSOService", "AppConfigService", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "i0", "_r1", "ManageUsersComponent_mat_icon_7_Template", "ManageUsersComponent_ng_container_17_Template", "ManageUsersComponent_ng_template_21_Template", "\u0275\u0275templateRefExtractor", "ManageUsersComponent_ng_template_23_Template", "\u0275\u0275pureFunction3", "_c0", "_ManageUsersComponent", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate", "button_r2", "icon", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r1", "$implicit", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "clicked", "\u0275\u0275template", "TertiaryDropdownButtonComponent_ng_container_0_ng_container_6_ng_container_3_Template", "\u0275\u0275propertyInterpolate", "\u0275\u0275pipeBind1", "tooltip", "\u0275\u0275property", "buttonId", "url", "openNewTab", "cssClasses", "title", "TertiaryDropdownButtonComponent_ng_container_0_ng_container_6_Template", "tertiary_r4", "tertiaryButtons", "TertiaryDropdownButtonComponent", "button", "callback", "console", "log", "selectors", "inputs", "decls", "vars", "consts", "template", "rf", "ctx", "TertiaryDropdownButtonComponent_ng_container_0_Template", "length", "_TertiaryDropdownButtonComponent", "TertiaryDropdownButtonModule", "CommonModule", "MatIconModule", "MatButtonModule", "MatMenuModule", "MatTooltipModule", "RouterModule", "TranslateModule", "_TertiaryDropdownButtonModule", "\u0275\u0275elementContainerStart", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275propertyInterpolate", "\u0275\u0275pipeBind1", "ctx_r0", "impersonationUrl$", "\u0275\u0275sanitizeUrl", "\u0275\u0275textInterpolate1", "\u0275\u0275element", "\u0275\u0275property", "headerButtons_r2", "UserProfilePageComponent", "constructor", "route", "userService", "dialogService", "snackbarService", "translateService", "bcUserService", "partnerService", "dialog", "ssoService", "subscriptions", "ngOnInit", "userId$", "params", "pipe", "map", "userId", "user$", "switchMap", "getUser$", "headerButtons$", "user", "title", "icon", "url", "navigationDepth", "NavigationDepth", "tertiary", "callback", "presentSendWelcomeEmailDialog", "showTopDivider", "deleteUser", "pageTitle$", "fullName", "email", "getEntryUrl", "newPartnerServiceContext", "partnerId", "impersonation", "unifiedUserId", "breadcrumbs$", "merge", "of", "text", "pageTitle", "scan", "a", "c", "ngOnDestroy", "sub", "unsubscribe", "getBusinessCenterHostname", "take", "subscribe", "hostName", "open", "ResendWelcomeEmailDialogComponent", "data", "userID", "partnerID", "loginUrl", "width", "push", "delete", "instant", "name", "filter", "result", "\u0275\u0275directiveInject", "ActivatedRoute", "UserService", "VaDialogService", "SnackbarService", "TranslateService", "PartnerService", "MatDialog", "SSOService", "selectors", "decls", "vars", "consts", "template", "rf", "ctx", "\u0275\u0275template", "UserProfilePageComponent_ng_container_13_Template", "UserProfilePageComponent_app_tertiary_dropdown_button_15_Template", "_UserProfilePageComponent", "ApiError", "constructor", "message", "code", "data", "name", "VApiService", "http", "sessionService", "get", "url", "options", "Object", "assign", "apiOptions", "pipe", "map", "extractData", "catchError", "handleError", "put", "body", "post", "getSessionId", "switchMap", "withCredentials", "generateUrlWithParams", "params", "keys", "length", "finalUrl", "finalParams", "param_key", "join", "generateRepeatedUrlParams", "paramName", "repeatedParams", "forEach", "id", "index", "sessionId", "headers", "HttpHeaders", "Authorization", "responseType", "res", "prototype", "hasOwnProperty", "call", "error", "errorInfo", "err", "status", "observableThrowError", "\u0275\u0275inject", "HttpClient", "SessionService", "factory", "\u0275fac", "providedIn", "_VApiService", "CustomQueryEncoderHelper", "encodeKey", "k", "encodeURIComponent", "encodeValue", "v", "decodeKey", "decodeURIComponent", "decodeValue", "VBC_HOSTS", "Map", "set", "Environment", "LOCAL", "DEMO", "PROD", "VbcApiService", "constructor", "vapiService", "environmentService", "scheme", "vbcHost", "window", "location", "protocol", "startsWith", "get", "getEnvironment", "getUser", "partnerId", "userId", "post", "params", "apiUser", "updateUser", "firstName", "lastName", "greetingName", "email", "phone", "preferredLocale", "HttpParams", "encoder", "pipe", "map", "catchError", "of", "createUser", "accountGroupId", "welcomeMessageFlag", "emailLocale", "welcomeMessage", "postUrl", "appendAll", "\u0275\u0275inject", "VApiService", "EnvironmentService", "factory", "\u0275fac", "providedIn", "_VbcApiService", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275property", "l_r1", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "label", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r2", "ctx_r2", "\u0275\u0275nextContext", "\u0275\u0275resetView", "openPreviewEmail", "\u0275\u0275pipeBind1", "\u0275\u0275elementContainerStart", "\u0275\u0275element", "CreateUserFormComponent", "constructor", "snackbarService", "filterModal", "vbcApiService", "appConfigService", "bcUserService", "partnerService", "accountGroupId", "userCreated", "EventEmitter", "emailLanguages", "SELECT_WELCOME_EMAIL_LOCALES", "_isCreatingUser$$", "BehaviorSubject", "_isCreatingUser$", "asObservable", "form", "FormGroup", "first_name", "FormControl", "last_name", "greeting_name", "user_email", "Validators", "required", "emailValidator", "phone", "languages", "value", "send_welcome_email", "custom_welcome_message", "isCreatingUser", "createUser", "__async", "invalid", "markAsDirty", "openErrorSnack", "next", "createUserRequest", "partnerId", "config", "firstName", "lastName", "greetingName", "email", "welcomeMessageFlag", "emailLocale", "welcomeMessage", "user", "firstValueFrom", "toLowerCase", "toString", "emit", "openSuccessSnack", "err", "errTranslationId", "data", "message", "includes", "getBusinessCenterHostname", "subscribe", "loginUrl", "open", "PreviewEmailModalComponent", "template", "getWelcomeEmailTemplate", "width", "height", "maxHeight", "\u0275\u0275directiveInject", "SnackbarService", "MatDialog", "VbcApiService", "AppConfigService", "UserService", "PartnerService", "selectors", "inputs", "outputs", "standalone", "features", "\u0275\u0275StandaloneFeature", "decls", "vars", "consts", "rf", "ctx", "\u0275\u0275template", "CreateUserFormComponent_mat_option_22_Template", "CreateUserFormComponent_a_38_Template", "CreateUserFormComponent_ng_container_39_Template", "controls", "\u0275\u0275textInterpolate", "FormsModule", "\u0275NgNoValidate", "DefaultValueAccessor", "NgControlStatus", "NgControlStatusGroup", "RequiredValidator", "GalaxyCheckboxModule", "CheckboxComponent", "GalaxyInputModule", "PhoneInputComponent", "GalaxySnackbarModule", "MatButtonModule", "MatAnchor", "MatDialogModule", "MatFormFieldModule", "MatFormField", "MatLabel", "MatHint", "MatIconModule", "MatInputModule", "MatInput", "MatSelectModule", "MatSelect", "MatOption", "NgForOf", "NgIf", "ReactiveFormsModule", "FormControlDirective", "FormGroupDirective", "FormControlName", "TranslateModule", "TranslatePipe", "styles", "changeDetection", "_CreateUserFormComponent", "BusinessUserCreateComponent", "constructor", "router", "route", "isCreatingUser$$", "BehaviorSubject", "_destroy$$", "Subject", "ngOnInit", "accountGroupId$", "queryParamMap", "pipe", "map", "params", "get", "shareReplay", "returnUrl", "from$", "combineLatest", "takeUntil", "subscribe", "accountGroupId", "from", "ngAfterViewInit", "createFormComponent", "isCreatingUser", "isLoading", "next", "ngOnDestroy", "complete", "navigateAfterUserCreation", "user", "url", "userId", "take", "navigateByUrl", "cancel", "createUser", "\u0275\u0275directiveInject", "Router", "ActivatedRoute", "selectors", "viewQuery", "rf", "ctx", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275element", "\u0275\u0275listener", "$event", "i0", "\u0275\u0275restoreView", "_r1", "\u0275\u0275resetView", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275property", "_BusinessUserCreateComponent", "ResetPasswordService", "constructor", "vbcHostService", "http", "resetPassword", "r", "params", "URLSearchParams", "set", "partnerId", "email", "post", "hostWithScheme", "toString", "headers", "HttpHeaders", "withCredentials", "pipe", "take", "map", "catchError", "of", "\u0275\u0275inject", "VbcHostService", "HttpClient", "factory", "\u0275fac", "providedIn", "_ResetPasswordService", "\u0275\u0275elementStart", "\u0275\u0275text", "\u0275\u0275elementEnd", "\u0275\u0275advance", "\u0275\u0275textInterpolate1", "\u0275\u0275pipeBind1", "\u0275\u0275elementContainer", "\u0275\u0275template", "BusinessUserEditComponent_mat_tab_group_12_ng_template_2_Template", "BusinessUserEditComponent_mat_tab_group_12_ng_container_3_Template", "BusinessUserEditComponent_mat_tab_group_12_ng_template_5_Template", "BusinessUserEditComponent_mat_tab_group_12_ng_container_6_Template", "\u0275\u0275property", "fixedFields_r2", "customFields_r3", "\u0275\u0275elementContainerStart", "\u0275\u0275element", "\u0275\u0275listener", "\u0275\u0275restoreView", "_r4", "ctx_r4", "\u0275\u0275nextContext", "\u0275\u0275resetView", "cancelUpdateUser", "userFormGroup", "controls", "first_name", "last_name", "greeting_name", "user_email", "phone", "user_r6", "languages", "emailLanguages", "BusinessUserEditComponent_ng_template_20_mat_card_0_Template", "user$", "loadingPage_r7", "partnerId$", "auxiliaryDataObjectType", "userId_r8", "BusinessUserEditComponent_ng_template_24_ng_container_0_Template", "iamUserId$", "SNACKBAR_DURATION", "BusinessUserEditComponent", "constructor", "router", "route", "user", "resetPasswordService", "appConfigService", "snackbarService", "dialog", "translationService", "iamService", "vbcApiService", "trackingService", "pageService", "accessService", "isUpdatingUser", "SELECT_WELCOME_EMAIL_LOCALES", "UntypedFormGroup", "UntypedFormControl", "value", "hasCustomFieldAccess$", "hasAccessToFeature", "ngOnInit", "userId$", "paramMap", "pipe", "map", "params", "get", "publishReplay", "refCount", "vbcUser$", "combineLatest", "switchMap", "partnerId", "userId", "getUser", "unifiedUserId", "filter", "id", "iamUser$", "getMultiUsers", "users", "tap", "patchValue", "languageCode", "vbc", "iam", "matchedLanguage", "findClosestLanguageCode", "firstName", "lastName", "greetingName", "email", "language", "resetPassword", "confirmDialogRef", "open", "ConfirmationDialogComponent", "width", "componentInstance", "dialogData", "title", "instant", "body", "buttonText", "buttonClass", "afterClosed", "take", "val", "subscribe", "config", "result", "successSnack", "errorSnack", "updateUser", "updateCustomFields$", "hasCustomFieldAccess", "updateCustomFields", "of", "updateFixedFields", "next", "successFixed", "successCustom", "openSuccessSnack", "navigateByUrl", "routeToNavigateTo", "openErrorSnack", "duration", "posthogTrackCustomFieldEvent", "auxiliaryDataTable", "saveChanges", "catchError", "success", "suffix", "hasChanges", "trackEvent", "lc", "find", "t", "undefined", "split", "getPreviousPageUrl", "\u0275\u0275directiveInject", "Router", "ActivatedRoute", "UserService", "ResetPasswordService", "AppConfigService", "SnackbarService", "MatDialog", "TranslateService", "IAMService", "VbcApiService", "ProductAnalyticsService", "PageService", "StubAccessService", "selectors", "viewQuery", "rf", "ctx", "i0", "_r1", "BusinessUserEditComponent_mat_tab_group_12_Template", "BusinessUserEditComponent_ng_container_16_Template", "BusinessUserEditComponent_ng_template_17_Template", "\u0275\u0275templateRefExtractor", "BusinessUserEditComponent_button_19_Template", "BusinessUserEditComponent_ng_template_20_Template", "BusinessUserEditComponent_ng_template_22_Template", "BusinessUserEditComponent_ng_template_24_Template", "loadingSpinner_r9", "_BusinessUserEditComponent", "ResendWelcomeEmailDialogModule", "CommonModule", "DomainChooserModule", "MatDialogModule", "TranslateModule", "MatButtonModule", "_ResendWelcomeEmailDialogModule", "UsersModule", "UserBulkActionsService", "VbcHostService", "ResetPasswordService", "TranslateService", "TeamMemberService", "imports", "ConfirmationDialogComponent", "AuxiliaryDataModule", "CommonModule", "CreateUserFormComponent", "GalaxyButtonLoadingIndicatorModule", "GalaxyCheckboxModule", "GalaxyEmptyStateModule", "GalaxyFormFieldModule", "GalaxyInputModule", "GalaxyLoadingSpinnerModule", "GalaxyPageModule", "GalaxyWrapModule", "MatButtonModule", "MatCardModule", "MatCheckboxModule", "MatDialogModule", "MatDividerModule", "MatFormFieldModule", "MatIconModule", "MatInputModule", "MatProgressSpinnerModule", "MatRadioModule", "MatSelectModule", "MatTabsModule", "ReactiveFormsModule", "ResendWelcomeEmailDialogModule", "RouterModule", "TertiaryDropdownButtonModule", "TranslateModule", "VaTableModule", "VFormModule", "GalaxyBadgeModule", "VaFilterModule", "_UsersModule", "InsecureDevMode", "constructor", "route", "isDev", "queryParams", "subscribe", "params", "dm", "String", "devMode", "toLowerCase", "console", "log", "isActive", "\u0275\u0275inject", "ActivatedRoute", "factory", "\u0275fac", "_InsecureDevMode"] }