{ "version": 3, "sources": ["libs/integrated-search/projects/data-access/src/state/integrated-search-projects-data-access.actions.ts", "libs/integrated-search/projects/data-access/src/state/integrated-search-projects-data-access.repository.ts", "libs/integrated-search/projects/data-access/src/state/integrated-search-projects-data-access.facade.ts", "libs/integrated-search/projects/data-access/src/categories-state/integrated-search-projects-data-access-categories.actions.ts", "libs/integrated-search/projects/data-access/src/categories-state/integrated-search-projects-data-access-categories.repository.ts", "libs/integrated-search/projects/data-access/src/categories-state/integrated-search-projects-data-access-categories.facade.ts", "libs/integrated-search/projects/data-access/src/services/integrated-search-projects-data-access.service.ts", "libs/integrated-search/projects/data-access/src/state/integrated-search-projects-data-access.effects.ts", "libs/integrated-search/projects/data-access/src/categories-state/integrated-search-projects-data-access-categories.effects.ts", "libs/integrated-search/projects/data-access/src/integrated-search-projects-data-access.module.ts"], "sourcesContent": ["import { actionsFactory, props } from '@ngneat/effects';\n\nimport { ISProjectDataRequest, ISProjectDetails, ISStoreEnum } from '@ess/integrated-search/shared/utils';\n\n/* eslint-disable @typescript-eslint/member-ordering */\nexport class IntegratedSearchProjectsDataAccessActions {\n private static readonly __factory = actionsFactory(ISStoreEnum.PROJECTS);\n\n static readonly loadProjects = this.__factory.create(\n 'Fetch projects list for a client',\n props<{ slug: string | null }>(),\n );\n static readonly setActiveProjectSuccess = this.__factory.create(\n 'Active project change success',\n props<{ projectId: number | null }>(),\n );\n static readonly toggleSort = this.__factory.create('Toggle sort');\n static readonly createProject = this.__factory.create(\n 'Create new project',\n props<{\n payload: ISProjectDataRequest;\n onSuccess?: (project: ISProjectDetails) => void;\n onError?: () => void;\n }>(),\n );\n static readonly updateProject = this.__factory.create(\n 'Update project',\n props<{\n projectId: number;\n payload: ISProjectDataRequest;\n onSuccess?: () => void;\n onError?: () => void;\n }>(),\n );\n static readonly deleteProject = this.__factory.create(\n 'Delete project',\n props<{ projectId: number; onSuccess?: () => void; onError?: () => void }>(),\n );\n static readonly loadActiveProjectDetails = this.__factory.create(\n 'Fetch details of active project',\n props<{ projectId: number }>(),\n );\n}\n", "import { Injectable } from '@angular/core';\nimport { Actions } from '@ngneat/effects-ng';\nimport { createStore, select, setProps, withProps } from '@ngneat/elf';\nimport {\n addEntities,\n deleteEntities,\n deleteEntitiesByPredicate,\n getActiveEntity,\n getAllEntities,\n resetActiveId,\n selectActiveEntity,\n selectAllEntities,\n setActiveId,\n updateEntities,\n withActiveId,\n withEntities,\n} from '@ngneat/elf-entities';\nimport { combineLatestWith, map, Observable, shareReplay } from 'rxjs';\n\nimport { IntegratedSearchClientsDataAccessClientsFacade } from '@ess/integrated-search/clients/data-access';\nimport {\n ISAccountStatusEnum,\n ISProject,\n ISProjectDetails,\n ISProjectSetup,\n ISProjectUI,\n ISStoreEnum,\n} from '@ess/integrated-search/shared/utils';\nimport { SharedCrudActionEnum } from '@ess/shared/utils/enums';\nimport { SharedActiveEntitiesStore, SharedSortDirection } from '@ess/shared/utils/models';\n\nimport { IntegratedSearchProjectsDataAccessActions as ProjectsActions } from './integrated-search-projects-data-access.actions';\n\ninterface StoreProps {\n fetchedForClients: string[];\n loading: boolean;\n errors: Map;\n actionLoading: SharedCrudActionEnum | null;\n currentClientSlug: string | null;\n sort: SharedSortDirection;\n activeProjectDetails: ISProjectDetails | null;\n loadingDetails: boolean;\n detailsError: string | null;\n}\n\ntype Store = SharedActiveEntitiesStore;\n\n@Injectable()\nexport class IntegratedSearchProjectsDataAccessRepository {\n get activeProject$(): Observable {\n return this.__store.pipe(selectActiveEntity());\n }\n\n get projects$(): Observable {\n return this.__store.pipe(\n selectAllEntities(),\n shareReplay({ refCount: true }),\n combineLatestWith(this.__clientsFacade.activeClient$),\n map(([projects, client]) =>\n projects\n .filter((p) => p.client_slug === client?.slug)\n .map((p) => ({\n ...p,\n client: client,\n })),\n ),\n combineLatestWith(this.sort$),\n map(([projects, sort]) =>\n projects.sort((a, b) => a.project_name.localeCompare(b.project_name) * (sort === 'asc' ? 1 : -1)),\n ),\n );\n }\n\n get error$(): Observable {\n return this.__store.pipe(\n select((state) => state.errors),\n combineLatestWith(this.__clientsFacade.activeClient$),\n map(([errors, client]) => errors.get(client?.slug ?? '') ?? null),\n );\n }\n\n get allProjects$(): Observable {\n return this.__store.pipe(\n selectAllEntities(),\n shareReplay({ refCount: true }),\n map((projects) => projects.sort((a, b) => a.project_name.localeCompare(b.project_name))),\n );\n }\n\n get allProjects(): ISProject[] {\n return this.__store.query(getAllEntities());\n }\n\n get loadingForClient$(): Observable {\n return this.__store.pipe(select((state) => state.currentClientSlug));\n }\n\n get loading$(): Observable {\n return this.__store.pipe(select((state) => state.loading));\n }\n\n get isActionLoading$(): Observable {\n return this.__store.pipe(select((state) => state.actionLoading !== null));\n }\n\n get actionLoading$(): Observable {\n return this.__store.pipe(select((state) => state.actionLoading));\n }\n\n get fetchedForClients$(): Observable {\n return this.__store.pipe(select((state) => state.fetchedForClients));\n }\n\n get sort$(): Observable {\n return this.__store.pipe(select((state) => state.sort));\n }\n\n get activeProjectDetails$(): Observable {\n return this.__store.pipe(select((state) => state.activeProjectDetails));\n }\n\n get loadingDetails$(): Observable {\n return this.__store.pipe(select((state) => state.loadingDetails));\n }\n\n get detailsError$(): Observable {\n return this.__store.pipe(select((state) => state.detailsError));\n }\n\n get activeProjectConfigurationInvalid$(): Observable {\n return this.__store.pipe(\n select((state) => (state.loadingDetails ? null : state.activeProjectDetails)),\n map(this.__isProjectConfigurationInvalid.bind(this)),\n );\n }\n\n get activeCurrencyCode$(): Observable {\n return this.__store.pipe(\n select((state) => (state.loadingDetails ? null : state.activeProjectDetails)),\n map(this.__getCurrencyCode.bind(this)),\n );\n }\n\n get activeProject(): number {\n return this.__store.getValue().activeId;\n }\n\n get activeProjectEntity(): ISProject | undefined {\n return this.__store.query(getActiveEntity());\n }\n\n get activeCurrencyCode(): string | null | undefined {\n return this.__getCurrencyCode(this.activeProjectEntity);\n }\n\n private get __currentClientSlug(): string | null {\n return this.__store.getValue().currentClientSlug;\n }\n\n private get __fetchedForClients(): string[] {\n return this.__store.getValue().fetchedForClients;\n }\n\n private get __errors(): Map {\n return new Map(this.__store.getValue().errors);\n }\n\n private readonly __store: Store;\n\n constructor(\n private readonly __actions: Actions,\n private readonly __clientsFacade: IntegratedSearchClientsDataAccessClientsFacade,\n ) {\n this.__store = this.__createStore();\n }\n\n setActiveProject(id: number | null, clientSlug?: string): number | undefined {\n let activeProject: number | undefined;\n if (id && clientSlug && this.__store.getValue().entities[id]?.client_slug === clientSlug) {\n activeProject = id;\n }\n this.__store.update(activeProject ? setActiveId(activeProject) : resetActiveId());\n this.__actions.dispatch(ProjectsActions.setActiveProjectSuccess({ projectId: activeProject ?? null }));\n return activeProject;\n }\n\n shouldBeFetched(slug: string | null): boolean {\n const errors: string[] = Array.from(this.__errors.keys());\n\n return !!slug && !this.__fetchedForClients.filter((client) => !errors.includes(client)).includes(slug);\n }\n\n setProjectsLoading(slug: string): void {\n const errors: Map = this.__errors;\n errors.delete(slug);\n this.__store.update(setProps({ loading: true, currentClientSlug: slug, errors }));\n }\n\n saveProjects(projects: ISProject[]): void {\n const projectsEntities: ISProject[] = projects.map(this.__parseProjectData.bind(this));\n\n this.__store.update(\n deleteEntitiesByPredicate((item) => item.client_slug === this.__currentClientSlug),\n addEntities(projectsEntities),\n setProps({\n loading: false,\n currentClientSlug: null,\n fetched: true,\n fetchedForClients: this.__getFetchedForClients(),\n }),\n );\n }\n\n handleLoadProjectsFail(): void {\n const errors: Map = this.__errors;\n errors.set(\n this.__currentClientSlug!,\n 'There was an error while fetching the projects for the current client. Please try again later.',\n );\n this.__store.update(\n deleteEntitiesByPredicate((item) => item.client_slug === this.__currentClientSlug),\n setProps({\n loading: false,\n currentClientSlug: null,\n fetchedForClients: this.__getFetchedForClients(),\n errors,\n }),\n );\n }\n\n toggleSort(): void {\n this.__store.update((state) => ({ ...state, sort: state.sort === 'asc' ? 'desc' : 'asc' }));\n }\n\n setActionLoading(action: SharedCrudActionEnum | null): void {\n this.__store.update(setProps({ actionLoading: action }));\n }\n\n handleProjectCreatedSuccess(project: ISProjectDetails, onSuccess?: (project: ISProjectDetails) => void): void {\n this.__store.update(addEntities(this.__parseProjectData(project)));\n if (onSuccess) {\n onSuccess(this.__uppercaseCodes(project));\n }\n }\n\n handleActionError(onError?: () => void): void {\n if (onError) {\n onError();\n }\n this.setActionLoading(null);\n }\n\n handleProjectUpdatedSuccess(project: ISProjectDetails, onSuccess?: () => void): void {\n this.__store.update(updateEntities(project.project_id, this.__parseProjectData(project)));\n\n this.updateActiveProjectDetails(project);\n if (onSuccess) {\n onSuccess();\n }\n }\n\n handleProjectDeletedSuccess(projectId: number, onSuccess?: () => void): void {\n this.__store.update(deleteEntities(projectId));\n if (onSuccess) {\n onSuccess();\n }\n }\n\n setDetailsLoading(): void {\n this.__store.update(\n setProps({\n loadingDetails: true,\n detailsError: null,\n }),\n );\n }\n\n updateActiveProjectDetails(details: ISProjectDetails | null, error = false): void {\n this.__store.update(\n setProps({\n activeProjectDetails: details ? this.__uppercaseCodes(details) : null,\n detailsError: error\n ? 'There was an error while fetching the details of current project. Please refresh the page or try again later.'\n : null,\n loadingDetails: false,\n }),\n );\n }\n\n private __createStore(): Store {\n return createStore(\n { name: ISStoreEnum.PROJECTS },\n withProps({\n fetchedForClients: [],\n loading: true,\n errors: new Map(),\n actionLoading: null,\n currentClientSlug: null,\n sort: 'asc',\n activeProjectDetails: null,\n loadingDetails: false,\n detailsError: null,\n }),\n withEntities({ idKey: 'project_id' }),\n withActiveId(),\n );\n }\n\n private __getFetchedForClients(): string[] {\n const slug = this.__currentClientSlug;\n const fetched = new Set(this.__store.getValue().fetchedForClients);\n if (slug) {\n fetched.add(slug);\n }\n return Array.from(fetched);\n }\n\n private __parseProjectData({\n project_id,\n project_name,\n client_slug,\n default_country,\n currency_codes,\n }: ISProjectSetup | ISProject): ISProject {\n return {\n project_id,\n project_name,\n client_slug,\n ...this.__uppercaseCodes({ currency_codes, default_country }),\n };\n }\n\n private __uppercaseCodes>(data: T): T {\n return {\n ...data,\n currency_codes: data.currency_codes.map((c) => c.toUpperCase()),\n default_country: data.default_country.toUpperCase(),\n };\n }\n\n private __isProjectConfigurationInvalid(project: ISProjectDetails | null): boolean {\n if (!project) {\n return false;\n }\n const currencyInvalid = !this.__getCurrencyCode(project);\n const gscInvalid: boolean =\n project.google_search_console_accounts.some(\n (account) => account.status && account.status !== ISAccountStatusEnum.VALID,\n ) || project.google_search_console_accounts.length === 0;\n const gadsInvalid: boolean =\n project.google_ads_accounts.some((account) => account.status && account.status !== ISAccountStatusEnum.VALID) ||\n project.google_ads_accounts.length === 0;\n return currencyInvalid || gscInvalid || gadsInvalid;\n }\n\n private __getCurrencyCode(project?: ISProject | null): string | null | undefined {\n return !project\n ? undefined\n : project.currency_codes.length === 0\n ? ''\n : project.currency_codes.length === 1 && project.currency_codes[0].length === 3\n ? project.currency_codes[0]\n : null;\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { Actions } from '@ngneat/effects-ng';\nimport { Observable } from 'rxjs';\n\nimport { ISProject, ISProjectDataRequest, ISProjectDetails, ISProjectUI } from '@ess/integrated-search/shared/utils';\nimport { SharedCrudActionEnum } from '@ess/shared/utils/enums';\nimport { SharedSortDirection } from '@ess/shared/utils/models';\n\nimport { IntegratedSearchProjectsDataAccessActions as ProjectsActions } from './integrated-search-projects-data-access.actions';\nimport { IntegratedSearchProjectsDataAccessRepository } from './integrated-search-projects-data-access.repository';\n\n@Injectable()\nexport class IntegratedSearchProjectsDataAccessFacade {\n readonly projects$: Observable = this.__repo.projects$;\n readonly error$: Observable = this.__repo.error$;\n readonly activeProject$: Observable = this.__repo.activeProject$;\n readonly loading$: Observable = this.__repo.loading$;\n readonly isActionLoading$: Observable = this.__repo.isActionLoading$;\n readonly actionLoading$: Observable = this.__repo.actionLoading$;\n readonly fetchedForClients$: Observable = this.__repo.fetchedForClients$;\n readonly sort$: Observable = this.__repo.sort$;\n readonly allProjects$: Observable = this.__repo.allProjects$;\n readonly loadingForClient$: Observable = this.__repo.loadingForClient$;\n readonly activeCurrencyCode$: Observable = this.__repo.activeCurrencyCode$;\n readonly activeProjectDetails$: Observable = this.__repo.activeProjectDetails$;\n readonly activeProjectDetailsLoading$: Observable = this.__repo.loadingDetails$;\n readonly activeProjectDetailsError$: Observable = this.__repo.detailsError$;\n readonly activeProjectConfigurationInvalid$: Observable = this.__repo.activeProjectConfigurationInvalid$;\n\n get activeProject(): number {\n return this.__repo.activeProject;\n }\n\n get activeProjectEntity(): ISProject | undefined {\n return this.__repo.activeProjectEntity;\n }\n\n get activeCurrencyCode(): string | null | undefined {\n return this.__repo.activeCurrencyCode;\n }\n\n constructor(\n private readonly __repo: IntegratedSearchProjectsDataAccessRepository,\n private readonly __actions: Actions,\n ) {}\n\n findProject(id: number): ISProject | null {\n return this.__repo.allProjects.find((p) => p.project_id === id) ?? null;\n }\n\n setActiveProject(id: number | null, clientSlug?: string): number | undefined {\n return this.__repo.setActiveProject(id, clientSlug);\n }\n\n loadProjectsForClient(slug: string): void {\n this.__actions.dispatch(ProjectsActions.loadProjects({ slug }));\n }\n\n toggleSort(): void {\n this.__actions.dispatch(ProjectsActions.toggleSort());\n }\n\n createProject(\n payload: ISProjectDataRequest,\n onSuccess?: (project: ISProjectDetails) => void,\n onError?: () => void,\n ): void {\n this.__actions.dispatch(ProjectsActions.createProject({ payload, onSuccess, onError }));\n }\n\n updateProject(projectId: number, payload: ISProjectDataRequest, onSuccess?: () => void, onError?: () => void): void {\n this.__actions.dispatch(ProjectsActions.updateProject({ projectId, payload, onSuccess, onError }));\n }\n\n deleteProject(projectId: number, onSuccess?: () => void, onError?: () => void): void {\n this.__actions.dispatch(ProjectsActions.deleteProject({ projectId, onSuccess, onError }));\n }\n}\n", "import { actionsFactory, props } from '@ngneat/effects';\n\nimport { ISStoreEnum } from '@ess/integrated-search/shared/utils';\n\n/* eslint-disable @typescript-eslint/member-ordering */\nexport class IntegratedSearchProjectsDataAccessCategoriesActions {\n private static readonly __factory = actionsFactory(ISStoreEnum.PROJECTS_CATEGORIES);\n\n static readonly loadCategories = this.__factory.create(\n 'Fetch categories list for a project',\n props<{ projectId: number | null }>(),\n );\n\n static readonly refreshCategories = this.__factory.create('Refresh categories list for the current project');\n\n static readonly sendCategoriesRequest = this.__factory.create(\n 'Send request to fetch categories list for a project',\n props<{ projectId: number; refresh?: boolean }>(),\n );\n\n static readonly projectNotFound = this.__factory.create('Project not found');\n}\n", "import { Injectable } from '@angular/core';\nimport { createStore, select, setProps, withProps } from '@ngneat/elf';\nimport { deleteAllEntities, getAllEntities, selectAllEntities, setEntities, withEntities } from '@ngneat/elf-entities';\nimport { UntilDestroy } from '@ngneat/until-destroy';\nimport { Observable, shareReplay } from 'rxjs';\n\nimport { ISCategoryDetails, ISStoreEnum } from '@ess/integrated-search/shared/utils';\nimport { SharedEntitiesStore } from '@ess/shared/utils/models';\n\ninterface StoreProps {\n loading: boolean;\n refreshing: boolean;\n error: string | null;\n currentProjectId: number | null;\n}\n\ntype Store = SharedEntitiesStore;\n\n@UntilDestroy()\n@Injectable()\nexport class IntegratedSearchProjectsDataAccessCategoriesRepository {\n readonly categories$: Observable;\n readonly loading$: Observable;\n readonly refreshing$: Observable;\n readonly error$: Observable;\n\n get currentProjectId(): number | null {\n return this.__store.getValue().currentProjectId;\n }\n\n get categories(): ISCategoryDetails[] {\n return this.__store.query(getAllEntities());\n }\n\n private readonly __store: Store;\n\n constructor() {\n this.__store = this.createStore();\n this.categories$ = this.__store.pipe(selectAllEntities(), shareReplay({ refCount: true, bufferSize: 1 }));\n this.loading$ = this.__store.pipe(select((state) => state.loading));\n this.refreshing$ = this.__store.pipe(select((state) => state.refreshing));\n this.error$ = this.__store.pipe(select((state) => state.error));\n }\n\n setLoading(refreshing?: boolean): void {\n this.__store.update(\n setProps({\n loading: !refreshing,\n refreshing,\n error: null,\n }),\n );\n }\n\n resetStore(): void {\n this.__store.reset();\n }\n\n saveCategories(currentProjectId: number, categories: ISCategoryDetails[]): void {\n this.__store.update(\n setEntities(categories),\n setProps({\n loading: false,\n refreshing: false,\n currentProjectId,\n }),\n );\n }\n\n handleLoadCategoriesFail(): void {\n this.__store.update(\n deleteAllEntities(),\n setProps({\n loading: false,\n refreshing: false,\n error:\n 'Something went wrong during loading categories for this project. Please refresh the page or try again later.',\n currentProjectId: null,\n }),\n );\n }\n\n updateCategories(categories: ISCategoryDetails[]): void {\n this.__store.update(setEntities(categories));\n }\n\n private createStore(): Store {\n return createStore(\n { name: ISStoreEnum.PROJECTS_CATEGORIES },\n withProps({\n loading: false,\n refreshing: false,\n error: null,\n currentProjectId: null,\n }),\n withEntities({ idKey: 'category_id' }),\n );\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { Actions } from '@ngneat/effects-ng';\nimport { map, Observable, withLatestFrom } from 'rxjs';\n\nimport { ISCategoryDetails } from '@ess/integrated-search/shared/utils';\n\nimport { IntegratedSearchProjectsDataAccessCategoriesActions as CategoriesActions } from './integrated-search-projects-data-access-categories.actions';\nimport { IntegratedSearchProjectsDataAccessCategoriesRepository } from './integrated-search-projects-data-access-categories.repository';\n\n@Injectable()\nexport class IntegratedSearchProjectsDataAccessCategoriesFacade {\n readonly categories$: Observable = this.__repo.categories$;\n readonly loading$: Observable = this.__repo.loading$;\n readonly refreshing$: Observable = this.__repo.refreshing$;\n readonly error$: Observable = this.__repo.error$;\n readonly nullableCategories$: Observable = this.__repo.categories$.pipe(\n withLatestFrom(this.__repo.error$),\n map(([categories, error]) => (error === null ? categories : null)),\n );\n\n get categories(): ISCategoryDetails[] {\n return this.__repo.categories;\n }\n\n constructor(\n private readonly __repo: IntegratedSearchProjectsDataAccessCategoriesRepository,\n private readonly __actions: Actions,\n ) {}\n\n refreshCategories(): void {\n this.__actions.dispatch(CategoriesActions.refreshCategories());\n }\n\n updateCategories(categories: ISCategoryDetails[]): void {\n this.__repo.updateCategories(categories);\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nimport {\n ISCategoriesForProject,\n ISProjectDataRequest,\n ISProjectDetails,\n ISProjectsList,\n} from '@ess/integrated-search/shared/utils';\nimport { SharedDataAccessApiService } from '@ess/shared/data-access';\n\n@Injectable()\nexport class IntegratedSearchProjectsDataAccessService {\n private readonly __parentResource = 'clients';\n private readonly __resource = 'projects';\n\n constructor(private readonly __api: SharedDataAccessApiService) {}\n\n getProjectDetails(projectId: number): Observable {\n return this.__api.get(`${this.__resource}/${projectId}`);\n }\n\n getProjectsForClient(slug: string): Observable {\n return this.__api.get(`${this.__parentResource}/${slug}/${this.__resource}`);\n }\n\n createProject(payload: ISProjectDataRequest): Observable {\n return this.__api.post(this.__resource, payload);\n }\n\n updateProject(projectId: number, payload: ISProjectDataRequest): Observable {\n return this.__api.put(`${this.__resource}/${projectId}`, payload);\n }\n\n deleteProject(projectId: number): Observable {\n return this.__api.delete(`${this.__resource}/${projectId}`, null);\n }\n\n getCategoriesForProject(projectId: number): Observable {\n return this.__api.get(`${this.__resource}/${projectId}/categories`);\n }\n}\n", "import { Injectable } from '@angular/core';\nimport { createEffect, ofType, tapResult } from '@ngneat/effects';\nimport { filter, map, switchMap, tap } from 'rxjs';\n\nimport { IntegratedSearchClientsDataAccessClientsActions as ClientsActions } from '@ess/integrated-search/clients/data-access';\nimport { ISProjectDetails, ISProjectsList } from '@ess/integrated-search/shared/utils';\nimport { SharedCrudActionEnum } from '@ess/shared/utils/enums';\n\nimport { IntegratedSearchProjectsDataAccessActions as ProjectsActions } from './integrated-search-projects-data-access.actions';\nimport { IntegratedSearchProjectsDataAccessRepository } from './integrated-search-projects-data-access.repository';\n\nimport { IntegratedSearchProjectsDataAccessService } from '../services';\n\n@Injectable()\nexport class IntegratedSearchProjectsDataAccessEffects {\n loadProjects$ = createEffect((actions) =>\n actions.pipe(\n ofType(ProjectsActions.loadProjects, ClientsActions.setActiveClientSuccess),\n filter(({ slug }) => this.__repo.shouldBeFetched(slug)),\n tap(({ slug }) => this.__repo.setProjectsLoading(slug!)),\n switchMap(({ slug }) =>\n this.__projectsService.getProjectsForClient(slug!).pipe(\n tapResult(\n (projectsList: ISProjectsList) => this.__repo.saveProjects(projectsList.items),\n () => this.__repo.handleLoadProjectsFail(),\n ),\n ),\n ),\n ),\n );\n\n toggleSort$ = createEffect((actions) =>\n actions.pipe(\n ofType(ProjectsActions.toggleSort),\n map(() => this.__repo.toggleSort()),\n ),\n );\n\n createProject$ = createEffect((actions) =>\n actions.pipe(\n ofType(ProjectsActions.createProject),\n tap(() => this.__repo.setActionLoading(SharedCrudActionEnum.CREATE)),\n switchMap(({ payload, onSuccess, onError }) =>\n this.__projectsService.createProject(payload).pipe(\n tapResult(\n (project: ISProjectDetails) => this.__repo.handleProjectCreatedSuccess(project, onSuccess),\n () => this.__repo.handleActionError(onError),\n () => this.__repo.setActionLoading(null),\n ),\n ),\n ),\n ),\n );\n\n updateProject$ = createEffect((actions) =>\n actions.pipe(\n ofType(ProjectsActions.updateProject),\n tap(() => this.__repo.setActionLoading(SharedCrudActionEnum.UPDATE)),\n switchMap(({ projectId, payload, onSuccess, onError }) =>\n this.__projectsService.updateProject(projectId, payload).pipe(\n tapResult(\n (project: ISProjectDetails) => this.__repo.handleProjectUpdatedSuccess(project, onSuccess),\n () => this.__repo.handleActionError(onError),\n () => this.__repo.setActionLoading(null),\n ),\n ),\n ),\n ),\n );\n\n deleteProject$ = createEffect((actions) =>\n actions.pipe(\n ofType(ProjectsActions.deleteProject),\n tap(() => this.__repo.setActionLoading(SharedCrudActionEnum.DELETE)),\n switchMap(({ projectId, onSuccess, onError }) =>\n this.__projectsService.deleteProject(projectId).pipe(\n tapResult(\n () => this.__repo.handleProjectDeletedSuccess(projectId, onSuccess),\n () => this.__repo.handleActionError(onError),\n () => this.__repo.setActionLoading(null),\n ),\n ),\n ),\n ),\n );\n\n loadActiveProjectDetails$ = createEffect((actions) =>\n actions.pipe(\n ofType(ProjectsActions.loadActiveProjectDetails, ProjectsActions.setActiveProjectSuccess),\n filter(({ projectId }) => {\n !projectId && this.__repo.updateActiveProjectDetails(null);\n return !!projectId;\n }),\n tap(() => this.__repo.setDetailsLoading()),\n switchMap(({ projectId }) =>\n this.__projectsService.getProjectDetails(projectId!).pipe(\n tapResult(\n (details: ISProjectDetails) => this.__repo.updateActiveProjectDetails(details),\n () => this.__repo.updateActiveProjectDetails(null, true),\n ),\n ),\n ),\n ),\n );\n\n constructor(\n private readonly __projectsService: IntegratedSearchProjectsDataAccessService,\n private readonly __repo: IntegratedSearchProjectsDataAccessRepository,\n ) {}\n}\n", "import { Injectable } from '@angular/core';\nimport { createEffect, ofType, tapResult } from '@ngneat/effects';\nimport { map, switchMap, tap } from 'rxjs';\n\nimport { ISCategoriesForProject } from '@ess/integrated-search/shared/utils';\n\nimport { IntegratedSearchProjectsDataAccessCategoriesActions as CategoriesActions } from './integrated-search-projects-data-access-categories.actions';\nimport { IntegratedSearchProjectsDataAccessCategoriesRepository } from './integrated-search-projects-data-access-categories.repository';\n\nimport { IntegratedSearchProjectsDataAccessService } from '../services';\nimport { IntegratedSearchProjectsDataAccessActions as ProjectsActions } from '../state';\n\n@Injectable()\nexport class IntegratedSearchProjectsDataAccessCategoriesEffects {\n loadCategories$ = createEffect(\n (actions) =>\n actions.pipe(\n ofType(CategoriesActions.loadCategories, ProjectsActions.setActiveProjectSuccess),\n map(({ projectId }) =>\n projectId ? CategoriesActions.sendCategoriesRequest({ projectId }) : CategoriesActions.projectNotFound(),\n ),\n ),\n { dispatch: true },\n );\n\n refreshCategories$ = createEffect(\n ($) =>\n $.pipe(\n ofType(CategoriesActions.refreshCategories),\n map(() => this.__repo.currentProjectId),\n map((projectId) =>\n projectId\n ? CategoriesActions.sendCategoriesRequest({\n projectId,\n refresh: true,\n })\n : CategoriesActions.projectNotFound(),\n ),\n ),\n { dispatch: true },\n );\n\n sendCategoriesRequest$ = createEffect(($) =>\n $.pipe(\n ofType(CategoriesActions.sendCategoriesRequest),\n tap(({ refresh }) => this.__repo.setLoading(refresh)),\n switchMap(({ projectId }) =>\n this.__projectsService.getCategoriesForProject(projectId!).pipe(\n tapResult(\n (categoriesList: ISCategoriesForProject) =>\n this.__repo.saveCategories(\n projectId!,\n categoriesList.items.filter((category) => category.active),\n ),\n () => this.__repo.handleLoadCategoriesFail(),\n ),\n ),\n ),\n ),\n );\n\n projectNotFound$ = createEffect(($) =>\n $.pipe(\n ofType(CategoriesActions.projectNotFound),\n tap(() => this.__repo.resetStore()),\n ),\n );\n\n constructor(\n private readonly __projectsService: IntegratedSearchProjectsDataAccessService,\n private readonly __repo: IntegratedSearchProjectsDataAccessCategoriesRepository,\n ) {}\n}\n", "import { NgModule } from '@angular/core';\nimport { provideEffects } from '@ngneat/effects-ng';\n\nimport {\n IntegratedSearchProjectsDataAccessCategoriesEffects,\n IntegratedSearchProjectsDataAccessCategoriesFacade,\n IntegratedSearchProjectsDataAccessCategoriesRepository,\n} from './categories-state';\nimport { IntegratedSearchProjectsDataAccessService } from './services';\nimport {\n IntegratedSearchProjectsDataAccessEffects,\n IntegratedSearchProjectsDataAccessFacade,\n IntegratedSearchProjectsDataAccessRepository,\n} from './state';\n\n@NgModule({\n providers: [\n // Projects state\n IntegratedSearchProjectsDataAccessRepository,\n provideEffects(IntegratedSearchProjectsDataAccessEffects),\n IntegratedSearchProjectsDataAccessFacade,\n IntegratedSearchProjectsDataAccessService,\n // Categories state\n IntegratedSearchProjectsDataAccessCategoriesRepository,\n provideEffects(IntegratedSearchProjectsDataAccessCategoriesEffects),\n IntegratedSearchProjectsDataAccessCategoriesFacade,\n ],\n})\nexport class IntegratedSearchProjectsDataAccessModule {}\n"], "mappings": "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", "names": ["IntegratedSearchProjectsDataAccessActions", "_IntegratedSearchProjectsDataAccessActions", "__factory", "actionsFactory", "ISStoreEnum", "PROJECTS", "loadProjects", "create", "props", "setActiveProjectSuccess", "toggleSort", "createProject", "updateProject", "deleteProject", "loadActiveProjectDetails", "IntegratedSearchProjectsDataAccessRepository", "activeProject$", "__store", "pipe", "selectActiveEntity", "projects$", "selectAllEntities", "shareReplay", "refCount", "combineLatestWith", "__clientsFacade", "activeClient$", "map", "projects", "client", "filter", "p", "client_slug", "slug", "__spreadProps", "__spreadValues", "sort$", "sort", "a", "b", "project_name", "localeCompare", "error$", "select", "state", "errors", "get", "allProjects$", "allProjects", "query", "getAllEntities", "loadingForClient$", "currentClientSlug", "loading$", "loading", "isActionLoading$", "actionLoading", "actionLoading$", "fetchedForClients$", "fetchedForClients", "activeProjectDetails$", "activeProjectDetails", "loadingDetails$", "loadingDetails", "detailsError$", "detailsError", "activeProjectConfigurationInvalid$", "__isProjectConfigurationInvalid", "bind", "activeCurrencyCode$", "__getCurrencyCode", "activeProject", "getValue", "activeId", "activeProjectEntity", "getActiveEntity", "activeCurrencyCode", "__currentClientSlug", "__fetchedForClients", "__errors", "Map", "constructor", "__actions", "__createStore", "setActiveProject", "id", "clientSlug", "entities", "update", "setActiveId", "resetActiveId", "dispatch", "ProjectsActions", "setActiveProjectSuccess", "projectId", "shouldBeFetched", "Array", "from", "keys", "includes", "setProjectsLoading", "delete", "setProps", "saveProjects", "projectsEntities", "__parseProjectData", "deleteEntitiesByPredicate", "item", "addEntities", "fetched", "__getFetchedForClients", "handleLoadProjectsFail", "set", "toggleSort", "setActionLoading", "action", "handleProjectCreatedSuccess", "project", "onSuccess", "__uppercaseCodes", "handleActionError", "onError", "handleProjectUpdatedSuccess", "updateEntities", "project_id", "updateActiveProjectDetails", "handleProjectDeletedSuccess", "deleteEntities", "setDetailsLoading", "details", "error", "createStore", "name", "ISStoreEnum", "PROJECTS", "withProps", "withEntities", "idKey", "withActiveId", "Set", "add", "default_country", "currency_codes", "data", "c", "toUpperCase", "currencyInvalid", "gscInvalid", "google_search_console_accounts", "some", "account", "status", "ISAccountStatusEnum", "VALID", "length", "gadsInvalid", "google_ads_accounts", "undefined", "\u0275\u0275inject", "Actions", "IntegratedSearchClientsDataAccessClientsFacade", "factory", "\u0275fac", "_IntegratedSearchProjectsDataAccessRepository", "IntegratedSearchProjectsDataAccessFacade", "activeProject", "__repo", "activeProjectEntity", "activeCurrencyCode", "constructor", "__actions", "projects$", "error$", "activeProject$", "loading$", "isActionLoading$", "actionLoading$", "fetchedForClients$", "sort$", "allProjects$", "loadingForClient$", "activeCurrencyCode$", "activeProjectDetails$", "activeProjectDetailsLoading$", "loadingDetails$", "activeProjectDetailsError$", "detailsError$", "activeProjectConfigurationInvalid$", "findProject", "id", "allProjects", "find", "p", "project_id", "setActiveProject", "clientSlug", "loadProjectsForClient", "slug", "dispatch", "ProjectsActions", "loadProjects", "toggleSort", "createProject", "payload", "onSuccess", "onError", "updateProject", "projectId", "deleteProject", "\u0275\u0275inject", "IntegratedSearchProjectsDataAccessRepository", "Actions", "factory", "\u0275fac", "_IntegratedSearchProjectsDataAccessFacade", "IntegratedSearchProjectsDataAccessCategoriesActions", "_IntegratedSearchProjectsDataAccessCategoriesActions", "__factory", "actionsFactory", "ISStoreEnum", "PROJECTS_CATEGORIES", "loadCategories", "create", "props", "refreshCategories", "sendCategoriesRequest", "projectNotFound", "IntegratedSearchProjectsDataAccessCategoriesRepository", "_a", "currentProjectId", "__store", "getValue", "categories", "query", "getAllEntities", "constructor", "createStore", "categories$", "pipe", "selectAllEntities", "shareReplay", "refCount", "bufferSize", "loading$", "select", "state", "loading", "refreshing$", "refreshing", "error$", "error", "setLoading", "update", "setProps", "resetStore", "reset", "saveCategories", "setEntities", "handleLoadCategoriesFail", "deleteAllEntities", "updateCategories", "name", "ISStoreEnum", "PROJECTS_CATEGORIES", "withProps", "withEntities", "idKey", "factory", "\u0275fac", "__decorate", "UntilDestroy", "__metadata", "IntegratedSearchProjectsDataAccessCategoriesFacade", "categories", "__repo", "constructor", "__actions", "categories$", "loading$", "refreshing$", "error$", "nullableCategories$", "pipe", "withLatestFrom", "map", "error", "refreshCategories", "dispatch", "CategoriesActions", "updateCategories", "\u0275\u0275inject", "IntegratedSearchProjectsDataAccessCategoriesRepository", "Actions", "factory", "\u0275fac", "_IntegratedSearchProjectsDataAccessCategoriesFacade", "IntegratedSearchProjectsDataAccessService", "constructor", "__api", "__parentResource", "__resource", "getProjectDetails", "projectId", "get", "getProjectsForClient", "slug", "createProject", "payload", "post", "updateProject", "put", "deleteProject", "delete", "getCategoriesForProject", "\u0275\u0275inject", "SharedDataAccessApiService", "factory", "\u0275fac", "_IntegratedSearchProjectsDataAccessService", "IntegratedSearchProjectsDataAccessEffects", "constructor", "__projectsService", "__repo", "loadProjects$", "createEffect", "actions", "pipe", "ofType", "ProjectsActions", "loadProjects", "ClientsActions", "setActiveClientSuccess", "filter", "slug", "shouldBeFetched", "tap", "setProjectsLoading", "switchMap", "getProjectsForClient", "tapResult", "projectsList", "saveProjects", "items", "handleLoadProjectsFail", "toggleSort$", "toggleSort", "map", "createProject$", "createProject", "setActionLoading", "SharedCrudActionEnum", "CREATE", "payload", "onSuccess", "onError", "project", "handleProjectCreatedSuccess", "handleActionError", "updateProject$", "updateProject", "UPDATE", "projectId", "handleProjectUpdatedSuccess", "deleteProject$", "deleteProject", "DELETE", "handleProjectDeletedSuccess", "loadActiveProjectDetails$", "loadActiveProjectDetails", "setActiveProjectSuccess", "updateActiveProjectDetails", "setDetailsLoading", "getProjectDetails", "details", "\u0275\u0275inject", "IntegratedSearchProjectsDataAccessService", "IntegratedSearchProjectsDataAccessRepository", "factory", "\u0275fac", "_IntegratedSearchProjectsDataAccessEffects", "IntegratedSearchProjectsDataAccessCategoriesEffects", "constructor", "__projectsService", "__repo", "loadCategories$", "createEffect", "actions", "pipe", "ofType", "CategoriesActions", "loadCategories", "ProjectsActions", "setActiveProjectSuccess", "map", "projectId", "sendCategoriesRequest", "projectNotFound", "dispatch", "refreshCategories$", "$", "refreshCategories", "currentProjectId", "refresh", "sendCategoriesRequest$", "tap", "setLoading", "switchMap", "getCategoriesForProject", "tapResult", "categoriesList", "saveCategories", "items", "filter", "category", "active", "handleLoadCategoriesFail", "projectNotFound$", "resetStore", "\u0275\u0275inject", "IntegratedSearchProjectsDataAccessService", "IntegratedSearchProjectsDataAccessCategoriesRepository", "factory", "\u0275fac", "_IntegratedSearchProjectsDataAccessCategoriesEffects", "IntegratedSearchProjectsDataAccessModule", "IntegratedSearchProjectsDataAccessRepository", "provideEffects", "IntegratedSearchProjectsDataAccessEffects", "IntegratedSearchProjectsDataAccessFacade", "IntegratedSearchProjectsDataAccessService", "IntegratedSearchProjectsDataAccessCategoriesRepository", "IntegratedSearchProjectsDataAccessCategoriesEffects", "IntegratedSearchProjectsDataAccessCategoriesFacade", "_IntegratedSearchProjectsDataAccessModule"] }