@sneat/extension-contactus 0.14.13 → 0.14.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,24 +1,21 @@
1
1
  import { defaultFamilyContactGroupDTOs, defaultFamilyContactGroups, validateContactRequest, validateUpdateContactRequest, validateCreateSpaceMemberRequest, CONTACT_SERVICE, CONTACTUS_SPACE_SERVICE, CONTACT_NAV_SERVICE, CONTACTUS_NAV_SERVICE, CONTACT_GROUP_SERVICE, CONTACT_ROLE_SERVICE, INVITE_SERVICE } from '@sneat/extension-contactus-contract';
2
2
  import * as i0 from '@angular/core';
3
3
  import { inject, Injector, Injectable, NgModule } from '@angular/core';
4
- import { Firestore } from 'firebase/firestore';
5
4
  import { SneatApiService } from '@sneat/api';
6
5
  import { ModuleSpaceItemService, SpaceNavService, SpaceModuleService } from '@sneat/space-services';
7
6
  import { of, throwError, tap, map, Subject, takeUntil, from, switchMap } from 'rxjs';
8
- import { ErrorLogger, excludeUndefined, SNEAT_FIREBASE_AUTH, excludeEmpty } from '@sneat/core';
7
+ import { ErrorLogger, excludeUndefined, excludeEmpty } from '@sneat/core';
9
8
  import { SneatUserService, SneatAuthStateService } from '@sneat/auth-core';
10
9
  import { trimNames } from '@sneat/auth-models';
11
- import { createUserWithEmailAndPassword } from 'firebase/auth';
12
10
  import { RandomIdService } from '@sneat/random';
13
11
  import { map as map$1 } from 'rxjs/operators';
14
12
 
