@sneat/extension-contactus 0.13.4 → 0.13.6
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.
- package/fesm2022/{sneat-extension-contactus-contacts-page.component-dpcKveLW.mjs → sneat-extension-contactus-contacts-page.component-4EsaJkXj.mjs} +4 -4
- package/fesm2022/{sneat-extension-contactus-contacts-page.component-dpcKveLW.mjs.map → sneat-extension-contactus-contacts-page.component-4EsaJkXj.mjs.map} +1 -1
- package/fesm2022/{sneat-extension-contactus-index-1vVX7Aa3.mjs → sneat-extension-contactus-index-BoDcqthC.mjs} +7 -7
- package/fesm2022/{sneat-extension-contactus-index-1vVX7Aa3.mjs.map → sneat-extension-contactus-index-BoDcqthC.mjs.map} +1 -1
- package/fesm2022/{sneat-extension-contactus-index--ZEjpmgM.mjs → sneat-extension-contactus-index-Cp1af1MR.mjs} +11 -11
- package/fesm2022/{sneat-extension-contactus-index--ZEjpmgM.mjs.map → sneat-extension-contactus-index-Cp1af1MR.mjs.map} +1 -1
- package/fesm2022/{sneat-extension-contactus-members-page.component-CWulwfet.mjs → sneat-extension-contactus-members-page.component-Bv9xVCKk.mjs} +4 -4
- package/fesm2022/{sneat-extension-contactus-members-page.component-CWulwfet.mjs.map → sneat-extension-contactus-members-page.component-Bv9xVCKk.mjs.map} +1 -1
- package/fesm2022/{sneat-extension-contactus-space-member-page.component-BY_SJdUs.mjs → sneat-extension-contactus-space-member-page.component-Ds2b-oB9.mjs} +4 -4
- package/fesm2022/{sneat-extension-contactus-space-member-page.component-BY_SJdUs.mjs.map → sneat-extension-contactus-space-member-page.component-Ds2b-oB9.mjs.map} +1 -1
- package/fesm2022/sneat-extension-contactus.mjs +38 -38
- package/fesm2022/sneat-extension-contactus.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -146,13 +146,13 @@ class MembersPageComponent extends MembersBasePage {
|
|
|
146
146
|
// });
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
150
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
149
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MembersPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
150
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: MembersPageComponent, isStandalone: true, selector: "sneat-members-page", providers: [
|
|
151
151
|
{ provide: ClassName, useValue: 'MembersPageComponent' },
|
|
152
152
|
SpaceComponentBaseParams,
|
|
153
153
|
], usesInheritance: true, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"light\" class=\"with-back-button with-end-buttons\">\n <ion-buttons slot=\"start\">\n <ion-back-button [defaultHref]=\"$defaultBackUrl()\" />\n </ion-buttons>\n <sneat-space-page-title\n [space]=\"space\"\n generalTitle=\"Members\"\n icon=\"\uD83D\uDC6A\"\n [titlesBySpaceType]=\"{\n family: 'Family members',\n }\"\n />\n <ion-buttons slot=\"end\">\n <ion-menu-button menu=\"mainMenu\" />\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"cardy\">\n @if (supportsMemberGroups) {\n <div class=\"segment\">\n <ion-segment [(ngModel)]=\"segment\">\n <ion-segment-button value=\"all\">\n <ion-label>All</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"groups\">\n <ion-label>\n @if (space.type === \"cohabit\") {\n By room\n } @else {\n By group\n }\n </ion-label>\n </ion-segment-button>\n </ion-segment>\n </div>\n }\n\n <!--\t<div class=\"segment\" *ngIf=\"spaceType === 'family'\">-->\n <!--\t\t<ion-segment [(ngModel)]=\"listMode\">-->\n <!--\t\t\t<ion-segment-button value=\"list\">List</ion-segment-button>-->\n <!--\t\t\t<ion-segment-button value=\"cards\">Cards</ion-segment-button>-->\n <!--\t\t</ion-segment>-->\n <!--\t</div>-->\n\n <!--\t<ion-list *ngIf=\"segment === 'all' && teamType === 'family'\">-->\n <!--\t\t<sneat-members-list *ngIf=\"adults\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[team]=\"team\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[allMembers]=\"members\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[contactsByMember]=\"contactsByMember\"-->\n <!--\t\t></sneat-members-list>-->\n <!--\t</ion-list>-->\n\n @if (segment === \"all\" && $spaceType() === \"family\") {\n <ion-card>\n <sneat-family-members\n [$space]=\"$space()\"\n [contactusSpaceDbo]=\"spaceModuleDbo$ | async\"\n (addMember)=\"goNewMemberPage($event)\"\n />\n </ion-card>\n }\n\n @if (segment === \"groups\") {\n @if ($spaceType() === \"cohabit\") {\n @if (memberGroups) {\n @for (group of memberGroups; track group.id) {\n <ion-item-group>\n <ion-item-divider>\n <ion-icon name=\"people\" style=\"margin-right: 0.5em\" />\n <ion-label>\n {{ group.brief?.title }}\n </ion-label>\n @if (group.dbo?.numberOf?.members) {\n <ion-badge color=\"light\">\n {{ group.dbo?.numberOf?.members }} members\n </ion-badge>\n }\n </ion-item-divider>\n <!--\t\t\t\t\t<ng-container *ngIf=\"membersByGroupId[group.id]\">-->\n <!--\t\t\t\t\t\t<sneat-members-list [members]=\"this.membersByGroupId[group.id]\"-->\n <!--\t\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t\t</ng-container>-->\n </ion-item-group>\n }\n\n <!--\t\t\t\t<ng-container *ngIf=\"noGroupMembers && noGroupMembers.length\">-->\n <!--\t\t\t\t\t<ion-item-divider>-->\n <!--\t\t\t\t\t\t<ion-label>No group members</ion-label>-->\n <!--\t\t\t\t\t</ion-item-divider>-->\n <!--\t\t\t\t\t<sneat-members-list [members]=\"noGroupMembers\"-->\n <!--\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t</ng-container>-->\n }\n } @else if (memberGroups) {\n @for (group of memberGroups; track group.id) {\n <ion-item-group>\n <ion-item button=\"button\" (click)=\"goGroup(group)\">\n <ion-icon name=\"people\" style=\"margin-right: 0.5em\" />\n <ion-label>\n {{ group.brief?.title }}\n </ion-label>\n @if (group.dbo?.numberOf?.members) {\n <ion-badge color=\"light\">\n {{ group?.dbo?.numberOf?.members }} members\n </ion-badge>\n }\n </ion-item>\n </ion-item-group>\n }\n <!--\t\t\t\t<ng-container *ngIf=\"noGroupMembers && noGroupMembers.length\">-->\n <!--\t\t\t\t\t<ion-item-divider>-->\n <!--\t\t\t\t\t\t<ion-label>No group members</ion-label>-->\n <!--\t\t\t\t\t\t<ion-badge color=\"light\" slot=\"end\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t style=\"margin-right: 1em\">{{noGroupMembers.length}}</ion-badge>-->\n <!--\t\t\t\t\t</ion-item-divider>-->\n <!--\t\t\t\t\t<sneat-members-list-->\n <!--\t\t\t\t\t\t[members]=\"noGroupMembers\"-->\n <!--\t\t\t\t\t\t[contactsByMember]=\"contactsByMember\"-->\n <!--\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t</ng-container>-->\n }\n }\n</ion-content>\n\n<ion-footer>\n <ion-toolbar color=\"light\">\n @if (space.dbo) {\n @switch (segment) {\n @case (\"all\") {\n <ion-label>\n <b>Total</b>:\n <!--\t\t\t{{ team.dto.numberOf?.members ?? 0 }}-->\n <!--\t\t\t{{ team.dto.numberOf?.members === 1 ? \"member\" : \"members\" }}-->\n </ion-label>\n }\n @case (\"groups\") {\n <ion-label>\n <b>Total</b>:\n <!--\t\t\t{{ team.dto.numberOf?.memberGroups || 0 }}-->\n <!--\t\t\t{{ team.dto.numberOf?.memberGroups === 1 ? \"group\" : \"groups\" }}-->\n </ion-label>\n }\n }\n } @else {\n <ion-label>Loading...</ion-label>\n }\n\n <ion-buttons slot=\"end\">\n <ion-button\n size=\"small\"\n color=\"primary\"\n [disabled]=\"!space.brief\"\n (click)=\"goNew()\"\n [title]=\"segment === 'groups' ? 'Add new group' : 'Add new member'\"\n >\n <ion-icon name=\"add\" />\n <ion-label>Add</ion-label>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SpacePageTitleComponent, selector: "sneat-space-page-title", inputs: ["icon", "generalTitle", "space", "titlesBySpaceType"] }, { kind: "ngmodule", type: ContactusServicesModule }, { kind: "component", type: FamilyMembersComponent, selector: "sneat-family-members", inputs: ["contactusSpaceDbo"], outputs: ["addMember"] }, { kind: "ngmodule", type: SpaceServiceModule }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonBackButton, selector: "ion-back-button" }, { kind: "component", type: IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonSegment, selector: "ion-segment", inputs: ["color", "disabled", "mode", "scrollable", "selectOnFocus", "swipeGesture", "value"] }, { kind: "component", type: IonSegmentButton, selector: "ion-segment-button", inputs: ["contentId", "disabled", "layout", "mode", "type", "value"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonItemGroup, selector: "ion-item-group" }, { kind: "component", type: IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonBadge, selector: "ion-badge", inputs: ["color", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] });
|
|
154
154
|
}
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
155
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MembersPageComponent, decorators: [{
|
|
156
156
|
type: Component,
|
|
157
157
|
args: [{ imports: [
|
|
158
158
|
FormsModule,
|
|
@@ -185,4 +185,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
185
185
|
}], ctorParameters: () => [] });
|
|
186
186
|
|
|
187
187
|
export { MembersPageComponent };
|
|
188
|
-
//# sourceMappingURL=sneat-extension-contactus-members-page.component-
|
|
188
|
+
//# sourceMappingURL=sneat-extension-contactus-members-page.component-Bv9xVCKk.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sneat-extension-contactus-members-page.component-CWulwfet.mjs","sources":["../../../../../../libs/extensions/contactus/runtime/src/lib/members/members-base-page.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/members/members-page.component.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/members/members-page.component.html"],"sourcesContent":["import { SpaceMemberType } from '@sneat/auth-models';\nimport { ContactusModuleBaseComponent } from '@sneat/extension-contactus-ui';\nimport { IIdAndBriefAndOptionalDbo } from '@sneat/core';\nimport { isSpaceSupportsMemberGroups } from '@sneat/dto';\nimport { ContactusSpaceService } from '../services';\nimport { IContactBrief, IContactDbo } from '@sneat/extension-contactus-contract';\n\nexport abstract class MembersBasePage extends ContactusModuleBaseComponent {\n public members?: readonly IIdAndBriefAndOptionalDbo<\n IContactBrief,\n IContactDbo\n >[];\n\n // protected currentUserDto: IDtoUser;\n\n abstract get memberType(): SpaceMemberType;\n\n // protected setCurrentUser(dto: IDtoUser) {\n // this.currentUserDto = dto;\n // }\n\n protected constructor(contactusTeamService: ContactusSpaceService) {\n super(contactusTeamService);\n // this.userService.currentUserLoaded.subscribe(user => this.setCurrentUser(user));\n }\n\n goNewMember = () => {\n // TODO: use it?\n this.navigateForwardToSpacePage('new-member').catch(\n this.logErrorHandler('failed to navigate to new member page'),\n );\n };\n\n // goMember = (member: IMemberContext, page?: MemberPages) => {\n // \tthis.navigateForwardToSpacePage(\n // \t\t(page || 'member') + '/' + member.id,\n // \t).catch(this.logErrorHandler('failed to navigate to team member page'));\n // };\n //\n // goContact = (id: string, event: Event) => {\n // \tevent.stopPropagation();\n // \tthis.navigateForwardToSpacePage(`contact/${id}`)\n // \t\t.catch(this.logErrorHandler('failed to navigate to contact page'));\n // };\n\n public get supportsMemberGroups(): boolean {\n return (\n !!this.space?.brief && isSpaceSupportsMemberGroups(this.space.brief.type)\n );\n }\n\n // protected setPageCommuneIds(source: string, communeIds: ICommuneIds, communeDto?: ICommuneDto): void {\n // \tsuper.setPageCommuneIds(source, communeIds, communeDto);\n // \tif (this.communeRealId) {\n // \t\tthis.membersService.selectByType(this.communeRealId, this.memberType)\n // \t\t\t.subscribe(\n // \t\t\t\tmembers => {\n // \t\t\t\t\tthis.members = members;\n // \t\t\t\t},\n // \t\t\t\tthis.errorLogger.logError,\n // \t\t\t);\n // \t}\n // }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Params } from '@angular/router';\nimport {\n IonBackButton,\n IonBadge,\n IonButton,\n IonButtons,\n IonCard,\n IonContent,\n IonFooter,\n IonHeader,\n IonIcon,\n IonItem,\n IonItemDivider,\n IonItemGroup,\n IonLabel,\n IonMenuButton,\n IonSegment,\n IonSegmentButton,\n IonToolbar,\n} from '@ionic/angular/standalone';\nimport { SpaceMemberType } from '@sneat/auth-models';\nimport {\n ContactusServicesModule,\n ContactusSpaceService,\n} from '../../../services';\nimport { FamilyMembersComponent, MemberGroup } from '@sneat/extension-contactus-ui';\nimport { IMemberGroupContext } from '@sneat/extension-contactus-contract';\nimport { isSpaceSupportsMemberGroups } from '@sneat/dto';\nimport {\n SpaceComponentBaseParams,\n SpacePageTitleComponent,\n} from '@sneat/space-components';\nimport { SpaceServiceModule } from '@sneat/space-services';\nimport { ClassName } from '@sneat/ui';\nimport { MembersBasePage } from '../../members-base-page';\nimport { Component, inject } from '@angular/core';\n\n@Component({\n imports: [\n FormsModule,\n SpacePageTitleComponent,\n ContactusServicesModule,\n FamilyMembersComponent,\n SpaceServiceModule,\n IonHeader,\n IonToolbar,\n IonButtons,\n IonBackButton,\n IonMenuButton,\n IonContent,\n IonSegment,\n IonSegmentButton,\n IonLabel,\n IonCard,\n AsyncPipe,\n IonItemGroup,\n IonItemDivider,\n IonIcon,\n IonBadge,\n IonItem,\n IonFooter,\n IonButton,\n ],\n providers: [\n { provide: ClassName, useValue: 'MembersPageComponent' },\n SpaceComponentBaseParams,\n ],\n selector: 'sneat-members-page',\n templateUrl: 'members-page.component.html',\n})\nexport class MembersPageComponent extends MembersBasePage {\n // private readonly memberGroupService = inject(MemberGroupService);\n\n public memberGroups?: readonly IMemberGroupContext[];\n // public loadingStubs?: number[];\n public segment: 'all' | 'groups' = 'all';\n // public listMode: 'list' | 'cards' = 'list';\n // public membersByGroupId: { [id: string]: IMemberContext[] } = {};\n\n readonly memberType: SpaceMemberType = 'member';\n\n constructor() {\n const contactusTeamService = inject(ContactusSpaceService);\n\n super(contactusTeamService);\n }\n\n protected goGroup(memberGroup: IMemberGroupContext): void {\n this.navigateForwardToSpacePage(`group/${memberGroup.id}`, {\n state: { memberGroup },\n }).catch(this.logErrorHandler('failed to navigate to members group page'));\n }\n\n protected goNewMemberPage(group?: MemberGroup): void {\n const queryParams: Params | undefined = group\n ? { group: group.id }\n : undefined;\n this.navigateForwardToSpacePage('new-member', {\n queryParams,\n state: { group },\n }).catch(\n this.logErrorHandler(\n 'failed to navigate to new member page with age parameter',\n ),\n );\n }\n\n public goNew(): void {\n switch (this.segment) {\n case 'all':\n this.goNewMemberPage();\n break;\n case 'groups':\n this.navigateForwardToSpacePage('new-group').catch(\n this.logErrorHandler('failed to navigate to new group page'),\n );\n break;\n default:\n alert(`Unknown segment: ${this.segment}`);\n return;\n }\n }\n\n override onSpaceDboChanged(): void {\n super.onSpaceDboChanged();\n if (!this.space) {\n throw new Error('!this.commune');\n }\n // console.log(`MembersPageComponent.onSpaceDboChanged()`);\n // if (this.team?.dto?.numberOf?.members) {\n // \tthis.loadingStubs = Array(this.team?.dto?.numberOf?.members).fill(1);\n // }\n // if (!isNaN(this.prevMembersCount) && this.prevMembersCount != this.commune.numberOf.members) {\n // this.loadData();\n // }\n this.loadData('onSpaceDboChanged');\n // this.prevMembersCount = this.team?.dto?.numberOf?.members || 0;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private loadData(_source: string): void {\n // console.log(`MembersPageComponent.loadData(source=${source})`);\n\n // this.unsubscribe();\n const space = this.space;\n if (!space) {\n throw new Error('!this.team');\n }\n // this.noGroupMembers = this.team?.brief && isTeamSupportsMemberGroups(this.team.brief.type) ? [] : undefined;\n\n // const contactusTeam = this.teamModuleDto;\n //\n // if (contactusTeam?.dto?.contacts) {\n // \tthis.processContactusSpaceDbo(contactusTeam.dto);\n // } else {\n // \tthis.contactService\n // \t\t.watchContactsWithRole(space, 'space_member') // TODO: use constant\n // \t\t.pipe(takeUntil(this.spaceIDChanged$))\n // \t\t.subscribe({\n // \t\t\tnext: (members) => {\n // \t\t\t\tconsole.log(\n // \t\t\t\t\t`MembersPageComponent.loadData(source=${source}), members =>`,\n // \t\t\t\t\tmembers,\n // \t\t\t\t);\n // \t\t\t\tif (members?.length) {\n // \t\t\t\t\t// TODO: deep equal\n // \t\t\t\t\tmembers.forEach((m) => {\n // \t\t\t\t\t\tif (m.id) {\n // \t\t\t\t\t\t\tif (m.dto?.related) {\n // \t\t\t\t\t\t\t\t// this.contactsByMember[m.id] = zipMapBriefsWithIDs(\n // \t\t\t\t\t\t\t\t// \tm.dto.relatedContacts,\n // \t\t\t\t\t\t\t\t// );\n // \t\t\t\t\t\t\t} else if (this.contactsByMember[m.id]) {\n // \t\t\t\t\t\t\t\tdelete this.contactsByMember[m.id];\n // \t\t\t\t\t\t\t}\n // \t\t\t\t\t\t}\n // \t\t\t\t\t});\n // \t\t\t\t\tthis.members = members;\n // \t\t\t\t\tthis.processMembers();\n // \t\t\t\t}\n // \t\t\t},\n // \t\t});\n // }\n\n if (space.type && isSpaceSupportsMemberGroups(space.type)) {\n throw new Error('not implemented yet due to refactoring');\n // this.contactService.watchContactsByRole(team)\n // \t.subscribe(memberGroups => {\n // \t\tif (memberGroups && (!this.memberGroups || memberGroups.length !== this.memberGroups.length)) { // TODO: deep equal\n // \t\t\tthis.memberGroups = memberGroups;\n // \t\t}\n // \t});\n }\n }\n}\n","<ion-header>\n <ion-toolbar color=\"light\" class=\"with-back-button with-end-buttons\">\n <ion-buttons slot=\"start\">\n <ion-back-button [defaultHref]=\"$defaultBackUrl()\" />\n </ion-buttons>\n <sneat-space-page-title\n [space]=\"space\"\n generalTitle=\"Members\"\n icon=\"👪\"\n [titlesBySpaceType]=\"{\n family: 'Family members',\n }\"\n />\n <ion-buttons slot=\"end\">\n <ion-menu-button menu=\"mainMenu\" />\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"cardy\">\n @if (supportsMemberGroups) {\n <div class=\"segment\">\n <ion-segment [(ngModel)]=\"segment\">\n <ion-segment-button value=\"all\">\n <ion-label>All</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"groups\">\n <ion-label>\n @if (space.type === \"cohabit\") {\n By room\n } @else {\n By group\n }\n </ion-label>\n </ion-segment-button>\n </ion-segment>\n </div>\n }\n\n <!--\t<div class=\"segment\" *ngIf=\"spaceType === 'family'\">-->\n <!--\t\t<ion-segment [(ngModel)]=\"listMode\">-->\n <!--\t\t\t<ion-segment-button value=\"list\">List</ion-segment-button>-->\n <!--\t\t\t<ion-segment-button value=\"cards\">Cards</ion-segment-button>-->\n <!--\t\t</ion-segment>-->\n <!--\t</div>-->\n\n <!--\t<ion-list *ngIf=\"segment === 'all' && teamType === 'family'\">-->\n <!--\t\t<sneat-members-list *ngIf=\"adults\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[team]=\"team\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[allMembers]=\"members\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[contactsByMember]=\"contactsByMember\"-->\n <!--\t\t></sneat-members-list>-->\n <!--\t</ion-list>-->\n\n @if (segment === \"all\" && $spaceType() === \"family\") {\n <ion-card>\n <sneat-family-members\n [$space]=\"$space()\"\n [contactusSpaceDbo]=\"spaceModuleDbo$ | async\"\n (addMember)=\"goNewMemberPage($event)\"\n />\n </ion-card>\n }\n\n @if (segment === \"groups\") {\n @if ($spaceType() === \"cohabit\") {\n @if (memberGroups) {\n @for (group of memberGroups; track group.id) {\n <ion-item-group>\n <ion-item-divider>\n <ion-icon name=\"people\" style=\"margin-right: 0.5em\" />\n <ion-label>\n {{ group.brief?.title }}\n </ion-label>\n @if (group.dbo?.numberOf?.members) {\n <ion-badge color=\"light\">\n {{ group.dbo?.numberOf?.members }} members\n </ion-badge>\n }\n </ion-item-divider>\n <!--\t\t\t\t\t<ng-container *ngIf=\"membersByGroupId[group.id]\">-->\n <!--\t\t\t\t\t\t<sneat-members-list [members]=\"this.membersByGroupId[group.id]\"-->\n <!--\t\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t\t</ng-container>-->\n </ion-item-group>\n }\n\n <!--\t\t\t\t<ng-container *ngIf=\"noGroupMembers && noGroupMembers.length\">-->\n <!--\t\t\t\t\t<ion-item-divider>-->\n <!--\t\t\t\t\t\t<ion-label>No group members</ion-label>-->\n <!--\t\t\t\t\t</ion-item-divider>-->\n <!--\t\t\t\t\t<sneat-members-list [members]=\"noGroupMembers\"-->\n <!--\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t</ng-container>-->\n }\n } @else if (memberGroups) {\n @for (group of memberGroups; track group.id) {\n <ion-item-group>\n <ion-item button=\"button\" (click)=\"goGroup(group)\">\n <ion-icon name=\"people\" style=\"margin-right: 0.5em\" />\n <ion-label>\n {{ group.brief?.title }}\n </ion-label>\n @if (group.dbo?.numberOf?.members) {\n <ion-badge color=\"light\">\n {{ group?.dbo?.numberOf?.members }} members\n </ion-badge>\n }\n </ion-item>\n </ion-item-group>\n }\n <!--\t\t\t\t<ng-container *ngIf=\"noGroupMembers && noGroupMembers.length\">-->\n <!--\t\t\t\t\t<ion-item-divider>-->\n <!--\t\t\t\t\t\t<ion-label>No group members</ion-label>-->\n <!--\t\t\t\t\t\t<ion-badge color=\"light\" slot=\"end\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t style=\"margin-right: 1em\">{{noGroupMembers.length}}</ion-badge>-->\n <!--\t\t\t\t\t</ion-item-divider>-->\n <!--\t\t\t\t\t<sneat-members-list-->\n <!--\t\t\t\t\t\t[members]=\"noGroupMembers\"-->\n <!--\t\t\t\t\t\t[contactsByMember]=\"contactsByMember\"-->\n <!--\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t</ng-container>-->\n }\n }\n</ion-content>\n\n<ion-footer>\n <ion-toolbar color=\"light\">\n @if (space.dbo) {\n @switch (segment) {\n @case (\"all\") {\n <ion-label>\n <b>Total</b>:\n <!--\t\t\t{{ team.dto.numberOf?.members ?? 0 }}-->\n <!--\t\t\t{{ team.dto.numberOf?.members === 1 ? \"member\" : \"members\" }}-->\n </ion-label>\n }\n @case (\"groups\") {\n <ion-label>\n <b>Total</b>:\n <!--\t\t\t{{ team.dto.numberOf?.memberGroups || 0 }}-->\n <!--\t\t\t{{ team.dto.numberOf?.memberGroups === 1 ? \"group\" : \"groups\" }}-->\n </ion-label>\n }\n }\n } @else {\n <ion-label>Loading...</ion-label>\n }\n\n <ion-buttons slot=\"end\">\n <ion-button\n size=\"small\"\n color=\"primary\"\n [disabled]=\"!space.brief\"\n (click)=\"goNew()\"\n [title]=\"segment === 'groups' ? 'Add new group' : 'Add new member'\"\n >\n <ion-icon name=\"add\" />\n <ion-label>Add</ion-label>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sneat-extension-contactus-members-page.component-Bv9xVCKk.mjs","sources":["../../../../../../libs/extensions/contactus/runtime/src/lib/members/members-base-page.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/members/members-page.component.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/members/members-page.component.html"],"sourcesContent":["import { SpaceMemberType } from '@sneat/auth-models';\nimport { ContactusModuleBaseComponent } from '@sneat/extension-contactus-ui';\nimport { IIdAndBriefAndOptionalDbo } from '@sneat/core';\nimport { isSpaceSupportsMemberGroups } from '@sneat/dto';\nimport { ContactusSpaceService } from '../services';\nimport { IContactBrief, IContactDbo } from '@sneat/extension-contactus-contract';\n\nexport abstract class MembersBasePage extends ContactusModuleBaseComponent {\n public members?: readonly IIdAndBriefAndOptionalDbo<\n IContactBrief,\n IContactDbo\n >[];\n\n // protected currentUserDto: IDtoUser;\n\n abstract get memberType(): SpaceMemberType;\n\n // protected setCurrentUser(dto: IDtoUser) {\n // this.currentUserDto = dto;\n // }\n\n protected constructor(contactusTeamService: ContactusSpaceService) {\n super(contactusTeamService);\n // this.userService.currentUserLoaded.subscribe(user => this.setCurrentUser(user));\n }\n\n goNewMember = () => {\n // TODO: use it?\n this.navigateForwardToSpacePage('new-member').catch(\n this.logErrorHandler('failed to navigate to new member page'),\n );\n };\n\n // goMember = (member: IMemberContext, page?: MemberPages) => {\n // \tthis.navigateForwardToSpacePage(\n // \t\t(page || 'member') + '/' + member.id,\n // \t).catch(this.logErrorHandler('failed to navigate to team member page'));\n // };\n //\n // goContact = (id: string, event: Event) => {\n // \tevent.stopPropagation();\n // \tthis.navigateForwardToSpacePage(`contact/${id}`)\n // \t\t.catch(this.logErrorHandler('failed to navigate to contact page'));\n // };\n\n public get supportsMemberGroups(): boolean {\n return (\n !!this.space?.brief && isSpaceSupportsMemberGroups(this.space.brief.type)\n );\n }\n\n // protected setPageCommuneIds(source: string, communeIds: ICommuneIds, communeDto?: ICommuneDto): void {\n // \tsuper.setPageCommuneIds(source, communeIds, communeDto);\n // \tif (this.communeRealId) {\n // \t\tthis.membersService.selectByType(this.communeRealId, this.memberType)\n // \t\t\t.subscribe(\n // \t\t\t\tmembers => {\n // \t\t\t\t\tthis.members = members;\n // \t\t\t\t},\n // \t\t\t\tthis.errorLogger.logError,\n // \t\t\t);\n // \t}\n // }\n}\n","import { AsyncPipe } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { Params } from '@angular/router';\nimport {\n IonBackButton,\n IonBadge,\n IonButton,\n IonButtons,\n IonCard,\n IonContent,\n IonFooter,\n IonHeader,\n IonIcon,\n IonItem,\n IonItemDivider,\n IonItemGroup,\n IonLabel,\n IonMenuButton,\n IonSegment,\n IonSegmentButton,\n IonToolbar,\n} from '@ionic/angular/standalone';\nimport { SpaceMemberType } from '@sneat/auth-models';\nimport {\n ContactusServicesModule,\n ContactusSpaceService,\n} from '../../../services';\nimport { FamilyMembersComponent, MemberGroup } from '@sneat/extension-contactus-ui';\nimport { IMemberGroupContext } from '@sneat/extension-contactus-contract';\nimport { isSpaceSupportsMemberGroups } from '@sneat/dto';\nimport {\n SpaceComponentBaseParams,\n SpacePageTitleComponent,\n} from '@sneat/space-components';\nimport { SpaceServiceModule } from '@sneat/space-services';\nimport { ClassName } from '@sneat/ui';\nimport { MembersBasePage } from '../../members-base-page';\nimport { Component, inject } from '@angular/core';\n\n@Component({\n imports: [\n FormsModule,\n SpacePageTitleComponent,\n ContactusServicesModule,\n FamilyMembersComponent,\n SpaceServiceModule,\n IonHeader,\n IonToolbar,\n IonButtons,\n IonBackButton,\n IonMenuButton,\n IonContent,\n IonSegment,\n IonSegmentButton,\n IonLabel,\n IonCard,\n AsyncPipe,\n IonItemGroup,\n IonItemDivider,\n IonIcon,\n IonBadge,\n IonItem,\n IonFooter,\n IonButton,\n ],\n providers: [\n { provide: ClassName, useValue: 'MembersPageComponent' },\n SpaceComponentBaseParams,\n ],\n selector: 'sneat-members-page',\n templateUrl: 'members-page.component.html',\n})\nexport class MembersPageComponent extends MembersBasePage {\n // private readonly memberGroupService = inject(MemberGroupService);\n\n public memberGroups?: readonly IMemberGroupContext[];\n // public loadingStubs?: number[];\n public segment: 'all' | 'groups' = 'all';\n // public listMode: 'list' | 'cards' = 'list';\n // public membersByGroupId: { [id: string]: IMemberContext[] } = {};\n\n readonly memberType: SpaceMemberType = 'member';\n\n constructor() {\n const contactusTeamService = inject(ContactusSpaceService);\n\n super(contactusTeamService);\n }\n\n protected goGroup(memberGroup: IMemberGroupContext): void {\n this.navigateForwardToSpacePage(`group/${memberGroup.id}`, {\n state: { memberGroup },\n }).catch(this.logErrorHandler('failed to navigate to members group page'));\n }\n\n protected goNewMemberPage(group?: MemberGroup): void {\n const queryParams: Params | undefined = group\n ? { group: group.id }\n : undefined;\n this.navigateForwardToSpacePage('new-member', {\n queryParams,\n state: { group },\n }).catch(\n this.logErrorHandler(\n 'failed to navigate to new member page with age parameter',\n ),\n );\n }\n\n public goNew(): void {\n switch (this.segment) {\n case 'all':\n this.goNewMemberPage();\n break;\n case 'groups':\n this.navigateForwardToSpacePage('new-group').catch(\n this.logErrorHandler('failed to navigate to new group page'),\n );\n break;\n default:\n alert(`Unknown segment: ${this.segment}`);\n return;\n }\n }\n\n override onSpaceDboChanged(): void {\n super.onSpaceDboChanged();\n if (!this.space) {\n throw new Error('!this.commune');\n }\n // console.log(`MembersPageComponent.onSpaceDboChanged()`);\n // if (this.team?.dto?.numberOf?.members) {\n // \tthis.loadingStubs = Array(this.team?.dto?.numberOf?.members).fill(1);\n // }\n // if (!isNaN(this.prevMembersCount) && this.prevMembersCount != this.commune.numberOf.members) {\n // this.loadData();\n // }\n this.loadData('onSpaceDboChanged');\n // this.prevMembersCount = this.team?.dto?.numberOf?.members || 0;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n private loadData(_source: string): void {\n // console.log(`MembersPageComponent.loadData(source=${source})`);\n\n // this.unsubscribe();\n const space = this.space;\n if (!space) {\n throw new Error('!this.team');\n }\n // this.noGroupMembers = this.team?.brief && isTeamSupportsMemberGroups(this.team.brief.type) ? [] : undefined;\n\n // const contactusTeam = this.teamModuleDto;\n //\n // if (contactusTeam?.dto?.contacts) {\n // \tthis.processContactusSpaceDbo(contactusTeam.dto);\n // } else {\n // \tthis.contactService\n // \t\t.watchContactsWithRole(space, 'space_member') // TODO: use constant\n // \t\t.pipe(takeUntil(this.spaceIDChanged$))\n // \t\t.subscribe({\n // \t\t\tnext: (members) => {\n // \t\t\t\tconsole.log(\n // \t\t\t\t\t`MembersPageComponent.loadData(source=${source}), members =>`,\n // \t\t\t\t\tmembers,\n // \t\t\t\t);\n // \t\t\t\tif (members?.length) {\n // \t\t\t\t\t// TODO: deep equal\n // \t\t\t\t\tmembers.forEach((m) => {\n // \t\t\t\t\t\tif (m.id) {\n // \t\t\t\t\t\t\tif (m.dto?.related) {\n // \t\t\t\t\t\t\t\t// this.contactsByMember[m.id] = zipMapBriefsWithIDs(\n // \t\t\t\t\t\t\t\t// \tm.dto.relatedContacts,\n // \t\t\t\t\t\t\t\t// );\n // \t\t\t\t\t\t\t} else if (this.contactsByMember[m.id]) {\n // \t\t\t\t\t\t\t\tdelete this.contactsByMember[m.id];\n // \t\t\t\t\t\t\t}\n // \t\t\t\t\t\t}\n // \t\t\t\t\t});\n // \t\t\t\t\tthis.members = members;\n // \t\t\t\t\tthis.processMembers();\n // \t\t\t\t}\n // \t\t\t},\n // \t\t});\n // }\n\n if (space.type && isSpaceSupportsMemberGroups(space.type)) {\n throw new Error('not implemented yet due to refactoring');\n // this.contactService.watchContactsByRole(team)\n // \t.subscribe(memberGroups => {\n // \t\tif (memberGroups && (!this.memberGroups || memberGroups.length !== this.memberGroups.length)) { // TODO: deep equal\n // \t\t\tthis.memberGroups = memberGroups;\n // \t\t}\n // \t});\n }\n }\n}\n","<ion-header>\n <ion-toolbar color=\"light\" class=\"with-back-button with-end-buttons\">\n <ion-buttons slot=\"start\">\n <ion-back-button [defaultHref]=\"$defaultBackUrl()\" />\n </ion-buttons>\n <sneat-space-page-title\n [space]=\"space\"\n generalTitle=\"Members\"\n icon=\"👪\"\n [titlesBySpaceType]=\"{\n family: 'Family members',\n }\"\n />\n <ion-buttons slot=\"end\">\n <ion-menu-button menu=\"mainMenu\" />\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"cardy\">\n @if (supportsMemberGroups) {\n <div class=\"segment\">\n <ion-segment [(ngModel)]=\"segment\">\n <ion-segment-button value=\"all\">\n <ion-label>All</ion-label>\n </ion-segment-button>\n <ion-segment-button value=\"groups\">\n <ion-label>\n @if (space.type === \"cohabit\") {\n By room\n } @else {\n By group\n }\n </ion-label>\n </ion-segment-button>\n </ion-segment>\n </div>\n }\n\n <!--\t<div class=\"segment\" *ngIf=\"spaceType === 'family'\">-->\n <!--\t\t<ion-segment [(ngModel)]=\"listMode\">-->\n <!--\t\t\t<ion-segment-button value=\"list\">List</ion-segment-button>-->\n <!--\t\t\t<ion-segment-button value=\"cards\">Cards</ion-segment-button>-->\n <!--\t\t</ion-segment>-->\n <!--\t</div>-->\n\n <!--\t<ion-list *ngIf=\"segment === 'all' && teamType === 'family'\">-->\n <!--\t\t<sneat-members-list *ngIf=\"adults\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[team]=\"team\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[allMembers]=\"members\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t\t[contactsByMember]=\"contactsByMember\"-->\n <!--\t\t></sneat-members-list>-->\n <!--\t</ion-list>-->\n\n @if (segment === \"all\" && $spaceType() === \"family\") {\n <ion-card>\n <sneat-family-members\n [$space]=\"$space()\"\n [contactusSpaceDbo]=\"spaceModuleDbo$ | async\"\n (addMember)=\"goNewMemberPage($event)\"\n />\n </ion-card>\n }\n\n @if (segment === \"groups\") {\n @if ($spaceType() === \"cohabit\") {\n @if (memberGroups) {\n @for (group of memberGroups; track group.id) {\n <ion-item-group>\n <ion-item-divider>\n <ion-icon name=\"people\" style=\"margin-right: 0.5em\" />\n <ion-label>\n {{ group.brief?.title }}\n </ion-label>\n @if (group.dbo?.numberOf?.members) {\n <ion-badge color=\"light\">\n {{ group.dbo?.numberOf?.members }} members\n </ion-badge>\n }\n </ion-item-divider>\n <!--\t\t\t\t\t<ng-container *ngIf=\"membersByGroupId[group.id]\">-->\n <!--\t\t\t\t\t\t<sneat-members-list [members]=\"this.membersByGroupId[group.id]\"-->\n <!--\t\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t\t</ng-container>-->\n </ion-item-group>\n }\n\n <!--\t\t\t\t<ng-container *ngIf=\"noGroupMembers && noGroupMembers.length\">-->\n <!--\t\t\t\t\t<ion-item-divider>-->\n <!--\t\t\t\t\t\t<ion-label>No group members</ion-label>-->\n <!--\t\t\t\t\t</ion-item-divider>-->\n <!--\t\t\t\t\t<sneat-members-list [members]=\"noGroupMembers\"-->\n <!--\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t</ng-container>-->\n }\n } @else if (memberGroups) {\n @for (group of memberGroups; track group.id) {\n <ion-item-group>\n <ion-item button=\"button\" (click)=\"goGroup(group)\">\n <ion-icon name=\"people\" style=\"margin-right: 0.5em\" />\n <ion-label>\n {{ group.brief?.title }}\n </ion-label>\n @if (group.dbo?.numberOf?.members) {\n <ion-badge color=\"light\">\n {{ group?.dbo?.numberOf?.members }} members\n </ion-badge>\n }\n </ion-item>\n </ion-item-group>\n }\n <!--\t\t\t\t<ng-container *ngIf=\"noGroupMembers && noGroupMembers.length\">-->\n <!--\t\t\t\t\t<ion-item-divider>-->\n <!--\t\t\t\t\t\t<ion-label>No group members</ion-label>-->\n <!--\t\t\t\t\t\t<ion-badge color=\"light\" slot=\"end\"-->\n <!--\t\t\t\t\t\t\t\t\t\t\t style=\"margin-right: 1em\">{{noGroupMembers.length}}</ion-badge>-->\n <!--\t\t\t\t\t</ion-item-divider>-->\n <!--\t\t\t\t\t<sneat-members-list-->\n <!--\t\t\t\t\t\t[members]=\"noGroupMembers\"-->\n <!--\t\t\t\t\t\t[contactsByMember]=\"contactsByMember\"-->\n <!--\t\t\t\t\t></sneat-members-list>-->\n <!--\t\t\t\t</ng-container>-->\n }\n }\n</ion-content>\n\n<ion-footer>\n <ion-toolbar color=\"light\">\n @if (space.dbo) {\n @switch (segment) {\n @case (\"all\") {\n <ion-label>\n <b>Total</b>:\n <!--\t\t\t{{ team.dto.numberOf?.members ?? 0 }}-->\n <!--\t\t\t{{ team.dto.numberOf?.members === 1 ? \"member\" : \"members\" }}-->\n </ion-label>\n }\n @case (\"groups\") {\n <ion-label>\n <b>Total</b>:\n <!--\t\t\t{{ team.dto.numberOf?.memberGroups || 0 }}-->\n <!--\t\t\t{{ team.dto.numberOf?.memberGroups === 1 ? \"group\" : \"groups\" }}-->\n </ion-label>\n }\n }\n } @else {\n <ion-label>Loading...</ion-label>\n }\n\n <ion-buttons slot=\"end\">\n <ion-button\n size=\"small\"\n color=\"primary\"\n [disabled]=\"!space.brief\"\n (click)=\"goNew()\"\n [title]=\"segment === 'groups' ? 'Add new group' : 'Add new member'\"\n >\n <ion-icon name=\"add\" />\n <ion-label>Add</ion-label>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-footer>\n"],"names":[],"mappings":"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"}
|
|
@@ -97,10 +97,10 @@ class SpaceMemberPageComponent extends MemberBasePage {
|
|
|
97
97
|
// }
|
|
98
98
|
// }
|
|
99
99
|
}
|
|
100
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
101
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.
|
|
100
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SpaceMemberPageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
101
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.19", type: SpaceMemberPageComponent, isStandalone: true, selector: "sneat-space-member-page", providers: [{ provide: ClassName, useValue: 'SpaceMemberPageComponent' }], usesInheritance: true, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"light\">\n <ion-buttons slot=\"start\">\n <ion-back-button [defaultHref]=\"spacePageUrl('members')\" />\n </ion-buttons>\n <ion-title>\n @switch (space.type) {\n @case (\"family\") {\n @if ($contact(); as contact) {\n Family member: {{ contact | personTitle }}\n } @else {\n Family member\n }\n }\n @case (\"cohabit\") {\n Housemates\n }\n @default {\n <ion-title>Member</ion-title>\n }\n }\n </ion-title>\n <!--<ion-title *ngIf=\"member else titleNoMember\">{{member.title}}</ion-title>-->\n <!--<ng-template #titleNoMember>-->\n <!--<ion-title>Member</ion-title>-->\n <!--</ng-template>-->\n <ion-buttons slot=\"end\">\n @if (member) {\n <ion-button\n [title]=\"\n member.brief?.userID === spaceParams.userService.currentUserID\n ? 'Leave team'\n : 'Remove team member'\n \"\n (click)=\"removeMember()\"\n >\n <ion-icon name=\"trash\" />\n </ion-button>\n }\n <ion-menu-button menu=\"mainMenu\" />\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"cardy\">\n <sneat-contact-details [$contact]=\"$contact()\" [$space]=\"$space()\" />\n</ion-content>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "component", type: ContactDetailsComponent, selector: "sneat-contact-details", inputs: ["$contact"], outputs: ["contactChange"] }, { kind: "ngmodule", type: ContactusServicesModule }, { kind: "ngmodule", type: SpaceServiceModule }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: IonBackButton, selector: "ion-back-button" }, { kind: "component", type: IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonMenuButton, selector: "ion-menu-button", inputs: ["autoHide", "color", "disabled", "menu", "mode", "type"] }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "pipe", type: PersonTitle, name: "personTitle" }] });
|
|
102
102
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: SpaceMemberPageComponent, decorators: [{
|
|
104
104
|
type: Component,
|
|
105
105
|
args: [{ selector: 'sneat-space-member-page', imports: [
|
|
106
106
|
FormsModule,
|
|
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
121
121
|
}], ctorParameters: () => [] });
|
|
122
122
|
|
|
123
123
|
export { SpaceMemberPageComponent };
|
|
124
|
-
//# sourceMappingURL=sneat-extension-contactus-space-member-page.component-
|
|
124
|
+
//# sourceMappingURL=sneat-extension-contactus-space-member-page.component-Ds2b-oB9.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sneat-extension-contactus-space-member-page.component-BY_SJdUs.mjs","sources":["../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/member-base-page.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/member/space-member-page.component.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/member/space-member-page.component.html"],"sourcesContent":["import { IContactContext } from '@sneat/extension-contactus-contract';\nimport { ContactService } from '../../services';\nimport { ContactBasePage } from '../../pages/contact-base-page';\n\nexport abstract class MemberBasePage extends ContactBasePage {\n public segment: 'friends' | 'other' | 'summary' = 'summary';\n\n // override defaultBackUrl = CommuneTopPage.members;\n // public isDeleted?: boolean;\n // protected currentUserDto: IUserDto | undefined;\n private memberContext?: IContactContext;\n\n protected constructor(contactService: ContactService) {\n super(contactService, 'members');\n }\n\n public get member(): IContactContext | undefined {\n return this.memberContext;\n }\n\n protected goNew = (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _event: Event,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _type: 'new-contact' | 'new-document' | 'new-liability' | 'new-asset',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _relation?: string,\n ): void => {\n // this.navigateForward(\n // \ttype,\n // \t{ member: this.memberContext, relation },\n // \t{ memberDto: this.memberDto });\n };\n\n // protected setCurrentUser(dto?: IUserDto): void {\n // \tthis.currentUserDto = dto;\n // }\n\n // protected setMemberId(memberId: string): void {\n // \tconsole.log(`CommuneMemberPage.setMemberId(${memberId})`);\n // \tif (this.memberId === memberId) {\n // \t\treturn;\n // \t}\n // \tthis.memberId = memberId;\n // \tif (this.memberInfo && this.memberInfo.id !== memberId) {\n // \t\tthis.memberInfo = undefined;\n // \t}\n // \tif (this.memberDto && this.memberDto.id !== memberId) {\n // \t\tthis.memberDto = undefined;\n // \t}\n // \tthis.subscriptions.push(\n // \t\tthis.membersService.watchById(this.memberId)\n // \t\t\t.subscribe({\n // \t\t\t\tnext: memberDto => {\n // \t\t\t\t\tconsole.log('Loaded memberDto:', memberDto);\n // \t\t\t\t\tthis.setMemberDto(memberDto);\n // \t\t\t\t\tif (!memberDto) {\n // \t\t\t\t\t\treturn;\n // \t\t\t\t\t}\n // \t\t\t\t\tif (!eq(memberDto.communeId, this.communeRealId)) {\n // \t\t\t\t\t\tthis.setPageCommuneIds('MemberPage.memberFromObservable', { real: memberDto.communeId });\n // \t\t\t\t\t}\n // \t\t\t\t},\n // \t\t\t\terror: err => {\n // \t\t\t\t\tthis.errorLogger.logError(err, 'Failed to get member by ID');\n // \t\t\t\t},\n // \t\t\t}));\n // }\n //\n // protected setMemberInfo(memberInfo: ICommuneMemberInfo): void {\n // \tthis.memberInfo = memberInfo;\n // \tif (memberInfo && memberInfo.id && memberInfo.id !== this.memberId) {\n // \t\tthis.setMemberId(memberInfo.id);\n // \t}\n // }\n //\n // protected onCommuneChanged(source?: string): void {\n // \tsuper.onCommuneChanged(source);\n // \tif (!this.commune) {\n // \t\tthrow new Error('!this.commune');\n // \t}\n // \tif (!this.memberId && this.commune.dto.members) {\n // \t\tconst memberInfo = this.commune.dto.members.find(m => !m.id);\n // \t\tif (memberInfo) {\n // \t\t\tthis.setMemberInfo(memberInfo);\n // \t\t}\n // \t}\n // }\n\n // protected setMemberDto(memberDto?: IMemberDto): void {\n // \tconsole.log('setMemberDto', memberDto);\n // \tif (memberDto || this.memberDto) {\n // \t\tthis.isDeleted = !!this.memberDto && !memberDto;\n // \t}\n // \tthis.memberDto = memberDto;\n // \tif (!memberDto) {\n // \t\treturn;\n // \t}\n // \tif (!this.memberInfo || !eq(this.memberInfo.id, memberDto.id)) {\n // \t\tthis.setMemberInfo(newCommuneMemberInfo(memberDto));\n // \t}\n // \tif (memberDto.communeId && !eq(memberDto.communeId, this.communeRealId)) {\n // \t\tthis.setPageCommuneIds('MemberPage.memberFromHistoryState', { real: memberDto.communeId });\n // \t}\n // }\n}\n","import { Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n IonBackButton,\n IonButton,\n IonButtons,\n IonContent,\n IonHeader,\n IonIcon,\n IonMenuButton,\n IonTitle,\n IonToolbar,\n} from '@ionic/angular/standalone';\nimport { PersonTitle } from '@sneat/extension-contactus-ui';\nimport {\n ContactService,\n ContactusServicesModule,\n} from '../../../services';\nimport { ContactDetailsComponent } from '@sneat/extension-contactus-ui';\nimport { MemberRelationship } from '@sneat/extension-contactus-contract';\nimport { SpaceServiceModule } from '@sneat/space-services';\nimport { ClassName } from '@sneat/ui';\nimport { MemberBasePage } from '../member-base-page';\n\n@Component({\n selector: 'sneat-space-member-page',\n templateUrl: './space-member-page.component.html',\n imports: [\n FormsModule,\n ContactDetailsComponent,\n ContactusServicesModule,\n PersonTitle,\n SpaceServiceModule,\n IonHeader,\n IonToolbar,\n IonButtons,\n IonBackButton,\n IonTitle,\n IonIcon,\n IonMenuButton,\n IonContent,\n IonButton,\n ],\n providers: [{ provide: ClassName, useValue: 'SpaceMemberPageComponent' }],\n})\nexport class SpaceMemberPageComponent extends MemberBasePage {\n public relatedAs?: MemberRelationship;\n\n public constructor() {\n super(inject(ContactService));\n }\n\n // protected setMemberId(memberId: string): void {\n // \tsuper.setMemberId(memberId);\n // \tif (this.currentUserDto && this.communeRealId) {\n // \t\tthis.setRelatedAs();\n // \t}\n // }\n\n // protected setPageCommuneIds(source: string, communeIds: ICommuneIds, communeDto?: ICommuneDto): void {\n // \tsuper.setPageCommuneIds(source, communeIds, communeDto);\n // \tif (this.currentUserDto && this.memberId) {\n // \t\tthis.setRelatedAs();\n // \t}\n // }\n\n // protected setCurrentUser(dto: IUserDto): void {\n // \tsuper.setCurrentUser(dto);\n // \tthis.logger.debug('CommuneMemberPage.setCurrentUser()', dto);\n // \tif (this.memberId && this.communeRealId) {\n // \t\tthis.setRelatedAs();\n // \t}\n // }\n\n public removeMember() {\n if (\n !confirm(\n `Are you sure you want to remove ${\n this.member?.brief?.title || this.member?.id\n } from ${this.space?.brief?.title}?`,\n )\n ) {\n return;\n }\n if (!this.space) {\n this.errorLogger.logError(\n 'Can not remove team member without team context',\n );\n return;\n }\n if (!this.member?.id) {\n this.errorLogger.logError(\n 'Can not remove team member without knowing member ID',\n );\n return;\n }\n this.contactService\n .removeSpaceMember({ spaceID: this.space.id, contactID: this.member?.id })\n .subscribe({\n next: () => {\n this.navController\n .pop()\n .catch((err) =>\n this.errorLogger.logError(err, 'Failed to pop navigator state'),\n );\n },\n error: (err) =>\n this.errorLogger.logError(err, 'Failed to remove member'),\n });\n }\n\n private setRelatedAs(): void {\n // this.logger.debug('CommuneMemberPage.setRelatedAs()', this.currentUserDto);\n // if (!this.currentUserDto) {\n // \treturn;\n // }\n // const userCommunes = this.currentUserDto && this.currentUserDto.communes;\n // if (userCommunes) {\n // \tconst userCommuneInfo = userCommunes.find(c => eq(c.id, this.communeRealId));\n // \tif (userCommuneInfo && userCommuneInfo.members) {\n // \t\tconst memberInfo = userCommuneInfo.members[this.memberId];\n // \t\tif (memberInfo) {\n // \t\t\tthis.relatedAs = memberInfo.relatedAs;\n // \t\t}\n // \t}\n // }\n }\n}\n","<ion-header>\n <ion-toolbar color=\"light\">\n <ion-buttons slot=\"start\">\n <ion-back-button [defaultHref]=\"spacePageUrl('members')\" />\n </ion-buttons>\n <ion-title>\n @switch (space.type) {\n @case (\"family\") {\n @if ($contact(); as contact) {\n Family member: {{ contact | personTitle }}\n } @else {\n Family member\n }\n }\n @case (\"cohabit\") {\n Housemates\n }\n @default {\n <ion-title>Member</ion-title>\n }\n }\n </ion-title>\n <!--<ion-title *ngIf=\"member else titleNoMember\">{{member.title}}</ion-title>-->\n <!--<ng-template #titleNoMember>-->\n <!--<ion-title>Member</ion-title>-->\n <!--</ng-template>-->\n <ion-buttons slot=\"end\">\n @if (member) {\n <ion-button\n [title]=\"\n member.brief?.userID === spaceParams.userService.currentUserID\n ? 'Leave team'\n : 'Remove team member'\n \"\n (click)=\"removeMember()\"\n >\n <ion-icon name=\"trash\" />\n </ion-button>\n }\n <ion-menu-button menu=\"mainMenu\" />\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"cardy\">\n <sneat-contact-details [$contact]=\"$contact()\" [$space]=\"$space()\" />\n</ion-content>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sneat-extension-contactus-space-member-page.component-Ds2b-oB9.mjs","sources":["../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/member-base-page.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/member/space-member-page.component.ts","../../../../../../libs/extensions/contactus/runtime/src/lib/members/pages/member/space-member-page.component.html"],"sourcesContent":["import { IContactContext } from '@sneat/extension-contactus-contract';\nimport { ContactService } from '../../services';\nimport { ContactBasePage } from '../../pages/contact-base-page';\n\nexport abstract class MemberBasePage extends ContactBasePage {\n public segment: 'friends' | 'other' | 'summary' = 'summary';\n\n // override defaultBackUrl = CommuneTopPage.members;\n // public isDeleted?: boolean;\n // protected currentUserDto: IUserDto | undefined;\n private memberContext?: IContactContext;\n\n protected constructor(contactService: ContactService) {\n super(contactService, 'members');\n }\n\n public get member(): IContactContext | undefined {\n return this.memberContext;\n }\n\n protected goNew = (\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _event: Event,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _type: 'new-contact' | 'new-document' | 'new-liability' | 'new-asset',\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _relation?: string,\n ): void => {\n // this.navigateForward(\n // \ttype,\n // \t{ member: this.memberContext, relation },\n // \t{ memberDto: this.memberDto });\n };\n\n // protected setCurrentUser(dto?: IUserDto): void {\n // \tthis.currentUserDto = dto;\n // }\n\n // protected setMemberId(memberId: string): void {\n // \tconsole.log(`CommuneMemberPage.setMemberId(${memberId})`);\n // \tif (this.memberId === memberId) {\n // \t\treturn;\n // \t}\n // \tthis.memberId = memberId;\n // \tif (this.memberInfo && this.memberInfo.id !== memberId) {\n // \t\tthis.memberInfo = undefined;\n // \t}\n // \tif (this.memberDto && this.memberDto.id !== memberId) {\n // \t\tthis.memberDto = undefined;\n // \t}\n // \tthis.subscriptions.push(\n // \t\tthis.membersService.watchById(this.memberId)\n // \t\t\t.subscribe({\n // \t\t\t\tnext: memberDto => {\n // \t\t\t\t\tconsole.log('Loaded memberDto:', memberDto);\n // \t\t\t\t\tthis.setMemberDto(memberDto);\n // \t\t\t\t\tif (!memberDto) {\n // \t\t\t\t\t\treturn;\n // \t\t\t\t\t}\n // \t\t\t\t\tif (!eq(memberDto.communeId, this.communeRealId)) {\n // \t\t\t\t\t\tthis.setPageCommuneIds('MemberPage.memberFromObservable', { real: memberDto.communeId });\n // \t\t\t\t\t}\n // \t\t\t\t},\n // \t\t\t\terror: err => {\n // \t\t\t\t\tthis.errorLogger.logError(err, 'Failed to get member by ID');\n // \t\t\t\t},\n // \t\t\t}));\n // }\n //\n // protected setMemberInfo(memberInfo: ICommuneMemberInfo): void {\n // \tthis.memberInfo = memberInfo;\n // \tif (memberInfo && memberInfo.id && memberInfo.id !== this.memberId) {\n // \t\tthis.setMemberId(memberInfo.id);\n // \t}\n // }\n //\n // protected onCommuneChanged(source?: string): void {\n // \tsuper.onCommuneChanged(source);\n // \tif (!this.commune) {\n // \t\tthrow new Error('!this.commune');\n // \t}\n // \tif (!this.memberId && this.commune.dto.members) {\n // \t\tconst memberInfo = this.commune.dto.members.find(m => !m.id);\n // \t\tif (memberInfo) {\n // \t\t\tthis.setMemberInfo(memberInfo);\n // \t\t}\n // \t}\n // }\n\n // protected setMemberDto(memberDto?: IMemberDto): void {\n // \tconsole.log('setMemberDto', memberDto);\n // \tif (memberDto || this.memberDto) {\n // \t\tthis.isDeleted = !!this.memberDto && !memberDto;\n // \t}\n // \tthis.memberDto = memberDto;\n // \tif (!memberDto) {\n // \t\treturn;\n // \t}\n // \tif (!this.memberInfo || !eq(this.memberInfo.id, memberDto.id)) {\n // \t\tthis.setMemberInfo(newCommuneMemberInfo(memberDto));\n // \t}\n // \tif (memberDto.communeId && !eq(memberDto.communeId, this.communeRealId)) {\n // \t\tthis.setPageCommuneIds('MemberPage.memberFromHistoryState', { real: memberDto.communeId });\n // \t}\n // }\n}\n","import { Component, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport {\n IonBackButton,\n IonButton,\n IonButtons,\n IonContent,\n IonHeader,\n IonIcon,\n IonMenuButton,\n IonTitle,\n IonToolbar,\n} from '@ionic/angular/standalone';\nimport { PersonTitle } from '@sneat/extension-contactus-ui';\nimport {\n ContactService,\n ContactusServicesModule,\n} from '../../../services';\nimport { ContactDetailsComponent } from '@sneat/extension-contactus-ui';\nimport { MemberRelationship } from '@sneat/extension-contactus-contract';\nimport { SpaceServiceModule } from '@sneat/space-services';\nimport { ClassName } from '@sneat/ui';\nimport { MemberBasePage } from '../member-base-page';\n\n@Component({\n selector: 'sneat-space-member-page',\n templateUrl: './space-member-page.component.html',\n imports: [\n FormsModule,\n ContactDetailsComponent,\n ContactusServicesModule,\n PersonTitle,\n SpaceServiceModule,\n IonHeader,\n IonToolbar,\n IonButtons,\n IonBackButton,\n IonTitle,\n IonIcon,\n IonMenuButton,\n IonContent,\n IonButton,\n ],\n providers: [{ provide: ClassName, useValue: 'SpaceMemberPageComponent' }],\n})\nexport class SpaceMemberPageComponent extends MemberBasePage {\n public relatedAs?: MemberRelationship;\n\n public constructor() {\n super(inject(ContactService));\n }\n\n // protected setMemberId(memberId: string): void {\n // \tsuper.setMemberId(memberId);\n // \tif (this.currentUserDto && this.communeRealId) {\n // \t\tthis.setRelatedAs();\n // \t}\n // }\n\n // protected setPageCommuneIds(source: string, communeIds: ICommuneIds, communeDto?: ICommuneDto): void {\n // \tsuper.setPageCommuneIds(source, communeIds, communeDto);\n // \tif (this.currentUserDto && this.memberId) {\n // \t\tthis.setRelatedAs();\n // \t}\n // }\n\n // protected setCurrentUser(dto: IUserDto): void {\n // \tsuper.setCurrentUser(dto);\n // \tthis.logger.debug('CommuneMemberPage.setCurrentUser()', dto);\n // \tif (this.memberId && this.communeRealId) {\n // \t\tthis.setRelatedAs();\n // \t}\n // }\n\n public removeMember() {\n if (\n !confirm(\n `Are you sure you want to remove ${\n this.member?.brief?.title || this.member?.id\n } from ${this.space?.brief?.title}?`,\n )\n ) {\n return;\n }\n if (!this.space) {\n this.errorLogger.logError(\n 'Can not remove team member without team context',\n );\n return;\n }\n if (!this.member?.id) {\n this.errorLogger.logError(\n 'Can not remove team member without knowing member ID',\n );\n return;\n }\n this.contactService\n .removeSpaceMember({ spaceID: this.space.id, contactID: this.member?.id })\n .subscribe({\n next: () => {\n this.navController\n .pop()\n .catch((err) =>\n this.errorLogger.logError(err, 'Failed to pop navigator state'),\n );\n },\n error: (err) =>\n this.errorLogger.logError(err, 'Failed to remove member'),\n });\n }\n\n private setRelatedAs(): void {\n // this.logger.debug('CommuneMemberPage.setRelatedAs()', this.currentUserDto);\n // if (!this.currentUserDto) {\n // \treturn;\n // }\n // const userCommunes = this.currentUserDto && this.currentUserDto.communes;\n // if (userCommunes) {\n // \tconst userCommuneInfo = userCommunes.find(c => eq(c.id, this.communeRealId));\n // \tif (userCommuneInfo && userCommuneInfo.members) {\n // \t\tconst memberInfo = userCommuneInfo.members[this.memberId];\n // \t\tif (memberInfo) {\n // \t\t\tthis.relatedAs = memberInfo.relatedAs;\n // \t\t}\n // \t}\n // }\n }\n}\n","<ion-header>\n <ion-toolbar color=\"light\">\n <ion-buttons slot=\"start\">\n <ion-back-button [defaultHref]=\"spacePageUrl('members')\" />\n </ion-buttons>\n <ion-title>\n @switch (space.type) {\n @case (\"family\") {\n @if ($contact(); as contact) {\n Family member: {{ contact | personTitle }}\n } @else {\n Family member\n }\n }\n @case (\"cohabit\") {\n Housemates\n }\n @default {\n <ion-title>Member</ion-title>\n }\n }\n </ion-title>\n <!--<ion-title *ngIf=\"member else titleNoMember\">{{member.title}}</ion-title>-->\n <!--<ng-template #titleNoMember>-->\n <!--<ion-title>Member</ion-title>-->\n <!--</ng-template>-->\n <ion-buttons slot=\"end\">\n @if (member) {\n <ion-button\n [title]=\"\n member.brief?.userID === spaceParams.userService.currentUserID\n ? 'Leave team'\n : 'Remove team member'\n \"\n (click)=\"removeMember()\"\n >\n <ion-icon name=\"trash\" />\n </ion-button>\n }\n <ion-menu-button menu=\"mainMenu\" />\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"cardy\">\n <sneat-contact-details [$contact]=\"$contact()\" [$space]=\"$space()\" />\n</ion-content>\n"],"names":[],"mappings":"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"}
|
|
@@ -36,10 +36,10 @@ class ContactGroupService {
|
|
|
36
36
|
filter: [{ field: 'status', operator: '==', value: status }],
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
40
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactGroupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
40
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactGroupService });
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactGroupService, decorators: [{
|
|
43
43
|
type: Injectable
|
|
44
44
|
}], ctorParameters: () => [] });
|
|
45
45
|
|
|
@@ -53,10 +53,10 @@ class ContactNavService {
|
|
|
53
53
|
})
|
|
54
54
|
.catch(this.errorLogger.logErrorHandler('failed to navigate to "new-contact" page'));
|
|
55
55
|
}
|
|
56
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
57
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
56
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactNavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
57
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactNavService, providedIn: 'root' });
|
|
58
58
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactNavService, decorators: [{
|
|
60
60
|
type: Injectable,
|
|
61
61
|
args: [{ providedIn: 'root' }]
|
|
62
62
|
}] });
|
|
@@ -71,10 +71,10 @@ class ContactusSpaceService extends SpaceModuleService {
|
|
|
71
71
|
// console.log(`ContactusSpaceService.watchContactBriefs(${spaceID})`);
|
|
72
72
|
return this.watchBriefs(spaceID, (dto) => dto?.contacts || {});
|
|
73
73
|
};
|
|
74
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
75
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
74
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusSpaceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
75
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusSpaceService });
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusSpaceService, decorators: [{
|
|
78
78
|
type: Injectable
|
|
79
79
|
}], ctorParameters: () => [] });
|
|
80
80
|
|
|
@@ -192,10 +192,10 @@ class ContactService extends ModuleSpaceItemService {
|
|
|
192
192
|
// const request: IContactRequest = { spaceID, contactID };
|
|
193
193
|
return this.sneatApiService.post('contactus/remove_team_member', request);
|
|
194
194
|
}
|
|
195
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
196
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
195
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
196
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactService });
|
|
197
197
|
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactService, decorators: [{
|
|
199
199
|
type: Injectable
|
|
200
200
|
}], ctorParameters: () => [] });
|
|
201
201
|
|
|
@@ -270,10 +270,10 @@ class ContactRoleService {
|
|
|
270
270
|
}
|
|
271
271
|
return of({ id, brief: { title: id } });
|
|
272
272
|
}
|
|
273
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
274
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
273
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactRoleService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
274
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactRoleService });
|
|
275
275
|
}
|
|
276
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
276
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactRoleService, decorators: [{
|
|
277
277
|
type: Injectable
|
|
278
278
|
}] });
|
|
279
279
|
|
|
@@ -293,17 +293,17 @@ class MemberService extends ContactService {
|
|
|
293
293
|
validateCreateSpaceMemberRequest(request);
|
|
294
294
|
return this.sneatApiService.post('contactus/create_member', request);
|
|
295
295
|
}
|
|
296
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
297
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
296
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MemberService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
297
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MemberService });
|
|
298
298
|
}
|
|
299
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
299
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MemberService, decorators: [{
|
|
300
300
|
type: Injectable
|
|
301
301
|
}] });
|
|
302
302
|
|
|
303
303
|
class ContactusServicesModule {
|
|
304
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
305
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.
|
|
306
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.
|
|
304
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
305
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.19", ngImport: i0, type: ContactusServicesModule });
|
|
306
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusServicesModule, providers: [
|
|
307
307
|
ContactService,
|
|
308
308
|
ContactNavService,
|
|
309
309
|
ContactGroupService,
|
|
@@ -312,7 +312,7 @@ class ContactusServicesModule {
|
|
|
312
312
|
MemberService,
|
|
313
313
|
] });
|
|
314
314
|
}
|
|
315
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusServicesModule, decorators: [{
|
|
316
316
|
type: NgModule,
|
|
317
317
|
args: [{
|
|
318
318
|
imports: [],
|
|
@@ -328,10 +328,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
|
|
|
328
328
|
}] });
|
|
329
329
|
|
|
330
330
|
class MemberGroupService {
|
|
331
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
332
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
331
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MemberGroupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
332
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MemberGroupService, providedIn: 'root' });
|
|
333
333
|
}
|
|
334
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
334
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: MemberGroupService, decorators: [{
|
|
335
335
|
type: Injectable,
|
|
336
336
|
args: [{
|
|
337
337
|
providedIn: 'root',
|
|
@@ -406,10 +406,10 @@ class InviteService {
|
|
|
406
406
|
return this.acceptInviteByAuthenticatedUser(inviteInfo);
|
|
407
407
|
}));
|
|
408
408
|
}
|
|
409
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
410
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
409
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InviteService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
410
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InviteService });
|
|
411
411
|
}
|
|
412
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
412
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: InviteService, decorators: [{
|
|
413
413
|
type: Injectable
|
|
414
414
|
}] });
|
|
415
415
|
|
|
@@ -436,10 +436,10 @@ class ContactusNavService {
|
|
|
436
436
|
// },
|
|
437
437
|
// );
|
|
438
438
|
}
|
|
439
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.
|
|
440
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.
|
|
439
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusNavService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
440
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusNavService });
|
|
441
441
|
}
|
|
442
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.
|
|
442
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.19", ngImport: i0, type: ContactusNavService, decorators: [{
|
|
443
443
|
type: Injectable
|
|
444
444
|
}] });
|
|
445
445
|
|
|
@@ -477,19 +477,19 @@ const membersRoutes = [
|
|
|
477
477
|
{
|
|
478
478
|
path: 'members',
|
|
479
479
|
data: { title: 'Members' },
|
|
480
|
-
loadComponent: () => import('./sneat-extension-contactus-members-page.component-
|
|
480
|
+
loadComponent: () => import('./sneat-extension-contactus-members-page.component-Bv9xVCKk.mjs').then((m) => m.MembersPageComponent),
|
|
481
481
|
// ...guardRoute,
|
|
482
482
|
},
|
|
483
483
|
{
|
|
484
484
|
path: 'new-member',
|
|
485
485
|
data: { title: 'New member' },
|
|
486
|
-
loadComponent: () => import('./sneat-extension-contactus-index-
|
|
486
|
+
loadComponent: () => import('./sneat-extension-contactus-index-BoDcqthC.mjs').then((m) => m.NewMemberPageComponent),
|
|
487
487
|
// ...guardRoute,
|
|
488
488
|
},
|
|
489
489
|
{
|
|
490
490
|
path: 'member/:contactID',
|
|
491
491
|
data: { title: 'Member' },
|
|
492
|
-
loadComponent: () => import('./sneat-extension-contactus-space-member-page.component-
|
|
492
|
+
loadComponent: () => import('./sneat-extension-contactus-space-member-page.component-Ds2b-oB9.mjs').then((m) => m.SpaceMemberPageComponent),
|
|
493
493
|
},
|
|
494
494
|
// {
|
|
495
495
|
// path: 'pupils',
|
|
@@ -510,25 +510,25 @@ const contactusRoutes = [
|
|
|
510
510
|
{
|
|
511
511
|
path: 'contacts',
|
|
512
512
|
data: { title: 'Contacts' },
|
|
513
|
-
loadComponent: () => import('./sneat-extension-contactus-contacts-page.component-
|
|
513
|
+
loadComponent: () => import('./sneat-extension-contactus-contacts-page.component-4EsaJkXj.mjs').then((m) => m.ContactsPageComponent),
|
|
514
514
|
// ...guardRoute,
|
|
515
515
|
},
|
|
516
516
|
{
|
|
517
517
|
path: 'new-contact',
|
|
518
518
|
data: { title: 'New Contact' },
|
|
519
|
-
loadComponent: () => import('./sneat-extension-contactus-index
|
|
519
|
+
loadComponent: () => import('./sneat-extension-contactus-index-Cp1af1MR.mjs').then((m) => m.NewContactPageComponent),
|
|
520
520
|
// ...guardRoute,
|
|
521
521
|
},
|
|
522
522
|
{
|
|
523
523
|
path: 'contact/:contactID',
|
|
524
524
|
data: { title: 'Contact' },
|
|
525
|
-
loadComponent: () => import('./sneat-extension-contactus-index
|
|
525
|
+
loadComponent: () => import('./sneat-extension-contactus-index-Cp1af1MR.mjs').then((m) => m.ContactPageComponent),
|
|
526
526
|
// ...guardRoute,
|
|
527
527
|
},
|
|
528
528
|
{
|
|
529
529
|
path: 'contact/:contactID/new-location',
|
|
530
530
|
data: { title: 'New location' },
|
|
531
|
-
loadComponent: () => import('./sneat-extension-contactus-index
|
|
531
|
+
loadComponent: () => import('./sneat-extension-contactus-index-Cp1af1MR.mjs').then((m) => m.NewLocationPageComponent),
|
|
532
532
|
// ...guardRoute,
|
|
533
533
|
},
|
|
534
534
|
...membersRoutes,
|