15
13
  class ContactGroupService {
16
14
  spaceItemService;
17
15
  constructor() {
18
- const afs = inject(Firestore);
19
16
  const sneatApiService = inject(SneatApiService);
20
17
  const injector = inject(Injector);
21
- this.spaceItemService = new ModuleSpaceItemService(injector, 'contactus', 'contact_groups', afs, sneatApiService);
18
+ this.spaceItemService = new ModuleSpaceItemService(injector, 'contactus', 'contact_groups', sneatApiService);
22
19
  }
23
20
  getContactGroups() {
24
21
  return of(defaultFamilyContactGroupDTOs);
@@ -63,9 +60,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
63
60
 
64
61
  class ContactusSpaceService extends SpaceModuleService {
65
62
  constructor() {
66
- const afs = inject(Firestore);
67
63
  const injector = inject(Injector);
68
- super(injector, 'contactus', afs);
64
+ super(injector, 'contactus');
69
65
  }
70
66
  watchContactBriefs = (spaceID) => {
71
67
  // console.log(`ContactusSpaceService.watchContactBriefs(${spaceID})`);
@@ -82,10 +78,9 @@ class ContactService extends ModuleSpaceItemService {
82
78
  contactusSpaceService = inject(ContactusSpaceService);
83
79
  userService = inject(SneatUserService);
84
80
  constructor() {
85
- const afs = inject(Firestore);
86
81
  const sneatApiService = inject(SneatApiService);
87
82
  const injector = inject(Injector);
88
- super(injector, 'contactus', 'contacts', afs, sneatApiService);
83
+ super(injector, 'contactus', 'contacts', sneatApiService);
89
84
  // this.briefService = new TeamItemService<{id: string}, IContactsBrief>('briefs', afs, sneatApiService);
90
85
  }
91
86
  createContact(spaceRef, request, endpoint = 'contactus/create_contact') {
@@ -364,7 +359,6 @@ class InviteService {
364
359
  errorLogger = inject(ErrorLogger);
365
360
  sneatAuthService = inject(SneatAuthStateService);
366
361
  sneatApiService = inject(SneatApiService);
367
- afAuth = inject(SNEAT_FIREBASE_AUTH);
368
362
  randomService = inject(RandomIdService);
369
363
  createInviteForMember(request) {
370
364
  return this.sneatApiService.post('invites/create_invite_for_member', excludeEmpty(request));
@@ -415,16 +409,8 @@ class InviteService {
415
409
  return throwError(() => 'No value in inviteInfo.invite.to.address');
416
410
  }
417
411
  const password = this.randomService.newRandomId({ len: 12 });
418
- const credentialPromise = createUserWithEmailAndPassword(this.afAuth, email, password);
419
- const credentialObserver = from(credentialPromise);
420
- return credentialObserver.pipe(switchMap((userCredential) => {
421
- if (!userCredential.user) {
422
- throw new Error('!userCredential.user');
423
- }
424
- // We call it to be 100% sure user fully authenticated
425
- return from(userCredential.user.getIdToken());
426
- }), switchMap((firebaseToken) => {
427
- this.sneatApiService.setApiAuthToken(firebaseToken);
412
+ return from(this.sneatAuthService.createUserWithEmailAndPassword(email, password)).pipe(switchMap(({ token }) => {
413
+ this.sneatApiService.setApiAuthToken(token);
428
414
  return this.acceptInviteByAuthenticatedUser(inviteInfo);
429
415
  }));
430
416
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sneat-extension-contactus.mjs","sources":["../../../../../../libs/extensions/contactus/runtime/src/lib/services/contact-group-service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contact-nav-service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contactus-space.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contact-service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contactus-space-context.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contact-role.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/member.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contactus-services.module.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/member-group.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/invite.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contactus-nav.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/provide-contactus.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/members-routing.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/contactus-routing.module.ts","../../../../../../libs/extensions/contactus/runtime/src/sneat-extension-contactus.ts"],"sourcesContent":["import { Injectable, Injector, inject } from '@angular/core';\nimport { Firestore as AngularFirestore } from 'firebase/firestore';\nimport { SneatApiService } from '@sneat/api';\nimport { IIdAndDbo, ISpaceRef } from '@sneat/core';\nimport {\n defaultFamilyContactGroupDTOs,\n defaultFamilyContactGroups,\n IContactGroupBrief,\n IContactGroupDbo,\n} from '@sneat/extension-contactus-contract';\nimport { ModuleSpaceItemService } from '@sneat/space-services';\nimport { Observable, of } from 'rxjs';\n\n\n@Injectable()\nexport class ContactGroupService {\n private readonly spaceItemService: ModuleSpaceItemService<\n IContactGroupBrief,\n IContactGroupDbo\n >;\n\n constructor() {\n const afs = inject(AngularFirestore);\n const sneatApiService = inject(SneatApiService);\n const injector = inject(Injector);\n\n this.spaceItemService = new ModuleSpaceItemService(\n injector,\n 'contactus',\n 'contact_groups',\n afs,\n sneatApiService,\n );\n }\n\n getContactGroups(): Observable<readonly IIdAndDbo<IContactGroupDbo>[]> {\n return of(defaultFamilyContactGroupDTOs);\n }\n\n getContactGroupByID(\n id: string,\n space: ISpaceRef,\n ): Observable<IIdAndDbo<IContactGroupDbo>> {\n const cg = defaultFamilyContactGroups.find((cg) => cg.id === id);\n if (!cg) {\n return of({ id, space, dbo: { title: id } });\n }\n return of(cg);\n }\n\n watchMemberGroupsBySpace(\n space: ISpaceRef,\n status: 'active' | 'archived' = 'active',\n ): Observable<IIdAndDbo<IContactGroupDbo>[]> {\n // console.log('watchMemberGroupsByTeamID()', spaceID);\n return this.spaceItemService.watchModuleSpaceItemsWithSpaceRef(space, {\n filter: [{ field: 'status', operator: '==', value: status }],\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { excludeUndefined } from '@sneat/core';\nimport { ContactRole } from '@sneat/extension-contactus-contract';\nimport { ErrorLogger, IErrorLogger } from '@sneat/core';\nimport { ISpaceContext } from '@sneat/space-models';\nimport { SpaceNavService } from '@sneat/space-services';\n\nexport interface INewContactPageParams {\n group?: string;\n role?: ContactRole;\n asset?: string;\n document?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ContactNavService {\n private readonly errorLogger = inject<IErrorLogger>(ErrorLogger);\n private readonly spaceNavService = inject(SpaceNavService);\n\n goNewContactPage(space: ISpaceContext, params?: INewContactPageParams): void {\n this.spaceNavService\n .navigateForwardToSpacePage(space, 'new-contact', {\n queryParams: excludeUndefined(params),\n })\n .catch(\n this.errorLogger.logErrorHandler(\n 'failed to navigate to \"new-contact\" page',\n ),\n );\n }\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { Firestore as AngularFirestore } from 'firebase/firestore';\nimport { IContactBrief, IContactusSpaceDbo } from '@sneat/extension-contactus-contract';\nimport { SpaceModuleService } from '@sneat/space-services';\n\n@Injectable()\nexport class ContactusSpaceService extends SpaceModuleService<IContactusSpaceDbo> {\n public constructor() {\n const afs = inject(AngularFirestore);\n const injector = inject(Injector);\n super(injector, 'contactus', afs);\n }\n\n public readonly watchContactBriefs = (spaceID: string) => {\n // console.log(`ContactusSpaceService.watchContactBriefs(${spaceID})`);\n return this.watchBriefs<IContactBrief>(\n spaceID,\n (dto) => dto?.contacts || {},\n );\n };\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { Firestore as AngularFirestore } from 'firebase/firestore';\nimport { IFilter, SneatApiService } from '@sneat/api';\nimport { SneatUserService } from '@sneat/auth-core';\nimport { IIdAndBriefAndOptionalDbo, ISpaceRef } from '@sneat/core';\nimport {\n IContactBrief,\n IContactDbo,\n IContactContext,\n ICreateContactRequest,\n IContactWithDboAndSpace,\n IChangeMemberRoleRequest,\n IContactsFilter,\n IAddContactCommChannelRequest,\n IContactCommChannelRequest,\n IContactRequest,\n IContactRequestWithOptionalMessage,\n ISetContactsStatusRequest,\n IUpdateContactCommChannelRequest,\n IUpdateContactRequest,\n validateContactRequest,\n validateUpdateContactRequest,\n} from '@sneat/extension-contactus-contract';\nimport {\n ISpaceContext,\n ISpaceItemWithOptionalBriefAndOptionalDbo,\n} from '@sneat/space-models';\nimport { ModuleSpaceItemService } from '@sneat/space-services';\nimport { ContactusSpaceService } from './contactus-space.service';\nimport { map, Observable, tap, throwError } from 'rxjs';\n\n@Injectable()\nexport class ContactService extends ModuleSpaceItemService<\n IContactBrief,\n IContactDbo\n> {\n protected contactusSpaceService = inject(ContactusSpaceService);\n private readonly userService = inject(SneatUserService);\n\n constructor() {\n const afs = inject(AngularFirestore);\n const sneatApiService = inject(SneatApiService);\n const injector = inject(Injector);\n super(injector, 'contactus', 'contacts', afs, sneatApiService);\n // this.briefService = new TeamItemService<{id: string}, IContactsBrief>('briefs', afs, sneatApiService);\n }\n\n public createContact(\n spaceRef: ISpaceRef,\n request: ICreateContactRequest,\n endpoint = 'contactus/create_contact',\n ): Observable<IContactWithDboAndSpace> {\n return this.createSpaceItem(endpoint, spaceRef, request);\n }\n\n public deleteContact(request: IContactRequest): Observable<void> {\n validateContactRequest(request);\n return this.deleteSpaceItem('contactus/delete_contact', request);\n }\n\n public updateContact(request: IUpdateContactRequest): Observable<void> {\n validateUpdateContactRequest(request);\n return this.sneatApiService.post('contactus/update_contact', request);\n }\n\n public addContactCommChannel(\n request: IAddContactCommChannelRequest,\n ): Observable<void> {\n return this.sneatApiService.post(\n 'contactus/add_contact_comm_channel',\n request,\n );\n }\n\n public updateContactCommChannel(\n request: IUpdateContactCommChannelRequest,\n ): Observable<void> {\n return this.sneatApiService.post(\n 'contactus/update_contact_comm_channel',\n request,\n );\n }\n\n public deleteContactCommChannel(\n request: IContactCommChannelRequest,\n ): Observable<void> {\n return this.sneatApiService.post(\n 'contactus/delete_contact_comm_channel',\n request,\n );\n }\n\n public setContactsStatus(\n request: ISetContactsStatusRequest,\n ): Observable<void> {\n if (!request.contactIDs?.length) {\n return throwError(() => 'at least 1 contact is required');\n }\n return this.sneatApiService.post('contactus/set_contacts_status', request);\n }\n\n watchContactsWithRole(\n space: ISpaceContext,\n role: string,\n status: 'active' | 'archived' = 'active',\n filter?: readonly IFilter[],\n ): Observable<IIdAndBriefAndOptionalDbo<IContactBrief, IContactDbo>[]> {\n filter = [\n ...(filter || []),\n { field: 'roles', operator: '==', value: role },\n ];\n return this.watchSpaceContacts(space, status, filter);\n }\n\n public watchSpaceContacts(\n space: ISpaceContext,\n status: 'active' | 'archived' = 'active',\n filter?: readonly IFilter[],\n ): Observable<IIdAndBriefAndOptionalDbo<IContactBrief, IContactDbo>[]> {\n filter = [\n {\n field: 'status',\n value: status,\n operator: '==',\n },\n {\n field: 'parentContactID',\n operator: '==',\n value: '',\n },\n ...(filter || []),\n ];\n return this.watchModuleSpaceItemsWithSpaceRef<IContactDbo>(space, {\n filter,\n });\n }\n\n watchContactById(\n space: ISpaceContext,\n contactID: string,\n ): Observable<\n ISpaceItemWithOptionalBriefAndOptionalDbo<IContactBrief, IContactDbo>\n > {\n return this.watchSpaceItemByIdWithSpaceRef(space, contactID).pipe(\n tap((contact) => console.log('contact loaded:', contactID, contact)),\n );\n }\n\n watchContactsByRole(\n space: ISpaceContext,\n filter?: IContactsFilter,\n ): Observable<IContactContext[]> {\n const f: IFilter[] = [\n // { field: 'spaceID', value: team.id, operator: '==' },\n ];\n if (filter?.status) {\n f.push({ field: 'status', value: filter.status, operator: '==' });\n }\n if (filter?.role) {\n f.push({\n field: 'roles',\n operator: 'array-contains',\n value: filter.role,\n });\n }\n return this.watchModuleSpaceItemsWithSpaceRef(space, { filter: f });\n }\n\n watchChildContacts(\n space: ISpaceContext,\n id: string,\n filter: IContactsFilter = { status: 'active' },\n ): Observable<IContactContext[]> {\n const f: IFilter[] = [\n { field: 'parentContactID', value: id, operator: '==' },\n ];\n if (filter.status) {\n f.push({ field: 'status', value: filter.status, operator: '==' });\n }\n if (filter.role) {\n f.push({\n field: 'roles',\n operator: 'array-contains',\n value: filter.role,\n });\n }\n return this.watchModuleSpaceItemsWithSpaceRef(space, { filter: f });\n }\n\n public changeContactRole(\n request: IChangeMemberRoleRequest,\n ): Observable<void> {\n return this.sneatApiService\n .post(`contactus/change_member_role`, request)\n .pipe(\n map(() => {\n return;\n }),\n );\n }\n\n public removeSpaceMember(\n request: IContactRequestWithOptionalMessage,\n ): Observable<ISpaceContext> {\n console.log(\n `removeSpaceMember(spaceID=${request.spaceID}, contactID=${request.contactID})`,\n );\n try {\n validateContactRequest(request);\n } catch (ex) {\n return throwError(() => ex);\n }\n\n // `contactus/remove_space_member` is the route the backend actually\n // registers (api4contactus/routes.go). This used to post to\n // `contactus/remove_team_member`, which is registered nowhere, so every\n // member removal from the browser 404'd -- including the \"Leave team\"\n // button. See issue #89.\n return this.sneatApiService.post('contactus/remove_space_member', request);\n }\n}\n","import { inject } from '@angular/core';\nimport { SneatUserService } from '@sneat/auth-core';\nimport { IContactusSpaceDboAndID } from '@sneat/extension-contactus-contract';\nimport { ContactusSpaceService } from './contactus-space.service';\nimport { ErrorLogger } from '@sneat/core';\nimport { ISpaceDbo } from '@sneat/dto';\nimport { Observable, Subject, Subscription, takeUntil } from 'rxjs';\n\n// TODO: ContactusSpaceContextService can be abstracted and reused by other entities\nexport class ContactusSpaceContextService {\n // Is used to emit contactus space record changes\n private readonly contactusSpaceContext = new Subject<\n IContactusSpaceDboAndID | undefined\n >();\n\n public readonly contactusSpaceContext$ =\n this.contactusSpaceContext.asObservable();\n\n private spaceID?: string;\n private isRootSpaceLoaded = false;\n private spaceModuleRecordSub?: Subscription;\n\n private readonly errorLogger = inject(ErrorLogger);\n private readonly userService = inject(SneatUserService);\n private readonly contactusSpaceService = inject(ContactusSpaceService);\n\n constructor(\n private readonly destroyed$: Observable<void>,\n private readonly spaceID$: Observable<string | undefined>,\n private readonly spaceDbo$: Observable<ISpaceDbo | undefined | null>,\n ) {\n destroyed$.subscribe({\n next: () => {\n this.contactusSpaceContext.complete();\n },\n });\n spaceID$.pipe(takeUntil(destroyed$)).subscribe({\n next: (spaceID) => {\n this.spaceModuleRecordSub?.unsubscribe();\n this.spaceModuleRecordSub = undefined;\n this.contactusSpaceContext.next(undefined);\n this.spaceID = spaceID;\n this.isRootSpaceLoaded = false;\n },\n });\n spaceDbo$.pipe(takeUntil(destroyed$)).subscribe({\n next: (spaceDbo) => {\n this.isRootSpaceLoaded = !!spaceDbo;\n if (spaceDbo && this.userService.currentUserID) {\n this.subscribeForContactusSpaceChanges(this.spaceID);\n } else {\n this.spaceModuleRecordSub?.unsubscribe();\n this.spaceModuleRecordSub = undefined;\n this.contactusSpaceContext.next(undefined);\n }\n },\n });\n this.userService.userChanged.pipe(takeUntil(destroyed$)).subscribe({\n next: (uid) => {\n if (uid && this.isRootSpaceLoaded) {\n this.subscribeForContactusSpaceChanges(this.spaceID);\n } else {\n this.spaceModuleRecordSub?.unsubscribe();\n this.spaceModuleRecordSub = undefined;\n this.contactusSpaceContext.next(undefined);\n }\n },\n });\n }\n\n private readonly subscribeForContactusSpaceChanges = (\n spaceID?: string,\n ): void => {\n this.spaceModuleRecordSub?.unsubscribe();\n if (!spaceID) {\n return;\n }\n this.spaceModuleRecordSub = this.contactusSpaceService\n .watchSpaceModuleRecord(spaceID)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: this.onContactusSpaceChanged,\n error: this.errorLogger.logErrorHandler(\n 'ContactusSpaceContextService: failed to get contactus space record',\n ),\n });\n };\n\n private readonly onContactusSpaceChanged = (\n contactusSpace: IContactusSpaceDboAndID,\n ): void => {\n console.log(\n 'ContactusSpaceContextService.onContactusSpaceChanged()',\n contactusSpace,\n );\n this.contactusSpaceContext.next(contactusSpace);\n };\n}\n","import { Injectable } from '@angular/core';\nimport { IIdAndBrief } from '@sneat/core';\nimport {\n defaultFamilyContactGroups,\n IContactRoleBrief,\n} from '@sneat/extension-contactus-contract';\nimport { Observable, of } from 'rxjs';\n\n@Injectable()\nexport class ContactRoleService {\n getContactRoleByID(id: string): Observable<IIdAndBrief<IContactRoleBrief>> {\n for (const cg of defaultFamilyContactGroups) {\n for (let j = 0; j < (cg?.dbo?.roles?.length || 0); j++) {\n const role = cg.dbo?.roles && cg.dbo.roles[j];\n if (role?.id === id) {\n return of({ id, brief: role.brief });\n }\n }\n }\n return of({ id, brief: { title: id } });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { trimNames } from '@sneat/auth-models';\nimport {\n IMemberBrief,\n IAcceptPersonalInviteRequest,\n IAddSpaceMemberResponse,\n ICreateSpaceMemberRequest,\n validateCreateSpaceMemberRequest,\n} from '@sneat/extension-contactus-contract';\nimport { ContactService } from './contact-service';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class MemberService extends ContactService {\n public acceptPersonalInvite(\n request: IAcceptPersonalInviteRequest,\n firebaseToken: string,\n ): Observable<IMemberBrief> {\n // console.log('MemberService.acceptPersonalInvite()');\n if (firebaseToken) {\n this.sneatApiService.setApiAuthToken(firebaseToken);\n }\n return this.sneatApiService.post('invites/accept_personal_invite', request);\n }\n\n public createMember(\n request: ICreateSpaceMemberRequest,\n ): Observable<IAddSpaceMemberResponse> {\n // console.log(`MemberService.addMember()`, request);\n if (request.names) {\n request = { ...request, names: trimNames(request.names) };\n }\n validateCreateSpaceMemberRequest(request);\n return this.sneatApiService.post<IAddSpaceMemberResponse>(\n 'contactus/create_member',\n request,\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ContactGroupService } from './contact-group-service';\nimport { ContactNavService } from './contact-nav-service';\nimport { ContactRoleService } from './contact-role.service';\nimport { ContactService } from './contact-service';\nimport { ContactusSpaceService } from './contactus-space.service';\nimport { MemberService } from './member.service';\n\n@NgModule({\n imports: [],\n providers: [\n ContactService,\n ContactNavService,\n ContactGroupService,\n ContactRoleService,\n ContactusSpaceService,\n MemberService,\n ],\n})\nexport class ContactusServicesModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MemberGroupService {\n // TODO: Move to ContactGroupService or delete\n}\n","import { Injectable, inject } from '@angular/core';\nimport { createUserWithEmailAndPassword } from 'firebase/auth';\nimport { SneatApiService } from '@sneat/api';\nimport { SneatAuthStateService } from '@sneat/auth-core';\nimport {\n IAcceptPersonalInviteRequest,\n ICreatePersonalInviteRequest,\n ICreatePersonalInviteResponse,\n IJoinSpaceInfoResponse,\n} from '@sneat/extension-contactus-contract';\nimport { excludeEmpty } from '@sneat/core';\nimport { ErrorLogger, IErrorLogger, SNEAT_FIREBASE_AUTH } from '@sneat/core';\nimport { RandomIdService } from '@sneat/random';\nimport {\n IAcceptInviteResponse,\n IRejectPersonalInviteRequest,\n} from '@sneat/space-models';\nimport { from, Observable, switchMap, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class InviteService {\n private readonly errorLogger = inject<IErrorLogger>(ErrorLogger);\n private readonly sneatAuthService = inject(SneatAuthStateService);\n private readonly sneatApiService = inject(SneatApiService);\n private readonly afAuth = inject(SNEAT_FIREBASE_AUTH);\n private readonly randomService = inject(RandomIdService);\n\n public createInviteForMember(\n request: ICreatePersonalInviteRequest,\n ): Observable<ICreatePersonalInviteResponse> {\n return this.sneatApiService.post<ICreatePersonalInviteResponse>(\n 'invites/create_invite_for_member',\n excludeEmpty(request),\n );\n }\n\n public getInviteLinkForMember(\n request: ICreatePersonalInviteRequest,\n ): Observable<ICreatePersonalInviteResponse> {\n // TODO: Should we pass `request.message`? If not should be excluded from request\n return this.sneatApiService.get<ICreatePersonalInviteResponse>(\n `invites/invite_link_for_member?space=${request.spaceID}&member=${request.to.memberID}`,\n );\n }\n\n public getSpaceJoinInfo(\n inviteID: string,\n pin: string,\n ): Observable<IJoinSpaceInfoResponse> {\n return this.sneatApiService\n .postAsAnonymous<IJoinSpaceInfoResponse>('space/join_info', {\n inviteID,\n pin,\n })\n .pipe(\n map((response) => ({\n ...response,\n invite: {\n ...response.invite,\n id: inviteID,\n pin,\n },\n })),\n );\n }\n\n public rejectPersonalInvite(\n request: IRejectPersonalInviteRequest,\n ): Observable<void> {\n return this.sneatApiService.post('invites/reject_personal_invite', request);\n }\n\n public acceptInviteByAuthenticatedUser(\n inviteInfo: IJoinSpaceInfoResponse,\n ): Observable<IAcceptInviteResponse> {\n const request: IAcceptPersonalInviteRequest = {\n spaceID: inviteInfo.space.id,\n inviteID: inviteInfo.invite.id,\n pin: inviteInfo.invite.pin,\n member: inviteInfo.member,\n // email: this.email,\n // fullName: this.fullName,\n };\n return this.sneatApiService.post('invites/accept_personal_invite', request);\n }\n\n public acceptInviteByUnauthenticatedUser(\n inviteInfo: IJoinSpaceInfoResponse,\n ): Observable<IAcceptInviteResponse> {\n if (\n inviteInfo.invite.to.channel === 'email' &&\n inviteInfo.invite.to.address\n ) {\n return this.acceptEmailInviteByUnauthenticatedUser(inviteInfo);\n }\n return throwError(\n () => 'Only join from an email invites is implemented yet',\n );\n }\n\n private acceptEmailInviteByUnauthenticatedUser(\n inviteInfo: IJoinSpaceInfoResponse,\n ): Observable<IAcceptInviteResponse> {\n const email = inviteInfo.invite.to.address;\n if (!email) {\n return throwError(() => 'No value in inviteInfo.invite.to.address');\n }\n const password = this.randomService.newRandomId({ len: 12 });\n const credentialPromise = createUserWithEmailAndPassword(\n this.afAuth,\n email,\n password,\n );\n const credentialObserver = from(credentialPromise);\n return credentialObserver.pipe(\n switchMap((userCredential) => {\n if (!userCredential.user) {\n throw new Error('!userCredential.user');\n }\n // We call it to be 100% sure user fully authenticated\n return from(userCredential.user.getIdToken());\n }),\n switchMap((firebaseToken) => {\n this.sneatApiService.setApiAuthToken(firebaseToken);\n return this.acceptInviteByAuthenticatedUser(inviteInfo);\n }),\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { IContactContext } from '@sneat/extension-contactus-contract';\nimport { ISpaceContext } from '@sneat/space-models';\nimport { SpaceNavService } from '@sneat/space-services';\n\n@Injectable()\nexport class ContactusNavService {\n private readonly spaceNavService = inject(SpaceNavService);\n\n public navigateToAddMember = (space: ISpaceContext): Promise<boolean> =>\n this.spaceNavService.navigateForwardToSpacePage(space, 'add-member');\n\n public navigateToMember(memberContext: IContactContext): void {\n console.log(\n `navigateToMember(team.id=${memberContext?.space?.id}, memberInfo.id=${memberContext?.id})`,\n );\n // const id = `${memberContext?.space?.id}:${memberContext?.id}`;\n // const { space } = memberContext;\n // if (!space) {\n // \tthis.errorLogger.logError(\n // \t\t'not able to navigate to member without team context',\n // \t);\n // \treturn;\n // }\n // this.spaceNavService.navigateForwardToSpacePage(\n // \tspace,\n // \t`member/${memberContext.id}`,\n // \t{\n // \t\tstate: {\n // \t\t\tcontact: memberContext,\n // \t\t},\n // \t},\n // );\n }\n}\n","import { Provider } from '@angular/core';\nimport {\n CONTACT_GROUP_SERVICE,\n CONTACT_NAV_SERVICE,\n CONTACT_ROLE_SERVICE,\n CONTACT_SERVICE,\n CONTACTUS_NAV_SERVICE,\n CONTACTUS_SPACE_SERVICE,\n INVITE_SERVICE,\n} from '@sneat/extension-contactus-contract';\nimport {\n ContactGroupService,\n ContactNavService,\n ContactRoleService,\n ContactService,\n ContactusNavService,\n ContactusSpaceService,\n InviteService,\n MemberGroupService,\n MemberService,\n} from './services';\n\n/**\n * Provides the concrete contactus services and binds them to the\n * contract injection tokens. Consumed at app bootstrap; other\n * extensions must NOT import this.\n */\nexport function provideContactus(): Provider[] {\n // NOTE: ContactusSpaceContextService is intentionally NOT provided here — it\n // is manually instantiated (its constructor takes plain Observables: the\n // destroyed$ and spaceID$ streams), so it has no Angular DI factory and\n // registering it as a provider throws NG0204. Consumers `new` it directly.\n return [\n ContactService,\n ContactNavService,\n ContactGroupService,\n ContactRoleService,\n ContactusSpaceService,\n ContactusNavService,\n MemberService,\n MemberGroupService,\n InviteService,\n { provide: CONTACT_SERVICE, useExisting: ContactService },\n { provide: CONTACTUS_SPACE_SERVICE, useExisting: ContactusSpaceService },\n { provide: CONTACT_NAV_SERVICE, useExisting: ContactNavService },\n { provide: CONTACTUS_NAV_SERVICE, useExisting: ContactusNavService },\n { provide: CONTACT_GROUP_SERVICE, useExisting: ContactGroupService },\n { provide: CONTACT_ROLE_SERVICE, useExisting: ContactRoleService },\n { provide: INVITE_SERVICE, useExisting: InviteService },\n ];\n}\n","import { Route } from '@angular/router';\n\nexport const membersRoutes: Route[] = [\n {\n path: 'members',\n data: { title: 'Members' },\n loadComponent: () =>\n import('./pages/members/members-page.component').then(\n (m) => m.MembersPageComponent,\n ),\n // ...guardRoute,\n },\n {\n path: 'new-member',\n data: { title: 'New member' },\n loadComponent: () =>\n import('./pages/new-member').then((m) => m.NewMemberPageComponent),\n // ...guardRoute,\n },\n {\n path: 'member/:contactID',\n data: { title: 'Member' },\n loadComponent: () =>\n import('./pages/member/space-member-page.component').then(\n (m) => m.SpaceMemberPageComponent,\n ),\n },\n\n // {\n // \tpath: 'pupils',\n // \tloadChildren: () => import('./pupils/pupils.module')\n // \t\t.then(m => m.PupilsPageModule),\n // \t// ...guardRoute,\n // },\n // {\n // \tpath: 'staff',\n // \tloadChildren: () => import('./staff/staff.module')\n // \t\t.then(m => m.StaffPageModule),\n // \t// ...guardRoute,\n // },\n];\n","import { Route } from '@angular/router';\nimport { membersRoutes } from './members';\n\n// import {guardRoute} from '../../utils/guard-route';\n\nexport const contactusRoutes: Route[] = [\n {\n path: 'contacts',\n data: { title: 'Contacts' },\n loadComponent: () =>\n import('./pages/contacts/contacts-page.component').then(\n (m) => m.ContactsPageComponent,\n ),\n // ...guardRoute,\n },\n {\n path: 'new-contact',\n data: { title: 'New Contact' },\n loadComponent: () =>\n import('./pages').then((m) => m.NewContactPageComponent),\n // ...guardRoute,\n },\n {\n path: 'contact/:contactID',\n data: { title: 'Contact' },\n loadComponent: () => import('./pages').then((m) => m.ContactPageComponent),\n // ...guardRoute,\n },\n {\n path: 'contact/:contactID/new-location',\n data: { title: 'New location' },\n loadComponent: () =>\n import('./pages').then((m) => m.NewLocationPageComponent),\n // ...guardRoute,\n },\n ...membersRoutes,\n // {\n // \tpath: 'applicants',\n // \tloadChildren: () => import('./pages/contacts/contacts-page.module')\n // \t\t.then(m => m.ContactsPageModule),\n // \t// ...guardRoute,\n // },\n // {\n // \tpath: 'tenants',\n // \tloadChildren: () => import('./pages/contacts/contacts-page.module')\n // \t\t.then(m => m.ContactsPageModule),\n // \t// ...guardRoute,\n // },\n // {\n // \tpath: 'landlords',\n // \tloadChildren: () => import('./pages/contacts/contacts-page.module')\n // \t\t.then(m => m.ContactsPageModule),\n // \t// ...guardRoute,\n // },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["AngularFirestore","map"],"mappings":"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"}
1
+ {"version":3,"file":"sneat-extension-contactus.mjs","sources":["../../../../../../libs/extensions/contactus/runtime/src/lib/services/contact-group-service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contact-nav-service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contactus-space.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contact-service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contactus-space-context.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contact-role.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/member.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contactus-services.module.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/member-group.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/invite.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/services/contactus-nav.service.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/provide-contactus.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/members-routing.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/contactus-routing.module.ts","../../../../../../libs/extensions/contactus/runtime/src/sneat-extension-contactus.ts"],"sourcesContent":["import { Injectable, Injector, inject } from '@angular/core';\nimport { SneatApiService } from '@sneat/api';\nimport { IIdAndDbo, ISpaceRef } from '@sneat/core';\nimport {\n defaultFamilyContactGroupDTOs,\n defaultFamilyContactGroups,\n IContactGroupBrief,\n IContactGroupDbo,\n} from '@sneat/extension-contactus-contract';\nimport { ModuleSpaceItemService } from '@sneat/space-services';\nimport { Observable, of } from 'rxjs';\n\n@Injectable()\nexport class ContactGroupService {\n private readonly spaceItemService: ModuleSpaceItemService<\n IContactGroupBrief,\n IContactGroupDbo\n >;\n\n constructor() {\n const sneatApiService = inject(SneatApiService);\n const injector = inject(Injector);\n\n this.spaceItemService = new ModuleSpaceItemService(\n injector,\n 'contactus',\n 'contact_groups',\n sneatApiService,\n );\n }\n\n getContactGroups(): Observable<readonly IIdAndDbo<IContactGroupDbo>[]> {\n return of(defaultFamilyContactGroupDTOs);\n }\n\n getContactGroupByID(\n id: string,\n space: ISpaceRef,\n ): Observable<IIdAndDbo<IContactGroupDbo>> {\n const cg = defaultFamilyContactGroups.find((cg) => cg.id === id);\n if (!cg) {\n return of({ id, space, dbo: { title: id } });\n }\n return of(cg);\n }\n\n watchMemberGroupsBySpace(\n space: ISpaceRef,\n status: 'active' | 'archived' = 'active',\n ): Observable<IIdAndDbo<IContactGroupDbo>[]> {\n // console.log('watchMemberGroupsByTeamID()', spaceID);\n return this.spaceItemService.watchModuleSpaceItemsWithSpaceRef(space, {\n filter: [{ field: 'status', operator: '==', value: status }],\n });\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { excludeUndefined } from '@sneat/core';\nimport { ContactRole } from '@sneat/extension-contactus-contract';\nimport { ErrorLogger, IErrorLogger } from '@sneat/core';\nimport { ISpaceContext } from '@sneat/space-models';\nimport { SpaceNavService } from '@sneat/space-services';\n\nexport interface INewContactPageParams {\n group?: string;\n role?: ContactRole;\n asset?: string;\n document?: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class ContactNavService {\n private readonly errorLogger = inject<IErrorLogger>(ErrorLogger);\n private readonly spaceNavService = inject(SpaceNavService);\n\n goNewContactPage(space: ISpaceContext, params?: INewContactPageParams): void {\n this.spaceNavService\n .navigateForwardToSpacePage(space, 'new-contact', {\n queryParams: excludeUndefined(params),\n })\n .catch(\n this.errorLogger.logErrorHandler(\n 'failed to navigate to \"new-contact\" page',\n ),\n );\n }\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport {\n IContactBrief,\n IContactusSpaceDbo,\n} from '@sneat/extension-contactus-contract';\nimport { SpaceModuleService } from '@sneat/space-services';\n\n@Injectable()\nexport class ContactusSpaceService extends SpaceModuleService<IContactusSpaceDbo> {\n public constructor() {\n const injector = inject(Injector);\n super(injector, 'contactus');\n }\n\n public readonly watchContactBriefs = (spaceID: string) => {\n // console.log(`ContactusSpaceService.watchContactBriefs(${spaceID})`);\n return this.watchBriefs<IContactBrief>(\n spaceID,\n (dto) => dto?.contacts || {},\n );\n };\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { IFilter, SneatApiService } from '@sneat/api';\nimport { SneatUserService } from '@sneat/auth-core';\nimport { IIdAndBriefAndOptionalDbo, ISpaceRef } from '@sneat/core';\nimport {\n IContactBrief,\n IContactDbo,\n IContactContext,\n ICreateContactRequest,\n IContactWithDboAndSpace,\n IChangeMemberRoleRequest,\n IContactsFilter,\n IAddContactCommChannelRequest,\n IContactCommChannelRequest,\n IContactRequest,\n IContactRequestWithOptionalMessage,\n ISetContactsStatusRequest,\n IUpdateContactCommChannelRequest,\n IUpdateContactRequest,\n validateContactRequest,\n validateUpdateContactRequest,\n} from '@sneat/extension-contactus-contract';\nimport {\n ISpaceContext,\n ISpaceItemWithOptionalBriefAndOptionalDbo,\n} from '@sneat/space-models';\nimport { ModuleSpaceItemService } from '@sneat/space-services';\nimport { ContactusSpaceService } from './contactus-space.service';\nimport { map, Observable, tap, throwError } from 'rxjs';\n\n@Injectable()\nexport class ContactService extends ModuleSpaceItemService<\n IContactBrief,\n IContactDbo\n> {\n protected contactusSpaceService = inject(ContactusSpaceService);\n private readonly userService = inject(SneatUserService);\n\n constructor() {\n const sneatApiService = inject(SneatApiService);\n const injector = inject(Injector);\n super(injector, 'contactus', 'contacts', sneatApiService);\n // this.briefService = new TeamItemService<{id: string}, IContactsBrief>('briefs', afs, sneatApiService);\n }\n\n public createContact(\n spaceRef: ISpaceRef,\n request: ICreateContactRequest,\n endpoint = 'contactus/create_contact',\n ): Observable<IContactWithDboAndSpace> {\n return this.createSpaceItem(endpoint, spaceRef, request);\n }\n\n public deleteContact(request: IContactRequest): Observable<void> {\n validateContactRequest(request);\n return this.deleteSpaceItem('contactus/delete_contact', request);\n }\n\n public updateContact(request: IUpdateContactRequest): Observable<void> {\n validateUpdateContactRequest(request);\n return this.sneatApiService.post('contactus/update_contact', request);\n }\n\n public addContactCommChannel(\n request: IAddContactCommChannelRequest,\n ): Observable<void> {\n return this.sneatApiService.post(\n 'contactus/add_contact_comm_channel',\n request,\n );\n }\n\n public updateContactCommChannel(\n request: IUpdateContactCommChannelRequest,\n ): Observable<void> {\n return this.sneatApiService.post(\n 'contactus/update_contact_comm_channel',\n request,\n );\n }\n\n public deleteContactCommChannel(\n request: IContactCommChannelRequest,\n ): Observable<void> {\n return this.sneatApiService.post(\n 'contactus/delete_contact_comm_channel',\n request,\n );\n }\n\n public setContactsStatus(\n request: ISetContactsStatusRequest,\n ): Observable<void> {\n if (!request.contactIDs?.length) {\n return throwError(() => 'at least 1 contact is required');\n }\n return this.sneatApiService.post('contactus/set_contacts_status', request);\n }\n\n watchContactsWithRole(\n space: ISpaceContext,\n role: string,\n status: 'active' | 'archived' = 'active',\n filter?: readonly IFilter[],\n ): Observable<IIdAndBriefAndOptionalDbo<IContactBrief, IContactDbo>[]> {\n filter = [\n ...(filter || []),\n { field: 'roles', operator: '==', value: role },\n ];\n return this.watchSpaceContacts(space, status, filter);\n }\n\n public watchSpaceContacts(\n space: ISpaceContext,\n status: 'active' | 'archived' = 'active',\n filter?: readonly IFilter[],\n ): Observable<IIdAndBriefAndOptionalDbo<IContactBrief, IContactDbo>[]> {\n filter = [\n {\n field: 'status',\n value: status,\n operator: '==',\n },\n {\n field: 'parentContactID',\n operator: '==',\n value: '',\n },\n ...(filter || []),\n ];\n return this.watchModuleSpaceItemsWithSpaceRef<IContactDbo>(space, {\n filter,\n });\n }\n\n watchContactById(\n space: ISpaceContext,\n contactID: string,\n ): Observable<\n ISpaceItemWithOptionalBriefAndOptionalDbo<IContactBrief, IContactDbo>\n > {\n return this.watchSpaceItemByIdWithSpaceRef(space, contactID).pipe(\n tap((contact) => console.log('contact loaded:', contactID, contact)),\n );\n }\n\n watchContactsByRole(\n space: ISpaceContext,\n filter?: IContactsFilter,\n ): Observable<IContactContext[]> {\n const f: IFilter[] = [\n // { field: 'spaceID', value: team.id, operator: '==' },\n ];\n if (filter?.status) {\n f.push({ field: 'status', value: filter.status, operator: '==' });\n }\n if (filter?.role) {\n f.push({\n field: 'roles',\n operator: 'array-contains',\n value: filter.role,\n });\n }\n return this.watchModuleSpaceItemsWithSpaceRef(space, { filter: f });\n }\n\n watchChildContacts(\n space: ISpaceContext,\n id: string,\n filter: IContactsFilter = { status: 'active' },\n ): Observable<IContactContext[]> {\n const f: IFilter[] = [\n { field: 'parentContactID', value: id, operator: '==' },\n ];\n if (filter.status) {\n f.push({ field: 'status', value: filter.status, operator: '==' });\n }\n if (filter.role) {\n f.push({\n field: 'roles',\n operator: 'array-contains',\n value: filter.role,\n });\n }\n return this.watchModuleSpaceItemsWithSpaceRef(space, { filter: f });\n }\n\n public changeContactRole(\n request: IChangeMemberRoleRequest,\n ): Observable<void> {\n return this.sneatApiService\n .post(`contactus/change_member_role`, request)\n .pipe(\n map(() => {\n return;\n }),\n );\n }\n\n public removeSpaceMember(\n request: IContactRequestWithOptionalMessage,\n ): Observable<ISpaceContext> {\n console.log(\n `removeSpaceMember(spaceID=${request.spaceID}, contactID=${request.contactID})`,\n );\n try {\n validateContactRequest(request);\n } catch (ex) {\n return throwError(() => ex);\n }\n\n // `contactus/remove_space_member` is the route the backend actually\n // registers (api4contactus/routes.go). This used to post to\n // `contactus/remove_team_member`, which is registered nowhere, so every\n // member removal from the browser 404'd -- including the \"Leave team\"\n // button. See issue #89.\n return this.sneatApiService.post('contactus/remove_space_member', request);\n }\n}\n","import { inject } from '@angular/core';\nimport { SneatUserService } from '@sneat/auth-core';\nimport { IContactusSpaceDboAndID } from '@sneat/extension-contactus-contract';\nimport { ContactusSpaceService } from './contactus-space.service';\nimport { ErrorLogger } from '@sneat/core';\nimport { ISpaceDbo } from '@sneat/dto';\nimport { Observable, Subject, Subscription, takeUntil } from 'rxjs';\n\n// TODO: ContactusSpaceContextService can be abstracted and reused by other entities\nexport class ContactusSpaceContextService {\n // Is used to emit contactus space record changes\n private readonly contactusSpaceContext = new Subject<\n IContactusSpaceDboAndID | undefined\n >();\n\n public readonly contactusSpaceContext$ =\n this.contactusSpaceContext.asObservable();\n\n private spaceID?: string;\n private isRootSpaceLoaded = false;\n private spaceModuleRecordSub?: Subscription;\n\n private readonly errorLogger = inject(ErrorLogger);\n private readonly userService = inject(SneatUserService);\n private readonly contactusSpaceService = inject(ContactusSpaceService);\n\n constructor(\n private readonly destroyed$: Observable<void>,\n private readonly spaceID$: Observable<string | undefined>,\n private readonly spaceDbo$: Observable<ISpaceDbo | undefined | null>,\n ) {\n destroyed$.subscribe({\n next: () => {\n this.contactusSpaceContext.complete();\n },\n });\n spaceID$.pipe(takeUntil(destroyed$)).subscribe({\n next: (spaceID) => {\n this.spaceModuleRecordSub?.unsubscribe();\n this.spaceModuleRecordSub = undefined;\n this.contactusSpaceContext.next(undefined);\n this.spaceID = spaceID;\n this.isRootSpaceLoaded = false;\n },\n });\n spaceDbo$.pipe(takeUntil(destroyed$)).subscribe({\n next: (spaceDbo) => {\n this.isRootSpaceLoaded = !!spaceDbo;\n if (spaceDbo && this.userService.currentUserID) {\n this.subscribeForContactusSpaceChanges(this.spaceID);\n } else {\n this.spaceModuleRecordSub?.unsubscribe();\n this.spaceModuleRecordSub = undefined;\n this.contactusSpaceContext.next(undefined);\n }\n },\n });\n this.userService.userChanged.pipe(takeUntil(destroyed$)).subscribe({\n next: (uid) => {\n if (uid && this.isRootSpaceLoaded) {\n this.subscribeForContactusSpaceChanges(this.spaceID);\n } else {\n this.spaceModuleRecordSub?.unsubscribe();\n this.spaceModuleRecordSub = undefined;\n this.contactusSpaceContext.next(undefined);\n }\n },\n });\n }\n\n private readonly subscribeForContactusSpaceChanges = (\n spaceID?: string,\n ): void => {\n this.spaceModuleRecordSub?.unsubscribe();\n if (!spaceID) {\n return;\n }\n this.spaceModuleRecordSub = this.contactusSpaceService\n .watchSpaceModuleRecord(spaceID)\n .pipe(takeUntil(this.destroyed$))\n .subscribe({\n next: this.onContactusSpaceChanged,\n error: this.errorLogger.logErrorHandler(\n 'ContactusSpaceContextService: failed to get contactus space record',\n ),\n });\n };\n\n private readonly onContactusSpaceChanged = (\n contactusSpace: IContactusSpaceDboAndID,\n ): void => {\n console.log(\n 'ContactusSpaceContextService.onContactusSpaceChanged()',\n contactusSpace,\n );\n this.contactusSpaceContext.next(contactusSpace);\n };\n}\n","import { Injectable } from '@angular/core';\nimport { IIdAndBrief } from '@sneat/core';\nimport {\n defaultFamilyContactGroups,\n IContactRoleBrief,\n} from '@sneat/extension-contactus-contract';\nimport { Observable, of } from 'rxjs';\n\n@Injectable()\nexport class ContactRoleService {\n getContactRoleByID(id: string): Observable<IIdAndBrief<IContactRoleBrief>> {\n for (const cg of defaultFamilyContactGroups) {\n for (let j = 0; j < (cg?.dbo?.roles?.length || 0); j++) {\n const role = cg.dbo?.roles && cg.dbo.roles[j];\n if (role?.id === id) {\n return of({ id, brief: role.brief });\n }\n }\n }\n return of({ id, brief: { title: id } });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { trimNames } from '@sneat/auth-models';\nimport {\n IMemberBrief,\n IAcceptPersonalInviteRequest,\n IAddSpaceMemberResponse,\n ICreateSpaceMemberRequest,\n validateCreateSpaceMemberRequest,\n} from '@sneat/extension-contactus-contract';\nimport { ContactService } from './contact-service';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class MemberService extends ContactService {\n public acceptPersonalInvite(\n request: IAcceptPersonalInviteRequest,\n firebaseToken: string,\n ): Observable<IMemberBrief> {\n // console.log('MemberService.acceptPersonalInvite()');\n if (firebaseToken) {\n this.sneatApiService.setApiAuthToken(firebaseToken);\n }\n return this.sneatApiService.post('invites/accept_personal_invite', request);\n }\n\n public createMember(\n request: ICreateSpaceMemberRequest,\n ): Observable<IAddSpaceMemberResponse> {\n // console.log(`MemberService.addMember()`, request);\n if (request.names) {\n request = { ...request, names: trimNames(request.names) };\n }\n validateCreateSpaceMemberRequest(request);\n return this.sneatApiService.post<IAddSpaceMemberResponse>(\n 'contactus/create_member',\n request,\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ContactGroupService } from './contact-group-service';\nimport { ContactNavService } from './contact-nav-service';\nimport { ContactRoleService } from './contact-role.service';\nimport { ContactService } from './contact-service';\nimport { ContactusSpaceService } from './contactus-space.service';\nimport { MemberService } from './member.service';\n\n@NgModule({\n imports: [],\n providers: [\n ContactService,\n ContactNavService,\n ContactGroupService,\n ContactRoleService,\n ContactusSpaceService,\n MemberService,\n ],\n})\nexport class ContactusServicesModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MemberGroupService {\n // TODO: Move to ContactGroupService or delete\n}\n","import { Injectable, inject } from '@angular/core';\nimport { SneatApiService } from '@sneat/api';\nimport { SneatAuthStateService } from '@sneat/auth-core';\nimport {\n IAcceptPersonalInviteRequest,\n ICreatePersonalInviteRequest,\n ICreatePersonalInviteResponse,\n IJoinSpaceInfoResponse,\n} from '@sneat/extension-contactus-contract';\nimport { excludeEmpty } from '@sneat/core';\nimport { ErrorLogger, IErrorLogger } from '@sneat/core';\nimport { RandomIdService } from '@sneat/random';\nimport {\n IAcceptInviteResponse,\n IRejectPersonalInviteRequest,\n} from '@sneat/space-models';\nimport { from, Observable, switchMap, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n@Injectable()\nexport class InviteService {\n private readonly errorLogger = inject<IErrorLogger>(ErrorLogger);\n private readonly sneatAuthService = inject(SneatAuthStateService);\n private readonly sneatApiService = inject(SneatApiService);\n private readonly randomService = inject(RandomIdService);\n\n public createInviteForMember(\n request: ICreatePersonalInviteRequest,\n ): Observable<ICreatePersonalInviteResponse> {\n return this.sneatApiService.post<ICreatePersonalInviteResponse>(\n 'invites/create_invite_for_member',\n excludeEmpty(request),\n );\n }\n\n public getInviteLinkForMember(\n request: ICreatePersonalInviteRequest,\n ): Observable<ICreatePersonalInviteResponse> {\n // TODO: Should we pass `request.message`? If not should be excluded from request\n return this.sneatApiService.get<ICreatePersonalInviteResponse>(\n `invites/invite_link_for_member?space=${request.spaceID}&member=${request.to.memberID}`,\n );\n }\n\n public getSpaceJoinInfo(\n inviteID: string,\n pin: string,\n ): Observable<IJoinSpaceInfoResponse> {\n return this.sneatApiService\n .postAsAnonymous<IJoinSpaceInfoResponse>('space/join_info', {\n inviteID,\n pin,\n })\n .pipe(\n map((response) => ({\n ...response,\n invite: {\n ...response.invite,\n id: inviteID,\n pin,\n },\n })),\n );\n }\n\n public rejectPersonalInvite(\n request: IRejectPersonalInviteRequest,\n ): Observable<void> {\n return this.sneatApiService.post('invites/reject_personal_invite', request);\n }\n\n public acceptInviteByAuthenticatedUser(\n inviteInfo: IJoinSpaceInfoResponse,\n ): Observable<IAcceptInviteResponse> {\n const request: IAcceptPersonalInviteRequest = {\n spaceID: inviteInfo.space.id,\n inviteID: inviteInfo.invite.id,\n pin: inviteInfo.invite.pin,\n member: inviteInfo.member,\n // email: this.email,\n // fullName: this.fullName,\n };\n return this.sneatApiService.post('invites/accept_personal_invite', request);\n }\n\n public acceptInviteByUnauthenticatedUser(\n inviteInfo: IJoinSpaceInfoResponse,\n ): Observable<IAcceptInviteResponse> {\n if (\n inviteInfo.invite.to.channel === 'email' &&\n inviteInfo.invite.to.address\n ) {\n return this.acceptEmailInviteByUnauthenticatedUser(inviteInfo);\n }\n return throwError(\n () => 'Only join from an email invites is implemented yet',\n );\n }\n\n private acceptEmailInviteByUnauthenticatedUser(\n inviteInfo: IJoinSpaceInfoResponse,\n ): Observable<IAcceptInviteResponse> {\n const email = inviteInfo.invite.to.address;\n if (!email) {\n return throwError(() => 'No value in inviteInfo.invite.to.address');\n }\n const password = this.randomService.newRandomId({ len: 12 });\n return from(\n this.sneatAuthService.createUserWithEmailAndPassword(email, password),\n ).pipe(\n switchMap(({ token }) => {\n this.sneatApiService.setApiAuthToken(token);\n return this.acceptInviteByAuthenticatedUser(inviteInfo);\n }),\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { IContactContext } from '@sneat/extension-contactus-contract';\nimport { ISpaceContext } from '@sneat/space-models';\nimport { SpaceNavService } from '@sneat/space-services';\n\n@Injectable()\nexport class ContactusNavService {\n private readonly spaceNavService = inject(SpaceNavService);\n\n public navigateToAddMember = (space: ISpaceContext): Promise<boolean> =>\n this.spaceNavService.navigateForwardToSpacePage(space, 'add-member');\n\n public navigateToMember(memberContext: IContactContext): void {\n console.log(\n `navigateToMember(team.id=${memberContext?.space?.id}, memberInfo.id=${memberContext?.id})`,\n );\n // const id = `${memberContext?.space?.id}:${memberContext?.id}`;\n // const { space } = memberContext;\n // if (!space) {\n // \tthis.errorLogger.logError(\n // \t\t'not able to navigate to member without team context',\n // \t);\n // \treturn;\n // }\n // this.spaceNavService.navigateForwardToSpacePage(\n // \tspace,\n // \t`member/${memberContext.id}`,\n // \t{\n // \t\tstate: {\n // \t\t\tcontact: memberContext,\n // \t\t},\n // \t},\n // );\n }\n}\n","import { Provider } from '@angular/core';\nimport {\n CONTACT_GROUP_SERVICE,\n CONTACT_NAV_SERVICE,\n CONTACT_ROLE_SERVICE,\n CONTACT_SERVICE,\n CONTACTUS_NAV_SERVICE,\n CONTACTUS_SPACE_SERVICE,\n INVITE_SERVICE,\n} from '@sneat/extension-contactus-contract';\nimport {\n ContactGroupService,\n ContactNavService,\n ContactRoleService,\n ContactService,\n ContactusNavService,\n ContactusSpaceService,\n InviteService,\n MemberGroupService,\n MemberService,\n} from './services';\n\n/**\n * Provides the concrete contactus services and binds them to the\n * contract injection tokens. Consumed at app bootstrap; other\n * extensions must NOT import this.\n */\nexport function provideContactus(): Provider[] {\n // NOTE: ContactusSpaceContextService is intentionally NOT provided here — it\n // is manually instantiated (its constructor takes plain Observables: the\n // destroyed$ and spaceID$ streams), so it has no Angular DI factory and\n // registering it as a provider throws NG0204. Consumers `new` it directly.\n return [\n ContactService,\n ContactNavService,\n ContactGroupService,\n ContactRoleService,\n ContactusSpaceService,\n ContactusNavService,\n MemberService,\n MemberGroupService,\n InviteService,\n { provide: CONTACT_SERVICE, useExisting: ContactService },\n { provide: CONTACTUS_SPACE_SERVICE, useExisting: ContactusSpaceService },\n { provide: CONTACT_NAV_SERVICE, useExisting: ContactNavService },\n { provide: CONTACTUS_NAV_SERVICE, useExisting: ContactusNavService },\n { provide: CONTACT_GROUP_SERVICE, useExisting: ContactGroupService },\n { provide: CONTACT_ROLE_SERVICE, useExisting: ContactRoleService },\n { provide: INVITE_SERVICE, useExisting: InviteService },\n ];\n}\n","import { Route } from '@angular/router';\n\nexport const membersRoutes: Route[] = [\n {\n path: 'members',\n data: { title: 'Members' },\n loadComponent: () =>\n import('./pages/members/members-page.component').then(\n (m) => m.MembersPageComponent,\n ),\n // ...guardRoute,\n },\n {\n path: 'new-member',\n data: { title: 'New member' },\n loadComponent: () =>\n import('./pages/new-member').then((m) => m.NewMemberPageComponent),\n // ...guardRoute,\n },\n {\n path: 'member/:contactID',\n data: { title: 'Member' },\n loadComponent: () =>\n import('./pages/member/space-member-page.component').then(\n (m) => m.SpaceMemberPageComponent,\n ),\n },\n\n // {\n // \tpath: 'pupils',\n // \tloadChildren: () => import('./pupils/pupils.module')\n // \t\t.then(m => m.PupilsPageModule),\n // \t// ...guardRoute,\n // },\n // {\n // \tpath: 'staff',\n // \tloadChildren: () => import('./staff/staff.module')\n // \t\t.then(m => m.StaffPageModule),\n // \t// ...guardRoute,\n // },\n];\n","import { Route } from '@angular/router';\nimport { membersRoutes } from './members';\n\n// import {guardRoute} from '../../utils/guard-route';\n\nexport const contactusRoutes: Route[] = [\n {\n path: 'contacts',\n data: { title: 'Contacts' },\n loadComponent: () =>\n import('./pages/contacts/contacts-page.component').then(\n (m) => m.ContactsPageComponent,\n ),\n // ...guardRoute,\n },\n {\n path: 'new-contact',\n data: { title: 'New Contact' },\n loadComponent: () =>\n import('./pages').then((m) => m.NewContactPageComponent),\n // ...guardRoute,\n },\n {\n path: 'contact/:contactID',\n data: { title: 'Contact' },\n loadComponent: () => import('./pages').then((m) => m.ContactPageComponent),\n // ...guardRoute,\n },\n {\n path: 'contact/:contactID/new-location',\n data: { title: 'New location' },\n loadComponent: () =>\n import('./pages').then((m) => m.NewLocationPageComponent),\n // ...guardRoute,\n },\n ...membersRoutes,\n // {\n // \tpath: 'applicants',\n // \tloadChildren: () => import('./pages/contacts/contacts-page.module')\n // \t\t.then(m => m.ContactsPageModule),\n // \t// ...guardRoute,\n // },\n // {\n // \tpath: 'tenants',\n // \tloadChildren: () => import('./pages/contacts/contacts-page.module')\n // \t\t.then(m => m.ContactsPageModule),\n // \t// ...guardRoute,\n // },\n // {\n // \tpath: 'landlords',\n // \tloadChildren: () => import('./pages/contacts/contacts-page.module')\n // \t\t.then(m => m.ContactsPageModule),\n // \t// ...guardRoute,\n // },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sneat/extension-contactus",
3
- "version": "0.14.13",
3
+ "version": "0.14.14",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -11,23 +11,22 @@
11
11
  "@angular/router": ">=22.0.0 <23.0.0",
12
12
  "@ionic/angular": ">=9.0.0 <10.0.0",
13
13
  "better-qr": "^0.1.2",
14
- "firebase": "*",
15
14
  "rxjs": "^7.0.0",
16
- "@sneat/api": "^0.27.6",
17
- "@sneat/auth-core": "^0.27.6",
18
- "@sneat/auth-models": "^0.27.6",
19
- "@sneat/auth-ui": "^0.27.6",
20
- "@sneat/components": "^0.27.6",
21
- "@sneat/core": "^0.27.6",
22
- "@sneat/dto": "^0.27.6",
15
+ "@sneat/api": "^0.27.14",
16
+ "@sneat/auth-core": "^0.27.14",
17
+ "@sneat/auth-models": "^0.27.14",
18
+ "@sneat/auth-ui": "^0.27.14",
19
+ "@sneat/components": "^0.27.14",
20
+ "@sneat/core": "^0.27.14",
21
+ "@sneat/dto": "^0.27.14",
23
22
  "@sneat/extension-assetus-contract": "^0.2.2",
24
23
  "@sneat/extension-contactus-contract": "^0.12.5",
25
24
  "@sneat/extension-contactus-ui": "^0.14.0",
26
25
  "@sneat/random": ">=0.0.4 <0.1.0",
27
- "@sneat/space-components": "^0.27.6",
28
- "@sneat/space-models": "^0.27.6",
29
- "@sneat/space-services": "^0.27.6",
30
- "@sneat/ui": "^0.27.6"
26
+ "@sneat/space-components": "^0.27.14",
27
+ "@sneat/space-models": "^0.27.14",
28
+ "@sneat/space-services": "^0.27.14",
29
+ "@sneat/ui": "^0.27.14"
31
30
  },
32
31
  "sideEffects": false,
33
32
  "module": "fesm2022/sneat-extension-contactus.mjs",
@@ -114,7 +114,6 @@ declare class InviteService {
114
114
  private readonly errorLogger;
115
115
  private readonly sneatAuthService;
116
116
  private readonly sneatApiService;
117
- private readonly afAuth;
118
117
  private readonly randomService;
119
118
  createInviteForMember(request: ICreatePersonalInviteRequest): Observable<ICreatePersonalInviteResponse>;
120
119
  getInviteLinkForMember(request: ICreatePersonalInviteRequest): Observable<ICreatePersonalInviteResponse>;