@valtimo/teams 0.0.0-test

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.
Files changed (33) hide show
  1. package/fesm2022/valtimo-teams.mjs +1018 -0
  2. package/fesm2022/valtimo-teams.mjs.map +1 -0
  3. package/index.d.ts +6 -0
  4. package/lib/components/team-detail/team-detail.component.d.ts +43 -0
  5. package/lib/components/team-detail/team-detail.component.d.ts.map +1 -0
  6. package/lib/components/team-detail-add-member-modal/team-detail-add-member-modal.component.d.ts +30 -0
  7. package/lib/components/team-detail-add-member-modal/team-detail-add-member-modal.component.d.ts.map +1 -0
  8. package/lib/components/team-detail-edit-modal/team-detail-edit-modal.component.d.ts +21 -0
  9. package/lib/components/team-detail-edit-modal/team-detail-edit-modal.component.d.ts.map +1 -0
  10. package/lib/components/teams-create-edit-modal/teams-create-edit-modal.component.d.ts +27 -0
  11. package/lib/components/teams-create-edit-modal/teams-create-edit-modal.component.d.ts.map +1 -0
  12. package/lib/components/teams-list/teams-list.component.d.ts +38 -0
  13. package/lib/components/teams-list/teams-list.component.d.ts.map +1 -0
  14. package/lib/permissions/index.d.ts +2 -0
  15. package/lib/permissions/index.d.ts.map +1 -0
  16. package/lib/permissions/team.permissions.d.ts +23 -0
  17. package/lib/permissions/team.permissions.d.ts.map +1 -0
  18. package/lib/services/index.d.ts +4 -0
  19. package/lib/services/index.d.ts.map +1 -0
  20. package/lib/services/team-detail.service.d.ts +53 -0
  21. package/lib/services/team-detail.service.d.ts.map +1 -0
  22. package/lib/services/teams-api.service.d.ts +32 -0
  23. package/lib/services/teams-api.service.d.ts.map +1 -0
  24. package/lib/services/teams.service.d.ts +26 -0
  25. package/lib/services/teams.service.d.ts.map +1 -0
  26. package/lib/teams-routing.d.ts +9 -0
  27. package/lib/teams-routing.d.ts.map +1 -0
  28. package/lib/teams.module.d.ts +9 -0
  29. package/lib/teams.module.d.ts.map +1 -0
  30. package/package.json +24 -0
  31. package/public-api.d.ts +4 -0
  32. package/public-api.d.ts.map +1 -0
  33. package/valtimo-teams.d.ts.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"valtimo-teams.mjs","sources":["../../../../projects/valtimo/teams/src/lib/services/teams-api.service.ts","../../../../projects/valtimo/teams/src/lib/services/teams.service.ts","../../../../projects/valtimo/teams/src/lib/services/team-detail.service.ts","../../../../projects/valtimo/teams/src/lib/services/index.ts","../../../../projects/valtimo/teams/src/lib/components/teams-create-edit-modal/teams-create-edit-modal.component.ts","../../../../projects/valtimo/teams/src/lib/components/teams-create-edit-modal/teams-create-edit-modal.component.html","../../../../projects/valtimo/teams/src/lib/permissions/team.permissions.ts","../../../../projects/valtimo/teams/src/lib/permissions/index.ts","../../../../projects/valtimo/teams/src/lib/components/teams-list/teams-list.component.ts","../../../../projects/valtimo/teams/src/lib/components/teams-list/teams-list.component.html","../../../../projects/valtimo/teams/src/lib/components/team-detail-edit-modal/team-detail-edit-modal.component.ts","../../../../projects/valtimo/teams/src/lib/components/team-detail-edit-modal/team-detail-edit-modal.component.html","../../../../projects/valtimo/teams/src/lib/components/team-detail-add-member-modal/team-detail-add-member-modal.component.ts","../../../../projects/valtimo/teams/src/lib/components/team-detail-add-member-modal/team-detail-add-member-modal.component.html","../../../../projects/valtimo/teams/src/lib/components/team-detail/team-detail.component.ts","../../../../projects/valtimo/teams/src/lib/components/team-detail/team-detail.component.html","../../../../projects/valtimo/teams/src/lib/teams-routing.ts","../../../../projects/valtimo/teams/src/lib/teams.module.ts","../../../../projects/valtimo/teams/src/public-api.ts","../../../../projects/valtimo/teams/src/valtimo-teams.ts"],"sourcesContent":["/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {HttpClient, HttpParams} from '@angular/common/http';\nimport {Injectable} from '@angular/core';\nimport {\n BaseApiService,\n ConfigService,\n Page,\n TeamCreateRequestDto,\n TeamListResponseDto,\n TeamResponseDto,\n TeamUpdateRequestDto,\n TeamUserCreateRequestDto,\n TeamUserResponseDto,\n User,\n} from '@valtimo/shared';\nimport {Observable} from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TeamsApiService extends BaseApiService {\n constructor(\n protected readonly configService: ConfigService,\n protected readonly httpClient: HttpClient\n ) {\n super(httpClient, configService);\n }\n\n public getCandidateUsers(teamKey: string): Observable<User[]> {\n return this.httpClient.get<User[]>(this.getApiUrl(`v1/team/${teamKey}/candidate-user`));\n }\n\n public getTeams(params?: {\n titleContains?: string;\n page?: number;\n size?: number;\n sort?: string;\n }): Observable<Page<TeamListResponseDto>> {\n let httpParams = new HttpParams();\n if (params?.titleContains) {\n httpParams = httpParams.set('titleContains', params.titleContains);\n }\n if (params?.page !== undefined) {\n httpParams = httpParams.set('page', params.page.toString());\n }\n if (params?.size !== undefined) {\n httpParams = httpParams.set('size', params.size.toString());\n }\n httpParams = httpParams.set('sort', params?.sort ?? 'title,asc');\n return this.httpClient.get<Page<TeamListResponseDto>>(this.getApiUrl('v1/team'), {\n params: httpParams,\n });\n }\n\n public getTeam(key: string): Observable<TeamResponseDto> {\n return this.httpClient.get<TeamResponseDto>(this.getApiUrl(`v1/team/${key}`));\n }\n\n public createTeam(dto: TeamCreateRequestDto): Observable<TeamResponseDto> {\n return this.httpClient.post<TeamResponseDto>(this.getApiUrl('v1/team'), dto);\n }\n\n public updateTeam(key: string, dto: TeamUpdateRequestDto): Observable<TeamResponseDto> {\n return this.httpClient.put<TeamResponseDto>(this.getApiUrl(`v1/team/${key}`), dto);\n }\n\n public deleteTeam(key: string): Observable<void> {\n return this.httpClient.delete<void>(this.getApiUrl(`v1/team/${key}`));\n }\n\n public getTeamUsers(\n teamKey: string,\n params?: {page?: number; size?: number}\n ): Observable<Page<TeamUserResponseDto>> {\n let httpParams = new HttpParams();\n if (params?.page !== undefined) {\n httpParams = httpParams.set('page', params.page.toString());\n }\n if (params?.size !== undefined) {\n httpParams = httpParams.set('size', params.size.toString());\n }\n return this.httpClient.get<Page<TeamUserResponseDto>>(\n this.getApiUrl(`v1/team/${teamKey}/user`),\n {params: httpParams}\n );\n }\n\n public addTeamUser(\n teamKey: string,\n dto: TeamUserCreateRequestDto\n ): Observable<TeamUserResponseDto> {\n return this.httpClient.post<TeamUserResponseDto>(\n this.getApiUrl(`v1/team/${teamKey}/user`),\n dto\n );\n }\n\n public removeTeamUser(teamKey: string, username: string): Observable<void> {\n return this.httpClient.delete<void>(this.getApiUrl(`v1/team/${teamKey}/user/${username}`));\n }\n\n public getCurrentUserTeams(): Observable<{key: string}[]> {\n return this.httpClient.get<{key: string}[]>(this.getApiUrl('v1/user/team'));\n }\n}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {TeamListResponseDto} from '@valtimo/shared';\nimport {runAfterCarbonModalClosed} from '@valtimo/components';\n\n@Injectable()\nexport class TeamsService {\n private readonly _reload$ = new BehaviorSubject<null>(null);\n public readonly reload$ = this._reload$.asObservable();\n\n private readonly _showCreateEditModal$ = new BehaviorSubject<boolean>(false);\n public readonly showCreateEditModal$ = this._showCreateEditModal$.asObservable();\n\n private readonly _editingTeam$ = new BehaviorSubject<TeamListResponseDto | null>(null);\n public readonly editingTeam$ = this._editingTeam$.asObservable();\n\n private readonly _showDeleteModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteModal$ = this._showDeleteModal$.asObservable();\n\n private readonly _teamToDelete$ = new BehaviorSubject<TeamListResponseDto | null>(null);\n public readonly teamToDelete$ = this._teamToDelete$.asObservable();\n\n private readonly _loadedTeams$ = new BehaviorSubject<TeamListResponseDto[]>([]);\n public readonly loadedTeams$ = this._loadedTeams$.asObservable();\n\n public setLoadedTeams(teams: TeamListResponseDto[]): void {\n this._loadedTeams$.next(teams);\n }\n\n public reload(): void {\n this._reload$.next(null);\n }\n\n public showCreateModal(): void {\n this._editingTeam$.next(null);\n this._showCreateEditModal$.next(true);\n }\n\n public showEditModal(team: TeamListResponseDto): void {\n this._editingTeam$.next(team);\n this._showCreateEditModal$.next(true);\n }\n\n public hideCreateEditModal(): void {\n this._showCreateEditModal$.next(false);\n runAfterCarbonModalClosed(() => this._editingTeam$.next(null));\n }\n\n public showDeleteConfirmation(team: TeamListResponseDto): void {\n this._teamToDelete$.next(team);\n this._showDeleteModal$.next(true);\n }\n\n public hideDeleteModal(): void {\n this._showDeleteModal$.next(false);\n this._teamToDelete$.next(null);\n }\n}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Injectable, OnDestroy} from '@angular/core';\nimport {ActivatedRoute, Router} from '@angular/router';\nimport {\n BehaviorSubject,\n combineLatest,\n distinctUntilChanged,\n filter,\n Observable,\n Subscription,\n switchMap,\n tap,\n map,\n} from 'rxjs';\nimport {TeamResponseDto, TeamUserResponseDto} from '@valtimo/shared';\nimport {TeamsApiService} from './teams-api.service';\nimport {DEFAULT_PAGINATION, PageTitleService, Pagination} from '@valtimo/components';\n\n@Injectable()\nexport class TeamDetailService implements OnDestroy {\n private readonly _loadingTeam$ = new BehaviorSubject<boolean>(true);\n public get loadingTeam$(): Observable<boolean> {\n return this._loadingTeam$.asObservable();\n }\n\n private readonly _routeSubject$ = new BehaviorSubject<ActivatedRoute | null>(null);\n private get _route$() {\n return this._routeSubject$.pipe(filter(route => route !== null));\n }\n\n public get teamKey$(): Observable<string> {\n return this._route$.pipe(\n switchMap(route =>\n route.paramMap.pipe(\n map(params => params.get('teamKey')!),\n filter(key => !!key),\n tap(key => (this._teamKey = key))\n )\n )\n );\n }\n\n private _teamKey!: string;\n public get teamKey(): string {\n return this._teamKey;\n }\n\n private readonly _team$ = new BehaviorSubject<TeamResponseDto | null>(null);\n public get team$(): Observable<TeamResponseDto> {\n return this._team$.pipe(filter(team => team !== null));\n }\n\n private readonly _reload$ = new BehaviorSubject<null>(null);\n\n private readonly _loadingMembers$ = new BehaviorSubject<boolean>(true);\n public get loadingMembers$(): Observable<boolean> {\n return this._loadingMembers$.asObservable();\n }\n\n private readonly _members$ = new BehaviorSubject<TeamUserResponseDto[]>([]);\n public get members$(): Observable<TeamUserResponseDto[]> {\n return this._members$.asObservable();\n }\n\n public readonly membersPagination$ = new BehaviorSubject<Pagination>({...DEFAULT_PAGINATION});\n\n private readonly _membersPaginationParams$ = this.membersPagination$.pipe(\n map(p => ({page: p.page, size: p.size})),\n distinctUntilChanged((a, b) => a.page === b.page && a.size === b.size)\n );\n\n private readonly _reloadMembers$ = new BehaviorSubject<null>(null);\n\n private readonly _showEditTeamModal$ = new BehaviorSubject<boolean>(false);\n public readonly showEditTeamModal$ = this._showEditTeamModal$.asObservable();\n\n private readonly _showDeleteTeamModal$ = new BehaviorSubject<boolean>(false);\n public readonly showDeleteTeamModal$ = this._showDeleteTeamModal$.asObservable();\n\n private readonly _showRemoveMemberModal$ = new BehaviorSubject<boolean>(false);\n public readonly showRemoveMemberModal$ = this._showRemoveMemberModal$.asObservable();\n\n private readonly _memberToRemove$ = new BehaviorSubject<TeamUserResponseDto | null>(null);\n public readonly memberToRemove$ = this._memberToRemove$.asObservable();\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly teamsApiService: TeamsApiService,\n private readonly pageTitleService: PageTitleService,\n private readonly router: Router\n ) {}\n\n public setRoute(route: ActivatedRoute): void {\n this._routeSubject$.next(route);\n\n this._subscriptions.add(\n this.teamKey$\n .pipe(\n switchMap(key =>\n this._reload$.pipe(\n tap(() => this._loadingTeam$.next(true)),\n switchMap(() => this.teamsApiService.getTeam(key))\n )\n ),\n tap(team => {\n this._team$.next(team);\n this.pageTitleService.setCustomPageTitle(team.title);\n this._loadingTeam$.next(false);\n })\n )\n .subscribe()\n );\n\n this._subscriptions.add(\n this.teamKey$\n .pipe(\n switchMap(key =>\n combineLatest([this._reloadMembers$, this._membersPaginationParams$]).pipe(\n tap(() => this._loadingMembers$.next(true)),\n switchMap(([_, params]) =>\n this.teamsApiService.getTeamUsers(key, {\n page: params.page - 1,\n size: params.size,\n })\n )\n )\n ),\n tap(page => {\n this.membersPagination$.next({\n ...this.membersPagination$.getValue(),\n collectionSize: page.totalElements,\n });\n this._members$.next(page.content);\n this._loadingMembers$.next(false);\n })\n )\n .subscribe()\n );\n }\n\n public reload(): void {\n this._reload$.next(null);\n }\n\n public reloadMembers(): void {\n this._reloadMembers$.next(null);\n }\n\n public showEditTeamModal(): void {\n this._showEditTeamModal$.next(true);\n }\n\n public hideEditTeamModal(): void {\n this._showEditTeamModal$.next(false);\n }\n\n public showDeleteTeamModal(): void {\n this._showDeleteTeamModal$.next(true);\n }\n\n public hideDeleteTeamModal(): void {\n this._showDeleteTeamModal$.next(false);\n }\n\n public showRemoveMemberConfirmation(member: TeamUserResponseDto): void {\n this._memberToRemove$.next(member);\n this._showRemoveMemberModal$.next(true);\n }\n\n public hideRemoveMemberModal(): void {\n this._showRemoveMemberModal$.next(false);\n this._memberToRemove$.next(null);\n }\n\n public navigateToTeamsList(): void {\n this.router.navigate(['/teams']);\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './teams-api.service';\nexport * from './teams.service';\nexport * from './team-detail.service';\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule, InputModule, LayerModule, ModalModule} from 'carbon-components-angular';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {AutoKeyInputComponent, runAfterCarbonModalClosed, ValtimoCdsModalDirective} from '@valtimo/components';\nimport {TeamsApiService, TeamsService} from '../../services';\nimport {catchError, map, of, Subscription} from 'rxjs';\nimport {ModalMode, TeamListResponseDto} from '@valtimo/shared';\n\n@Component({\n standalone: true,\n selector: 'valtimo-teams-create-edit-modal',\n templateUrl: './teams-create-edit-modal.component.html',\n styleUrls: ['./teams-create-edit-modal.component.scss'],\n imports: [\n CommonModule,\n ModalModule,\n ButtonModule,\n InputModule,\n LayerModule,\n ReactiveFormsModule,\n TranslatePipe,\n ValtimoCdsModalDirective,\n AutoKeyInputComponent,\n ],\n})\nexport class TeamsCreateEditModalComponent implements OnDestroy {\n public readonly showModal$ = this.teamsService.showCreateEditModal$;\n\n public editingTeam: TeamListResponseDto | null = null;\n\n public formGroup: FormGroup = this.fb.group({\n title: this.fb.control('', Validators.required),\n key: this.fb.control('', Validators.required),\n });\n\n public get title(): FormControl<string> {\n return this.formGroup.get('title') as FormControl<string>;\n }\n\n public get key(): FormControl<string> {\n return this.formGroup.get('key') as FormControl<string>;\n }\n\n public get isEditMode(): boolean {\n return this.editingTeam !== null;\n }\n\n public get modalMode(): ModalMode {\n return this.isEditMode ? 'edit' : 'add';\n }\n\n public usedKeys: string[] = [];\n\n private readonly _subscriptions = new Subscription();\n\n constructor(\n private readonly teamsApiService: TeamsApiService,\n private readonly teamsService: TeamsService,\n private readonly fb: FormBuilder\n ) {\n this._subscriptions.add(\n this.teamsService.editingTeam$.subscribe(team => {\n this.editingTeam = team;\n if (team) {\n this.formGroup.patchValue({title: team.title, key: team.key});\n }\n })\n );\n\n this._subscriptions.add(\n this.teamsService.loadedTeams$\n .pipe(map(teams => teams.map(t => t.key)))\n .subscribe(keys => (this.usedKeys = keys))\n );\n }\n\n public ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n }\n\n public onCloseModal(): void {\n this.teamsService.hideCreateEditModal();\n this.resetForm();\n }\n\n public onSave(): void {\n this.formGroup.disable();\n\n const titleValue = this.title.value;\n const keyValue = this.key.value;\n\n const request$ = this.isEditMode\n ? this.teamsApiService.updateTeam(this.editingTeam!.key, {\n key: this.editingTeam!.key,\n title: titleValue,\n })\n : this.teamsApiService.createTeam({\n key: keyValue,\n title: titleValue,\n });\n\n request$\n .pipe(\n catchError(() => {\n this.formGroup.enable();\n return of(null);\n })\n )\n .subscribe(result => {\n if (result) {\n this.teamsService.hideCreateEditModal();\n this.resetForm();\n this.teamsService.reload();\n }\n });\n }\n\n private resetForm(): void {\n runAfterCarbonModalClosed(() => {\n this.formGroup.reset();\n this.formGroup.enable();\n this.editingTeam = null;\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{showModal: showModal$ | async} as obs\"\n [open]=\"obs.showModal\"\n showFooter=\"true\"\n valtimoCdsModal\n (close)=\"onCloseModal()\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{\n (isEditMode ? 'teams.createEditModal.editTitle' : 'teams.createEditModal.createTitle')\n | translate\n }}\n </h3>\n <p cdsModalHeaderDescription *ngIf=\"!isEditMode\">\n {{ 'teams.createEditModal.createDescription' | translate }}\n </p>\n </cds-modal-header>\n\n <form\n [formGroup]=\"formGroup\"\n cdsModalContent\n class=\"valtimo-teams-create__content\"\n [cdsLayer]=\"1\"\n >\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"formGroup.disabled\" [invalid]=\"title.touched && title.invalid\">\n {{ 'teams.createEditModal.teamName' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'teams.createEditModal.teamNamePlaceholder' | translate }}\"\n />\n </cds-label>\n </div>\n\n <valtimo-auto-key-input\n [mode]=\"modalMode\"\n [usedKeys]=\"usedKeys\"\n [sourceText]=\"title.value\"\n formControlName=\"key\"\n placeholderTranslationKey=\"interface.key\"\n >\n </valtimo-auto-key-input>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onCloseModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"formGroup.invalid || formGroup.disabled\"\n (click)=\"onSave()\"\n >\n {{ (isEditMode ? 'teams.createEditModal.save' : 'teams.createEditModal.create') | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {PermissionRequest} from '@valtimo/access-control';\n\nenum TEAM_PERMISSION_ACTION {\n create = 'create',\n modify = 'modify',\n delete = 'delete',\n assign = 'assign',\n}\n\nenum TEAM_PERMISSION_RESOURCE {\n team = 'com.ritense.team.domain.Team',\n}\n\nenum USER_PERMISSION_ACTION {\n view_list = 'view_list',\n}\n\nenum USER_PERMISSION_RESOURCE {\n user = 'com.ritense.valtimo.contract.authentication.User',\n}\n\nconst CAN_CREATE_TEAM_PERMISSION: PermissionRequest = {\n action: TEAM_PERMISSION_ACTION.create,\n resource: TEAM_PERMISSION_RESOURCE.team,\n};\n\nconst CAN_MODIFY_TEAM_PERMISSION: PermissionRequest = {\n action: TEAM_PERMISSION_ACTION.modify,\n resource: TEAM_PERMISSION_RESOURCE.team,\n};\n\nconst CAN_DELETE_TEAM_PERMISSION: PermissionRequest = {\n action: TEAM_PERMISSION_ACTION.delete,\n resource: TEAM_PERMISSION_RESOURCE.team,\n};\n\nconst CAN_ASSIGN_TEAM_PERMISSION: PermissionRequest = {\n action: TEAM_PERMISSION_ACTION.assign,\n resource: TEAM_PERMISSION_RESOURCE.team,\n};\n\nconst CAN_VIEW_USERS_PERMISSION: PermissionRequest = {\n action: USER_PERMISSION_ACTION.view_list,\n resource: USER_PERMISSION_RESOURCE.user,\n};\n\nexport {\n TEAM_PERMISSION_ACTION,\n TEAM_PERMISSION_RESOURCE,\n USER_PERMISSION_ACTION,\n USER_PERMISSION_RESOURCE,\n CAN_CREATE_TEAM_PERMISSION,\n CAN_MODIFY_TEAM_PERMISSION,\n CAN_DELETE_TEAM_PERMISSION,\n CAN_ASSIGN_TEAM_PERMISSION,\n CAN_VIEW_USERS_PERMISSION,\n};\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './team.permissions';\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, signal} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n DEFAULT_PAGINATION,\n Pagination,\n ViewType,\n} from '@valtimo/components';\nimport {PermissionService} from '@valtimo/access-control';\nimport {TeamsApiService, TeamsService} from '../../services';\nimport {BehaviorSubject, combineLatest, distinctUntilChanged, map, Subscription, switchMap, tap} from 'rxjs';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {TeamListResponseDto} from '@valtimo/shared';\nimport {Router} from '@angular/router';\nimport {ButtonModule, IconModule} from 'carbon-components-angular';\nimport {TeamsCreateEditModalComponent} from '../teams-create-edit-modal/teams-create-edit-modal.component';\nimport {\n CAN_CREATE_TEAM_PERMISSION,\n CAN_DELETE_TEAM_PERMISSION,\n CAN_MODIFY_TEAM_PERMISSION,\n} from '../../permissions';\n\n@Component({\n standalone: true,\n selector: 'valtimo-teams-list',\n templateUrl: './teams-list.component.html',\n styleUrls: ['./teams-list.component.scss'],\n imports: [\n CommonModule,\n CarbonListModule,\n TranslatePipe,\n ButtonModule,\n IconModule,\n TeamsCreateEditModalComponent,\n ConfirmationModalModule,\n ],\n providers: [TeamsService],\n})\nexport class TeamsListComponent implements OnDestroy {\n public readonly $loading = signal<boolean>(true);\n\n public readonly canCreateTeam$ = this.permissionService.requestPermission(\n CAN_CREATE_TEAM_PERMISSION\n );\n\n private canModify = false;\n private canDelete = false;\n private readonly permissionSubscription = new Subscription();\n\n public readonly ACTION_ITEMS: ActionItem[] = [\n {\n label: 'interface.edit',\n callback: this.onEditTeam.bind(this),\n disabledCallback: () => !this.canModify,\n },\n {\n label: 'interface.delete',\n callback: this.onDeleteTeam.bind(this),\n type: 'danger',\n disabledCallback: () => !this.canDelete,\n },\n ];\n\n public readonly pagination$ = new BehaviorSubject<Pagination>({...DEFAULT_PAGINATION});\n\n private readonly paginationParams$ = this.pagination$.pipe(\n map(p => ({page: p.page, size: p.size})),\n distinctUntilChanged((a, b) => a.page === b.page && a.size === b.size)\n );\n\n public readonly teams$ = combineLatest([this.teamsService.reload$, this.paginationParams$]).pipe(\n tap(() => this.$loading.set(true)),\n switchMap(([_, params]) =>\n this.teamsApiService.getTeams({page: params.page - 1, size: params.size})\n ),\n map(page => {\n this.pagination$.next({\n ...this.pagination$.getValue(),\n collectionSize: page.totalElements,\n });\n return page.content;\n }),\n tap(teams => {\n this.teamsService.setLoadedTeams(teams);\n this.$loading.set(false);\n })\n );\n\n public readonly FIELDS: ColumnConfig[] = [\n {key: 'title', label: 'teams.listColumns.name'},\n {key: 'userCount', label: 'teams.listColumns.members', viewType: ViewType.NUMBER},\n ];\n\n public readonly showDeleteModal$ = this.teamsService.showDeleteModal$;\n public readonly teamToDelete$ = this.teamsService.teamToDelete$;\n\n constructor(\n private readonly teamsApiService: TeamsApiService,\n private readonly teamsService: TeamsService,\n private readonly permissionService: PermissionService,\n private readonly router: Router\n ) {\n this.permissionSubscription.add(\n this.permissionService.requestPermission(CAN_MODIFY_TEAM_PERMISSION)\n .subscribe(canModify => this.canModify = canModify)\n );\n this.permissionSubscription.add(\n this.permissionService.requestPermission(CAN_DELETE_TEAM_PERMISSION)\n .subscribe(canDelete => this.canDelete = canDelete)\n );\n }\n\n public ngOnDestroy(): void {\n this.permissionSubscription.unsubscribe();\n }\n\n public onRowClick(team: TeamListResponseDto): void {\n this.router.navigate(['/teams', team.key]);\n }\n\n public showCreateModal(): void {\n this.teamsService.showCreateModal();\n }\n\n public onEditTeam(team: TeamListResponseDto): void {\n this.teamsService.showEditModal(team);\n }\n\n public onDeleteTeam(team: TeamListResponseDto): void {\n this.teamsService.showDeleteConfirmation(team);\n }\n\n public onDeleteConfirm(team: TeamListResponseDto): void {\n this.teamsApiService.deleteTeam(team.key).subscribe(() => {\n this.teamsService.reload();\n });\n }\n\n public onPaginationClicked(page: number): void {\n this.pagination$.next({...this.pagination$.getValue(), page});\n }\n\n public onPaginationSet(size: number): void {\n const {collectionSize, page} = this.pagination$.getValue();\n const resetPage =\n Math.ceil(+collectionSize / size) <= +page && +collectionSize > 0;\n this.pagination$.next({\n ...this.pagination$.getValue(),\n size,\n ...(resetPage && {page: 1}),\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n teams: teams$ | async,\n pagination: pagination$ | async,\n canCreateTeam: canCreateTeam$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [fields]=\"FIELDS\"\n [items]=\"obs.teams\"\n [loading]=\"$loading()\"\n [actionItems]=\"ACTION_ITEMS\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"teams\"\n (rowClicked)=\"onRowClick($event)\"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n >\n <ng-container carbonToolbarContent [ngTemplateOutlet]=\"teamActions\"></ng-container>\n\n <valtimo-no-results\n [action]=\"teamActions\"\n [description]=\"'teams.noResults.description' | translate\"\n [title]=\"'teams.noResults.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-container>\n\n<ng-template #teamActions>\n <button\n cdsButton=\"primary\"\n [disabled]=\"(canCreateTeam$ | async) === false\"\n (click)=\"showCreateModal()\"\n >\n {{ 'teams.newTeam' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n</ng-template>\n\n<valtimo-teams-create-edit-modal></valtimo-teams-create-edit-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"teams.deleteModal.content\"\n [outputOnConfirm]=\"teamToDelete$ | async\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"teams.deleteModal.title\"\n (confirmEvent)=\"onDeleteConfirm($event)\"\n></valtimo-confirmation-modal>\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ButtonModule, InputModule, LayerModule, ModalModule} from 'carbon-components-angular';\nimport {\n FormBuilder,\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n Validators,\n} from '@angular/forms';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {runAfterCarbonModalClosed, ValtimoCdsModalDirective} from '@valtimo/components';\nimport {TeamsApiService, TeamDetailService} from '../../services';\nimport {catchError, of, Subscription} from 'rxjs';\n\n@Component({\n standalone: true,\n selector: 'valtimo-team-detail-edit-modal',\n templateUrl: './team-detail-edit-modal.component.html',\n styleUrls: ['./team-detail-edit-modal.component.scss'],\n imports: [\n CommonModule,\n ModalModule,\n ButtonModule,\n InputModule,\n LayerModule,\n ReactiveFormsModule,\n TranslatePipe,\n ValtimoCdsModalDirective,\n ],\n})\nexport class TeamDetailEditModalComponent implements OnDestroy {\n public readonly showModal$ = this.teamDetailService.showEditTeamModal$;\n\n public formGroup: FormGroup = this.fb.group({\n title: this.fb.control('', Validators.required),\n });\n\n public get title(): FormControl<string> {\n return this.formGroup.get('title') as FormControl<string>;\n }\n\n private readonly _teamSubscription: Subscription;\n\n constructor(\n private readonly teamsApiService: TeamsApiService,\n private readonly teamDetailService: TeamDetailService,\n private readonly fb: FormBuilder\n ) {\n this._teamSubscription = this.teamDetailService.showEditTeamModal$.subscribe(show => {\n if (show) {\n this.teamDetailService.team$.subscribe(team => {\n this.formGroup.patchValue({title: team.title});\n });\n }\n });\n }\n\n public ngOnDestroy(): void {\n this._teamSubscription.unsubscribe();\n }\n\n public onCloseModal(): void {\n this.teamDetailService.hideEditTeamModal();\n this.resetForm();\n }\n\n public onSave(): void {\n this.formGroup.disable();\n\n this.teamsApiService\n .updateTeam(this.teamDetailService.teamKey, {\n key: this.teamDetailService.teamKey,\n title: this.title.value,\n })\n .pipe(\n catchError(() => {\n this.formGroup.enable();\n return of(null);\n })\n )\n .subscribe(result => {\n if (result) {\n this.teamDetailService.hideEditTeamModal();\n this.resetForm();\n this.teamDetailService.reload();\n }\n });\n }\n\n private resetForm(): void {\n runAfterCarbonModalClosed(() => {\n this.formGroup.reset();\n this.formGroup.enable();\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{showModal: showModal$ | async} as obs\"\n [open]=\"obs.showModal\"\n showFooter=\"true\"\n valtimoCdsModal\n (close)=\"onCloseModal()\"\n>\n <cds-modal-header showCloseButton=\"true\" (closeSelect)=\"onCloseModal()\">\n <h3 cdsModalHeaderHeading>\n {{ 'teams.createEditModal.editTitle' | translate }}\n </h3>\n </cds-modal-header>\n\n <form\n [formGroup]=\"formGroup\"\n cdsModalContent\n class=\"valtimo-team-edit__content\"\n [cdsLayer]=\"1\"\n >\n <div class=\"cds--text-input__field-wrapper\">\n <cds-label [disabled]=\"formGroup.disabled\" [invalid]=\"title.touched && title.invalid\">\n {{ 'teams.createEditModal.teamName' | translate }}\n\n <input\n formControlName=\"title\"\n cdsText\n placeholder=\"{{ 'teams.createEditModal.teamNamePlaceholder' | translate }}\"\n />\n </cds-label>\n </div>\n </form>\n\n <cds-modal-footer>\n <button cdsButton=\"secondary\" (click)=\"onCloseModal()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button\n cdsButton=\"primary\"\n [disabled]=\"formGroup.invalid || formGroup.disabled\"\n (click)=\"onSave()\"\n >\n {{ 'teams.createEditModal.save' | translate }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {\n ButtonModule,\n ComboBoxModule,\n DialogModule,\n IconModule,\n IconService,\n LayerModule,\n ListItem,\n} from 'carbon-components-angular';\nimport {OverflowMenuComponent} from '@valtimo/components';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {Add16, UserFollow16} from '@carbon/icons';\nimport {BehaviorSubject, catchError, of, Subscription} from 'rxjs';\nimport {map} from 'rxjs/operators';\nimport {TeamsApiService, TeamDetailService} from '../../services';\n\n@Component({\n standalone: true,\n selector: 'valtimo-team-detail-add-member',\n templateUrl: './team-detail-add-member-modal.component.html',\n styleUrls: ['./team-detail-add-member-modal.component.scss'],\n imports: [\n CommonModule,\n ButtonModule,\n ComboBoxModule,\n DialogModule,\n IconModule,\n LayerModule,\n TranslateModule,\n OverflowMenuComponent,\n ],\n})\nexport class TeamDetailAddMemberComponent implements OnInit, OnDestroy {\n @Input() public disabled = false;\n\n public readonly availableUsers$ = new BehaviorSubject<ListItem[]>([]);\n public readonly noUsersAvailable$ = this.availableUsers$.pipe(map(users => users.length === 0));\n public readonly selectedUsername$ = new BehaviorSubject<string | null>(null);\n public readonly saving$ = new BehaviorSubject<boolean>(false);\n public readonly showComboBox$ = new BehaviorSubject<boolean>(true);\n\n private readonly subscription = new Subscription();\n\n constructor(\n private readonly teamsApiService: TeamsApiService,\n private readonly teamDetailService: TeamDetailService,\n private readonly iconService: IconService\n ) {\n this.iconService.registerAll([Add16, UserFollow16]);\n }\n\n public ngOnInit(): void {\n this.fetchCandidateUsers();\n }\n\n public ngOnDestroy(): void {\n this.subscription.unsubscribe();\n }\n\n public onUserSelect(event: ListItem): void {\n if (!event?.id) return;\n this.selectedUsername$.next(event.id as string);\n }\n\n public onComboBoxClear(): void {\n this.selectedUsername$.next(null);\n }\n\n public onAddToTeam(): void {\n const username = this.selectedUsername$.getValue();\n if (!username) return;\n\n this.saving$.next(true);\n\n this.teamsApiService\n .addTeamUser(this.teamDetailService.teamKey, {username})\n .pipe(\n catchError(() => {\n this.saving$.next(false);\n return of(null);\n })\n )\n .subscribe(result => {\n if (result) {\n this.saving$.next(false);\n this.selectedUsername$.next(null);\n this.resetComboBox();\n this.teamDetailService.reloadMembers();\n this.fetchCandidateUsers();\n }\n });\n }\n\n public onOpenChange(open?: boolean): void {\n if (open) {\n this.fetchCandidateUsers();\n this.selectedUsername$.next(null);\n this.resetComboBox();\n }\n }\n\n private fetchCandidateUsers(): void {\n this.subscription.add(\n this.teamsApiService\n .getCandidateUsers(this.teamDetailService.teamKey)\n .pipe(\n map(users =>\n users.map(user => ({\n content: this.getUserLabel(user),\n id: (user as any).username ?? user.id,\n selected: false,\n }))\n )\n )\n .subscribe(items => this.availableUsers$.next(items))\n );\n }\n\n private getUserLabel(user: any): string {\n const firstName = user.firstName?.trim();\n const lastName = user.lastName?.trim();\n if (firstName && lastName) return `${firstName} ${lastName}`;\n if (firstName) return firstName;\n if (lastName) return lastName;\n if (user.email) return user.email;\n return user.username ?? user.id;\n }\n\n private resetComboBox(): void {\n this.showComboBox$.next(false);\n setTimeout(() => this.showComboBox$.next(true));\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-overflow-menu placement=\"bottom-end\" [closeOnSelect]=\"false\" (openChange)=\"onOpenChange($event)\">\n <button overflowTrigger cdsButton=\"primary\" [disabled]=\"disabled\" class=\"add-member-button\">\n {{ 'teams.detail.addMember' | translate }}\n\n <svg cdsIcon=\"add\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n\n <section\n overflowPane\n class=\"valtimo-team-add-member__pane\"\n (click)=\"$event.stopImmediatePropagation()\"\n *ngIf=\"{\n users: availableUsers$ | async,\n noUsersAvailable: noUsersAvailable$ | async,\n selectedUsername: selectedUsername$ | async,\n saving: saving$ | async,\n showComboBox: showComboBox$ | async,\n } as obs\"\n >\n <cds-combo-box\n *ngIf=\"obs.showComboBox\"\n [label]=\"'teams.detail.addMemberModal.selectMember' | translate\"\n [placeholder]=\"\n obs.noUsersAvailable\n ? ('teams.detail.addMemberModal.noUsersAvailable' | translate)\n : ('teams.detail.addMemberModal.selectMemberPlaceholder' | translate)\n \"\n [appendInline]=\"true\"\n [dropUp]=\"false\"\n [cdsLayer]=\"1\"\n [items]=\"obs.users || []\"\n [disabled]=\"obs.saving || obs.noUsersAvailable\"\n itemValueKey=\"id\"\n (selected)=\"onUserSelect($event)\"\n (clear)=\"onComboBoxClear()\"\n >\n <cds-dropdown-list onclick=\"event.stopPropagation()\"></cds-dropdown-list>\n </cds-combo-box>\n\n <button\n cdsButton=\"primary\"\n [cdsLayer]=\"1\"\n class=\"add-to-team-button\"\n [disabled]=\"!obs.selectedUsername || obs.saving || obs.noUsersAvailable\"\n (click)=\"onAddToTeam()\"\n >\n {{ 'teams.detail.addMemberModal.addToTeam' | translate }}\n <svg cdsIcon=\"user--follow\" size=\"16\" class=\"cds--btn__icon\"></svg>\n </button>\n </section>\n</v-overflow-menu>\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {Component, OnDestroy, OnInit, signal} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {ActivatedRoute} from '@angular/router';\nimport {TranslatePipe} from '@ngx-translate/core';\nimport {\n ActionItem,\n CarbonListModule,\n ColumnConfig,\n ConfirmationModalModule,\n OverflowMenuComponent,\n OverflowMenuOptionComponent,\n PageTitleService,\n RenderInPageHeaderDirective,\n} from '@valtimo/components';\nimport {PermissionService} from '@valtimo/access-control';\nimport {TeamUserResponseDto} from '@valtimo/shared';\nimport {ButtonModule, DialogModule, IconModule} from 'carbon-components-angular';\nimport {combineLatest, map, Subscription, switchMap} from 'rxjs';\nimport {TeamsApiService, TeamDetailService} from '../../services';\nimport {TeamDetailEditModalComponent} from '../team-detail-edit-modal/team-detail-edit-modal.component';\nimport {TeamDetailAddMemberComponent} from '../team-detail-add-member-modal/team-detail-add-member-modal.component';\nimport {\n CAN_ASSIGN_TEAM_PERMISSION,\n CAN_DELETE_TEAM_PERMISSION,\n CAN_MODIFY_TEAM_PERMISSION,\n CAN_VIEW_USERS_PERMISSION,\n TEAM_PERMISSION_RESOURCE,\n} from '../../permissions';\n\n@Component({\n standalone: true,\n selector: 'valtimo-team-detail',\n templateUrl: './team-detail.component.html',\n styleUrls: ['./team-detail.component.scss'],\n imports: [\n CommonModule,\n CarbonListModule,\n TranslatePipe,\n ButtonModule,\n IconModule,\n DialogModule,\n RenderInPageHeaderDirective,\n OverflowMenuComponent,\n OverflowMenuOptionComponent,\n ConfirmationModalModule,\n TeamDetailEditModalComponent,\n TeamDetailAddMemberComponent,\n ],\n providers: [TeamDetailService],\n})\nexport class TeamDetailComponent implements OnInit, OnDestroy {\n public readonly $loadingMembers = signal<boolean>(true);\n\n public readonly members$ = this.teamDetailService.members$;\n public readonly membersPagination$ = this.teamDetailService.membersPagination$;\n public readonly showRemoveMemberModal$ = this.teamDetailService.showRemoveMemberModal$;\n public readonly memberToRemove$ = this.teamDetailService.memberToRemove$;\n public readonly showDeleteTeamModal$ = this.teamDetailService.showDeleteTeamModal$;\n public readonly team$ = this.teamDetailService.team$;\n\n private readonly teamContext$ = this.teamDetailService.teamKey$.pipe(\n map(teamKey => ({\n identifier: teamKey,\n resource: TEAM_PERMISSION_RESOURCE.team,\n }))\n );\n\n public readonly canModifyTeam$ = this.teamContext$.pipe(\n switchMap(context => this.permissionService.requestPermission(CAN_MODIFY_TEAM_PERMISSION, context))\n );\n\n public readonly canDeleteTeam$ = this.teamContext$.pipe(\n switchMap(context => this.permissionService.requestPermission(CAN_DELETE_TEAM_PERMISSION, context))\n );\n\n public readonly canViewUsers$ = this.permissionService.requestPermission(\n CAN_VIEW_USERS_PERMISSION\n );\n\n private canAssign = false;\n private readonly permissionSubscription = new Subscription();\n\n public readonly canAddMember$ = combineLatest([\n this.teamContext$.pipe(\n switchMap(context => this.permissionService.requestPermission(CAN_ASSIGN_TEAM_PERMISSION, context))\n ),\n this.canViewUsers$,\n ]).pipe(\n map(([canAssign, canViewUsers]) => canAssign && canViewUsers)\n );\n\n public readonly MEMBER_ACTION_ITEMS: ActionItem[] = [\n {\n label: 'teams.detail.removeMember',\n callback: this.onRemoveMember.bind(this),\n type: 'danger',\n disabledCallback: () => !this.canAssign,\n },\n ];\n\n public readonly MEMBER_FIELDS: ColumnConfig[] = [\n {key: 'fullName', label: 'teams.detail.memberColumns.name'},\n {key: 'email', label: 'teams.detail.memberColumns.email'},\n ];\n\n constructor(\n private readonly route: ActivatedRoute,\n private readonly teamDetailService: TeamDetailService,\n private readonly teamsApiService: TeamsApiService,\n private readonly pageTitleService: PageTitleService,\n private readonly permissionService: PermissionService\n ) {\n this.teamDetailService.setRoute(this.route);\n\n this.permissionSubscription.add(\n this.teamDetailService.loadingMembers$.subscribe(loading => {\n this.$loadingMembers.set(loading);\n })\n );\n\n this.permissionSubscription.add(\n this.teamContext$.pipe(\n switchMap(context => this.permissionService.requestPermission(CAN_ASSIGN_TEAM_PERMISSION, context))\n ).subscribe(canAssign => this.canAssign = canAssign)\n );\n }\n\n public ngOnInit(): void {\n this.pageTitleService.disableReset();\n }\n\n public ngOnDestroy(): void {\n this.pageTitleService.enableReset();\n this.permissionSubscription.unsubscribe();\n }\n\n public onEditTeam(): void {\n this.teamDetailService.showEditTeamModal();\n }\n\n public onDeleteTeam(): void {\n this.teamDetailService.showDeleteTeamModal();\n }\n\n public onDeleteTeamConfirm(): void {\n this.permissionSubscription.add(\n this.teamsApiService.deleteTeam(this.teamDetailService.teamKey).subscribe(() => {\n this.teamDetailService.navigateToTeamsList();\n })\n );\n }\n\n public onRemoveMember(member: TeamUserResponseDto): void {\n this.teamDetailService.showRemoveMemberConfirmation(member);\n }\n\n public onRemoveMemberConfirm(member: TeamUserResponseDto): void {\n this.permissionSubscription.add(\n this.teamsApiService\n .removeTeamUser(this.teamDetailService.teamKey, member.username)\n .subscribe(() => {\n this.teamDetailService.reloadMembers();\n })\n );\n }\n\n public onPaginationClicked(page: number): void {\n this.teamDetailService.membersPagination$.next({\n ...this.teamDetailService.membersPagination$.getValue(),\n page,\n });\n }\n\n public onPaginationSet(size: number): void {\n const {collectionSize, page} = this.teamDetailService.membersPagination$.getValue();\n const resetPage =\n Math.ceil(+collectionSize / size) <= +page && +collectionSize > 0;\n this.teamDetailService.membersPagination$.next({\n ...this.teamDetailService.membersPagination$.getValue(),\n size,\n ...(resetPage && {page: 1}),\n });\n }\n}\n","<!--\n ~ Copyright 2015-2026 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n members: members$ | async,\n pagination: membersPagination$ | async,\n canAddMember: canAddMember$ | async,\n } as obs\"\n>\n <valtimo-carbon-list\n [fields]=\"MEMBER_FIELDS\"\n [items]=\"obs.members\"\n [loading]=\"$loadingMembers()\"\n [actionItems]=\"MEMBER_ACTION_ITEMS\"\n [pagination]=\"obs.pagination\"\n paginationIdentifier=\"teamMembers\"\n (paginationClicked)=\"onPaginationClicked($event)\"\n (paginationSet)=\"onPaginationSet($event)\"\n >\n <div carbonToolbarContent>\n <valtimo-team-detail-add-member\n [disabled]=\"obs.canAddMember === false\"\n ></valtimo-team-detail-add-member>\n </div>\n\n <valtimo-no-results\n [description]=\"'teams.detail.noMembers.description' | translate\"\n [title]=\"'teams.detail.noMembers.title' | translate\"\n ></valtimo-no-results>\n </valtimo-carbon-list>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div\n class=\"team-detail__header\"\n *ngIf=\"{\n canModify: canModifyTeam$ | async,\n canDelete: canDeleteTeam$ | async,\n } as perms\"\n >\n <v-overflow-menu\n class=\"overflow-button\"\n [menuWidth]=\"250\"\n placement=\"bottom-end\"\n >\n <button overflowTrigger cdsButton=\"tertiary\">\n {{ 'teams.detail.more' | translate }}\n <svg class=\"cds--btn__icon\" cdsIcon=\"overflow-menu--vertical\" size=\"16\"></svg>\n </button>\n\n <v-overflow-menu-option (selected)=\"onEditTeam()\" [disabled]=\"!perms.canModify\">\n {{ 'teams.detail.editTeam' | translate }}\n </v-overflow-menu-option>\n\n <v-overflow-menu-option\n (selected)=\"onDeleteTeam()\"\n type=\"danger\"\n [disabled]=\"!perms.canDelete\"\n >\n {{ 'teams.detail.deleteTeam' | translate }}\n </v-overflow-menu-option>\n </v-overflow-menu>\n </div>\n </ng-template>\n</ng-container>\n\n<valtimo-team-detail-edit-modal></valtimo-team-detail-edit-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"teams.detail.removeMember\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"teams.detail.removeMemberModal.content\"\n [outputOnConfirm]=\"memberToRemove$ | async\"\n [showModalSubject$]=\"showRemoveMemberModal$\"\n titleTranslationKey=\"teams.detail.removeMemberModal.title\"\n (confirmEvent)=\"onRemoveMemberConfirm($event)\"\n></valtimo-confirmation-modal>\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"teams.deleteModal.content\"\n [outputOnConfirm]=\"team$ | async\"\n [showModalSubject$]=\"showDeleteTeamModal$\"\n titleTranslationKey=\"teams.deleteModal.title\"\n (confirmEvent)=\"onDeleteTeamConfirm()\"\n></valtimo-confirmation-modal>\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {CommonModule} from '@angular/common';\nimport {AuthGuardService} from '@valtimo/security';\nimport {ROLE_USER} from '@valtimo/shared';\nimport {TeamsListComponent} from './components/teams-list/teams-list.component';\nimport {TeamDetailComponent} from './components/team-detail/team-detail.component';\n\nconst routes: Routes = [\n {\n path: 'teams',\n component: TeamsListComponent,\n canActivate: [AuthGuardService],\n data: {title: 'teams.title', roles: [ROLE_USER]},\n },\n {\n path: 'teams/:teamKey',\n component: TeamDetailComponent,\n canActivate: [AuthGuardService],\n data: {title: 'teams.detail.title', roles: [ROLE_USER], customPageTitle: true},\n },\n];\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TeamsRouting {}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {NgModule} from '@angular/core';\nimport {TeamsListComponent} from './components/teams-list/teams-list.component';\nimport {TeamsRouting} from './teams-routing';\n\n@NgModule({\n declarations: [],\n imports: [TeamsRouting, TeamsListComponent],\n providers: [],\n})\nexport class TeamsModule {}\n","/*\n * Copyright 2015-2026 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/*\n * Public API Surface of teams\n */\n\nexport * from './lib/teams.module';\nexport * from './lib/services';\nexport * from './lib/permissions';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TeamsApiService","i2","i3","i1.TeamsService","i4","i5","i6","i1.TeamDetailService","map","i1","i2.TeamDetailService","i2.TeamsApiService"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@valtimo/teams" />
5
+ export * from './public-api';
6
+ //# sourceMappingURL=valtimo-teams.d.ts.map
@@ -0,0 +1,43 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { ActivatedRoute } from '@angular/router';
3
+ import { ActionItem, ColumnConfig, PageTitleService } from '@valtimo/components';
4
+ import { PermissionService } from '@valtimo/access-control';
5
+ import { TeamUserResponseDto } from '@valtimo/shared';
6
+ import { TeamsApiService, TeamDetailService } from '../../services';
7
+ import * as i0 from "@angular/core";
8
+ export declare class TeamDetailComponent implements OnInit, OnDestroy {
9
+ private readonly route;
10
+ private readonly teamDetailService;
11
+ private readonly teamsApiService;
12
+ private readonly pageTitleService;
13
+ private readonly permissionService;
14
+ readonly $loadingMembers: import("@angular/core").WritableSignal<boolean>;
15
+ readonly members$: import("rxjs").Observable<TeamUserResponseDto[]>;
16
+ readonly membersPagination$: import("rxjs").BehaviorSubject<import("@valtimo/components").Pagination>;
17
+ readonly showRemoveMemberModal$: import("rxjs").Observable<boolean>;
18
+ readonly memberToRemove$: import("rxjs").Observable<TeamUserResponseDto>;
19
+ readonly showDeleteTeamModal$: import("rxjs").Observable<boolean>;
20
+ readonly team$: import("rxjs").Observable<import("@valtimo/shared").TeamResponseDto>;
21
+ private readonly teamContext$;
22
+ readonly canModifyTeam$: import("rxjs").Observable<boolean>;
23
+ readonly canDeleteTeam$: import("rxjs").Observable<boolean>;
24
+ readonly canViewUsers$: import("rxjs").Observable<boolean>;
25
+ private canAssign;
26
+ private readonly permissionSubscription;
27
+ readonly canAddMember$: import("rxjs").Observable<boolean>;
28
+ readonly MEMBER_ACTION_ITEMS: ActionItem[];
29
+ readonly MEMBER_FIELDS: ColumnConfig[];
30
+ constructor(route: ActivatedRoute, teamDetailService: TeamDetailService, teamsApiService: TeamsApiService, pageTitleService: PageTitleService, permissionService: PermissionService);
31
+ ngOnInit(): void;
32
+ ngOnDestroy(): void;
33
+ onEditTeam(): void;
34
+ onDeleteTeam(): void;
35
+ onDeleteTeamConfirm(): void;
36
+ onRemoveMember(member: TeamUserResponseDto): void;
37
+ onRemoveMemberConfirm(member: TeamUserResponseDto): void;
38
+ onPaginationClicked(page: number): void;
39
+ onPaginationSet(size: number): void;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<TeamDetailComponent, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<TeamDetailComponent, "valtimo-team-detail", never, {}, {}, never, never, true, never>;
42
+ }
43
+ //# sourceMappingURL=team-detail.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-detail.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/teams/src/lib/components/team-detail/team-detail.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,SAAS,EAAE,MAAM,EAAS,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAC,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACL,UAAU,EAEV,YAAY,EAIZ,gBAAgB,EAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;;AAWlE,qBAqBa,mBAAoB,YAAW,MAAM,EAAE,SAAS;IAwDzD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IA3DpC,SAAgB,eAAe,kDAAyB;IAExD,SAAgB,QAAQ,mDAAmC;IAC3D,SAAgB,kBAAkB,2EAA6C;IAC/E,SAAgB,sBAAsB,qCAAiD;IACvF,SAAgB,eAAe,iDAA0C;IACzE,SAAgB,oBAAoB,qCAA+C;IACnF,SAAgB,KAAK,uEAAgC;IAErD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAK3B;IAEF,SAAgB,cAAc,qCAE5B;IAEF,SAAgB,cAAc,qCAE5B;IAEF,SAAgB,aAAa,qCAE3B;IAEF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;IAE7D,SAAgB,aAAa,qCAO3B;IAEF,SAAgB,mBAAmB,EAAE,UAAU,EAAE,CAO/C;IAEF,SAAgB,aAAa,EAAE,YAAY,EAAE,CAG3C;gBAGiB,KAAK,EAAE,cAAc,EACrB,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB;IAiBhD,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;IAKnB,UAAU,IAAI,IAAI;IAIlB,YAAY,IAAI,IAAI;IAIpB,mBAAmB,IAAI,IAAI;IAQ3B,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAIjD,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAUxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAOvC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;yCA3H/B,mBAAmB;2CAAnB,mBAAmB;CAqI/B"}
@@ -0,0 +1,30 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { IconService, ListItem } from 'carbon-components-angular';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import { TeamsApiService, TeamDetailService } from '../../services';
5
+ import * as i0 from "@angular/core";
6
+ export declare class TeamDetailAddMemberComponent implements OnInit, OnDestroy {
7
+ private readonly teamsApiService;
8
+ private readonly teamDetailService;
9
+ private readonly iconService;
10
+ disabled: boolean;
11
+ readonly availableUsers$: BehaviorSubject<ListItem[]>;
12
+ readonly noUsersAvailable$: import("rxjs").Observable<boolean>;
13
+ readonly selectedUsername$: BehaviorSubject<string>;
14
+ readonly saving$: BehaviorSubject<boolean>;
15
+ readonly showComboBox$: BehaviorSubject<boolean>;
16
+ private readonly subscription;
17
+ constructor(teamsApiService: TeamsApiService, teamDetailService: TeamDetailService, iconService: IconService);
18
+ ngOnInit(): void;
19
+ ngOnDestroy(): void;
20
+ onUserSelect(event: ListItem): void;
21
+ onComboBoxClear(): void;
22
+ onAddToTeam(): void;
23
+ onOpenChange(open?: boolean): void;
24
+ private fetchCandidateUsers;
25
+ private getUserLabel;
26
+ private resetComboBox;
27
+ static ɵfac: i0.ɵɵFactoryDeclaration<TeamDetailAddMemberComponent, never>;
28
+ static ɵcmp: i0.ɵɵComponentDeclaration<TeamDetailAddMemberComponent, "valtimo-team-detail-add-member", never, { "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
29
+ }
30
+ //# sourceMappingURL=team-detail-add-member-modal.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-detail-add-member-modal.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/teams/src/lib/components/team-detail-add-member-modal/team-detail-add-member-modal.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAmB,SAAS,EAAE,MAAM,EAAC,MAAM,eAAe,CAAC;AAElE,OAAO,EAKL,WAAW,EAEX,QAAQ,EACT,MAAM,2BAA2B,CAAC;AAInC,OAAO,EAAC,eAAe,EAA+B,MAAM,MAAM,CAAC;AAEnE,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;;AAElE,qBAgBa,4BAA6B,YAAW,MAAM,EAAE,SAAS;IAYlE,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW;IAbd,QAAQ,UAAS;IAEjC,SAAgB,eAAe,8BAAuC;IACtE,SAAgB,iBAAiB,qCAA+D;IAChG,SAAgB,iBAAiB,0BAA4C;IAC7E,SAAgB,OAAO,2BAAuC;IAC9D,SAAgB,aAAa,2BAAsC;IAEnE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAGhC,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW;IAKpC,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;IAInB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAKnC,eAAe,IAAI,IAAI;IAIvB,WAAW,IAAI,IAAI;IAyBnB,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAQzC,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,aAAa;yCAhGV,4BAA4B;2CAA5B,4BAA4B;CAoGxC"}
@@ -0,0 +1,21 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
3
+ import { TeamsApiService, TeamDetailService } from '../../services';
4
+ import * as i0 from "@angular/core";
5
+ export declare class TeamDetailEditModalComponent implements OnDestroy {
6
+ private readonly teamsApiService;
7
+ private readonly teamDetailService;
8
+ private readonly fb;
9
+ readonly showModal$: import("rxjs").Observable<boolean>;
10
+ formGroup: FormGroup;
11
+ get title(): FormControl<string>;
12
+ private readonly _teamSubscription;
13
+ constructor(teamsApiService: TeamsApiService, teamDetailService: TeamDetailService, fb: FormBuilder);
14
+ ngOnDestroy(): void;
15
+ onCloseModal(): void;
16
+ onSave(): void;
17
+ private resetForm;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<TeamDetailEditModalComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<TeamDetailEditModalComponent, "valtimo-team-detail-edit-modal", never, {}, {}, never, never, true, never>;
20
+ }
21
+ //# sourceMappingURL=team-detail-edit-modal.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-detail-edit-modal.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/teams/src/lib/components/team-detail-edit-modal/team-detail-edit-modal.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,SAAS,EAAC,MAAM,eAAe,CAAC;AAGnD,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EAGV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAC,eAAe,EAAE,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;;AAGlE,qBAgBa,4BAA6B,YAAW,SAAS;IAc1D,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE;IAfrB,SAAgB,UAAU,qCAA6C;IAEhE,SAAS,EAAE,SAAS,CAExB;IAEH,IAAW,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,CAEtC;IAED,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAe;gBAG9B,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,EACpC,EAAE,EAAE,WAAW;IAW3B,WAAW,IAAI,IAAI;IAInB,YAAY,IAAI,IAAI;IAKpB,MAAM,IAAI,IAAI;IAuBrB,OAAO,CAAC,SAAS;yCA3DN,4BAA4B;2CAA5B,4BAA4B;CAiExC"}
@@ -0,0 +1,27 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
3
+ import { TeamsApiService, TeamsService } from '../../services';
4
+ import { ModalMode, TeamListResponseDto } from '@valtimo/shared';
5
+ import * as i0 from "@angular/core";
6
+ export declare class TeamsCreateEditModalComponent implements OnDestroy {
7
+ private readonly teamsApiService;
8
+ private readonly teamsService;
9
+ private readonly fb;
10
+ readonly showModal$: import("rxjs").Observable<boolean>;
11
+ editingTeam: TeamListResponseDto | null;
12
+ formGroup: FormGroup;
13
+ get title(): FormControl<string>;
14
+ get key(): FormControl<string>;
15
+ get isEditMode(): boolean;
16
+ get modalMode(): ModalMode;
17
+ usedKeys: string[];
18
+ private readonly _subscriptions;
19
+ constructor(teamsApiService: TeamsApiService, teamsService: TeamsService, fb: FormBuilder);
20
+ ngOnDestroy(): void;
21
+ onCloseModal(): void;
22
+ onSave(): void;
23
+ private resetForm;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<TeamsCreateEditModalComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<TeamsCreateEditModalComponent, "valtimo-teams-create-edit-modal", never, {}, {}, never, never, true, never>;
26
+ }
27
+ //# sourceMappingURL=teams-create-edit-modal.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-create-edit-modal.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/teams/src/lib/components/teams-create-edit-modal/teams-create-edit-modal.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,SAAS,EAAC,MAAM,eAAe,CAAC;AAGnD,OAAO,EACL,WAAW,EACX,WAAW,EACX,SAAS,EAGV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAC,eAAe,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE7D,OAAO,EAAC,SAAS,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;;AAE/D,qBAiBa,6BAA8B,YAAW,SAAS;IA+B3D,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,EAAE;IAhCrB,SAAgB,UAAU,qCAA0C;IAE7D,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAAQ;IAE/C,SAAS,EAAE,SAAS,CAGxB;IAEH,IAAW,KAAK,IAAI,WAAW,CAAC,MAAM,CAAC,CAEtC;IAED,IAAW,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAEpC;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,SAAS,IAAI,SAAS,CAEhC;IAEM,QAAQ,EAAE,MAAM,EAAE,CAAM;IAE/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAGlC,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,EAAE,EAAE,WAAW;IAkB3B,WAAW,IAAI,IAAI;IAInB,YAAY,IAAI,IAAI;IAKpB,MAAM,IAAI,IAAI;IAgCrB,OAAO,CAAC,SAAS;yCA5FN,6BAA6B;2CAA7B,6BAA6B;CAmGzC"}
@@ -0,0 +1,38 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { ActionItem, ColumnConfig, Pagination } from '@valtimo/components';
3
+ import { PermissionService } from '@valtimo/access-control';
4
+ import { TeamsApiService, TeamsService } from '../../services';
5
+ import { BehaviorSubject } from 'rxjs';
6
+ import { TeamListResponseDto } from '@valtimo/shared';
7
+ import { Router } from '@angular/router';
8
+ import * as i0 from "@angular/core";
9
+ export declare class TeamsListComponent implements OnDestroy {
10
+ private readonly teamsApiService;
11
+ private readonly teamsService;
12
+ private readonly permissionService;
13
+ private readonly router;
14
+ readonly $loading: import("@angular/core").WritableSignal<boolean>;
15
+ readonly canCreateTeam$: import("rxjs").Observable<boolean>;
16
+ private canModify;
17
+ private canDelete;
18
+ private readonly permissionSubscription;
19
+ readonly ACTION_ITEMS: ActionItem[];
20
+ readonly pagination$: BehaviorSubject<Pagination>;
21
+ private readonly paginationParams$;
22
+ readonly teams$: import("rxjs").Observable<TeamListResponseDto[]>;
23
+ readonly FIELDS: ColumnConfig[];
24
+ readonly showDeleteModal$: import("rxjs").Observable<boolean>;
25
+ readonly teamToDelete$: import("rxjs").Observable<TeamListResponseDto>;
26
+ constructor(teamsApiService: TeamsApiService, teamsService: TeamsService, permissionService: PermissionService, router: Router);
27
+ ngOnDestroy(): void;
28
+ onRowClick(team: TeamListResponseDto): void;
29
+ showCreateModal(): void;
30
+ onEditTeam(team: TeamListResponseDto): void;
31
+ onDeleteTeam(team: TeamListResponseDto): void;
32
+ onDeleteConfirm(team: TeamListResponseDto): void;
33
+ onPaginationClicked(page: number): void;
34
+ onPaginationSet(size: number): void;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<TeamsListComponent, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<TeamsListComponent, "valtimo-teams-list", never, {}, {}, never, never, true, never>;
37
+ }
38
+ //# sourceMappingURL=teams-list.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-list.component.d.ts","sourceRoot":"","sources":["../../../../../../projects/valtimo/teams/src/lib/components/teams-list/teams-list.component.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,SAAS,EAAS,MAAM,eAAe,CAAC;AAE3D,OAAO,EACL,UAAU,EAEV,YAAY,EAGZ,UAAU,EAEX,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAE,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAC,eAAe,EAAyE,MAAM,MAAM,CAAC;AAE7G,OAAO,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAC,MAAM,EAAC,MAAM,iBAAiB,CAAC;;AASvC,qBAgBa,kBAAmB,YAAW,SAAS;IA2DhD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM;IA7DzB,SAAgB,QAAQ,kDAAyB;IAEjD,SAAgB,cAAc,qCAE5B;IAEF,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAsB;IAE7D,SAAgB,YAAY,EAAE,UAAU,EAAE,CAYxC;IAEF,SAAgB,WAAW,8BAA4D;IAEvF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAGhC;IAEF,SAAgB,MAAM,mDAgBpB;IAEF,SAAgB,MAAM,EAAE,YAAY,EAAE,CAGpC;IAEF,SAAgB,gBAAgB,qCAAsC;IACtE,SAAgB,aAAa,iDAAmC;gBAG7C,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM;IAY1B,WAAW,IAAI,IAAI;IAInB,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAI3C,eAAe,IAAI,IAAI;IAIvB,UAAU,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAI3C,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAI7C,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAMhD,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIvC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;yCAxG/B,kBAAkB;2CAAlB,kBAAkB;CAkH9B"}
@@ -0,0 +1,2 @@
1
+ export * from './team.permissions';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/teams/src/lib/permissions/index.ts"],"names":[],"mappings":"AAgBA,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { PermissionRequest } from '@valtimo/access-control';
2
+ declare enum TEAM_PERMISSION_ACTION {
3
+ create = "create",
4
+ modify = "modify",
5
+ delete = "delete",
6
+ assign = "assign"
7
+ }
8
+ declare enum TEAM_PERMISSION_RESOURCE {
9
+ team = "com.ritense.team.domain.Team"
10
+ }
11
+ declare enum USER_PERMISSION_ACTION {
12
+ view_list = "view_list"
13
+ }
14
+ declare enum USER_PERMISSION_RESOURCE {
15
+ user = "com.ritense.valtimo.contract.authentication.User"
16
+ }
17
+ declare const CAN_CREATE_TEAM_PERMISSION: PermissionRequest;
18
+ declare const CAN_MODIFY_TEAM_PERMISSION: PermissionRequest;
19
+ declare const CAN_DELETE_TEAM_PERMISSION: PermissionRequest;
20
+ declare const CAN_ASSIGN_TEAM_PERMISSION: PermissionRequest;
21
+ declare const CAN_VIEW_USERS_PERMISSION: PermissionRequest;
22
+ export { TEAM_PERMISSION_ACTION, TEAM_PERMISSION_RESOURCE, USER_PERMISSION_ACTION, USER_PERMISSION_RESOURCE, CAN_CREATE_TEAM_PERMISSION, CAN_MODIFY_TEAM_PERMISSION, CAN_DELETE_TEAM_PERMISSION, CAN_ASSIGN_TEAM_PERMISSION, CAN_VIEW_USERS_PERMISSION, };
23
+ //# sourceMappingURL=team.permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.permissions.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/teams/src/lib/permissions/team.permissions.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAE1D,aAAK,sBAAsB;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;CAClB;AAED,aAAK,wBAAwB;IAC3B,IAAI,iCAAiC;CACtC;AAED,aAAK,sBAAsB;IACzB,SAAS,cAAc;CACxB;AAED,aAAK,wBAAwB;IAC3B,IAAI,qDAAqD;CAC1D;AAED,QAAA,MAAM,0BAA0B,EAAE,iBAGjC,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,iBAGjC,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,iBAGjC,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,iBAGjC,CAAC;AAEF,QAAA,MAAM,yBAAyB,EAAE,iBAGhC,CAAC;AAEF,OAAO,EACL,sBAAsB,EACtB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,GAC1B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './teams-api.service';
2
+ export * from './teams.service';
3
+ export * from './team-detail.service';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/teams/src/lib/services/index.ts"],"names":[],"mappings":"AAgBA,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { OnDestroy } from '@angular/core';
2
+ import { ActivatedRoute, Router } from '@angular/router';
3
+ import { BehaviorSubject, Observable } from 'rxjs';
4
+ import { TeamResponseDto, TeamUserResponseDto } from '@valtimo/shared';
5
+ import { TeamsApiService } from './teams-api.service';
6
+ import { PageTitleService, Pagination } from '@valtimo/components';
7
+ import * as i0 from "@angular/core";
8
+ export declare class TeamDetailService implements OnDestroy {
9
+ private readonly teamsApiService;
10
+ private readonly pageTitleService;
11
+ private readonly router;
12
+ private readonly _loadingTeam$;
13
+ get loadingTeam$(): Observable<boolean>;
14
+ private readonly _routeSubject$;
15
+ private get _route$();
16
+ get teamKey$(): Observable<string>;
17
+ private _teamKey;
18
+ get teamKey(): string;
19
+ private readonly _team$;
20
+ get team$(): Observable<TeamResponseDto>;
21
+ private readonly _reload$;
22
+ private readonly _loadingMembers$;
23
+ get loadingMembers$(): Observable<boolean>;
24
+ private readonly _members$;
25
+ get members$(): Observable<TeamUserResponseDto[]>;
26
+ readonly membersPagination$: BehaviorSubject<Pagination>;
27
+ private readonly _membersPaginationParams$;
28
+ private readonly _reloadMembers$;
29
+ private readonly _showEditTeamModal$;
30
+ readonly showEditTeamModal$: Observable<boolean>;
31
+ private readonly _showDeleteTeamModal$;
32
+ readonly showDeleteTeamModal$: Observable<boolean>;
33
+ private readonly _showRemoveMemberModal$;
34
+ readonly showRemoveMemberModal$: Observable<boolean>;
35
+ private readonly _memberToRemove$;
36
+ readonly memberToRemove$: Observable<TeamUserResponseDto>;
37
+ private readonly _subscriptions;
38
+ constructor(teamsApiService: TeamsApiService, pageTitleService: PageTitleService, router: Router);
39
+ setRoute(route: ActivatedRoute): void;
40
+ reload(): void;
41
+ reloadMembers(): void;
42
+ showEditTeamModal(): void;
43
+ hideEditTeamModal(): void;
44
+ showDeleteTeamModal(): void;
45
+ hideDeleteTeamModal(): void;
46
+ showRemoveMemberConfirmation(member: TeamUserResponseDto): void;
47
+ hideRemoveMemberModal(): void;
48
+ navigateToTeamsList(): void;
49
+ ngOnDestroy(): void;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<TeamDetailService, never>;
51
+ static ɵprov: i0.ɵɵInjectableDeclaration<TeamDetailService>;
52
+ }
53
+ //# sourceMappingURL=team-detail.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-detail.service.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/teams/src/lib/services/team-detail.service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAa,SAAS,EAAC,MAAM,eAAe,CAAC;AACpD,OAAO,EAAC,cAAc,EAAE,MAAM,EAAC,MAAM,iBAAiB,CAAC;AACvD,OAAO,EACL,eAAe,EAIf,UAAU,EAKX,MAAM,MAAM,CAAC;AACd,OAAO,EAAC,eAAe,EAAE,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAAC,eAAe,EAAC,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAqB,gBAAgB,EAAE,UAAU,EAAC,MAAM,qBAAqB,CAAC;;AAErF,qBACa,iBAAkB,YAAW,SAAS;IAqE/C,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAtEzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;IACpE,IAAW,YAAY,IAAI,UAAU,CAAC,OAAO,CAAC,CAE7C;IAED,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoD;IACnF,OAAO,KAAK,OAAO,GAElB;IAED,IAAW,QAAQ,IAAI,UAAU,CAAC,MAAM,CAAC,CAUxC;IAED,OAAO,CAAC,QAAQ,CAAU;IAC1B,IAAW,OAAO,IAAI,MAAM,CAE3B;IAED,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqD;IAC5E,IAAW,KAAK,IAAI,UAAU,CAAC,eAAe,CAAC,CAE9C;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAE5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAsC;IACvE,IAAW,eAAe,IAAI,UAAU,CAAC,OAAO,CAAC,CAEhD;IAED,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkD;IAC5E,IAAW,QAAQ,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAEvD;IAED,SAAgB,kBAAkB,8BAA4D;IAE9F,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAGxC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IAEnE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuC;IAC3E,SAAgB,kBAAkB,sBAA2C;IAE7E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuC;IAC7E,SAAgB,oBAAoB,sBAA6C;IAEjF,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAuC;IAC/E,SAAgB,sBAAsB,sBAA+C;IAErF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAyD;IAC1F,SAAgB,eAAe,kCAAwC;IAEvE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsB;gBAGlC,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,gBAAgB,EAClC,MAAM,EAAE,MAAM;IAG1B,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI;IAgDrC,MAAM,IAAI,IAAI;IAId,aAAa,IAAI,IAAI;IAIrB,iBAAiB,IAAI,IAAI;IAIzB,iBAAiB,IAAI,IAAI;IAIzB,mBAAmB,IAAI,IAAI;IAI3B,mBAAmB,IAAI,IAAI;IAI3B,4BAA4B,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAK/D,qBAAqB,IAAI,IAAI;IAK7B,mBAAmB,IAAI,IAAI;IAI3B,WAAW,IAAI,IAAI;yCAhKf,iBAAiB;6CAAjB,iBAAiB;CAmK7B"}
@@ -0,0 +1,32 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { BaseApiService, ConfigService, Page, TeamCreateRequestDto, TeamListResponseDto, TeamResponseDto, TeamUpdateRequestDto, TeamUserCreateRequestDto, TeamUserResponseDto, User } from '@valtimo/shared';
3
+ import { Observable } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export declare class TeamsApiService extends BaseApiService {
6
+ protected readonly configService: ConfigService;
7
+ protected readonly httpClient: HttpClient;
8
+ constructor(configService: ConfigService, httpClient: HttpClient);
9
+ getCandidateUsers(teamKey: string): Observable<User[]>;
10
+ getTeams(params?: {
11
+ titleContains?: string;
12
+ page?: number;
13
+ size?: number;
14
+ sort?: string;
15
+ }): Observable<Page<TeamListResponseDto>>;
16
+ getTeam(key: string): Observable<TeamResponseDto>;
17
+ createTeam(dto: TeamCreateRequestDto): Observable<TeamResponseDto>;
18
+ updateTeam(key: string, dto: TeamUpdateRequestDto): Observable<TeamResponseDto>;
19
+ deleteTeam(key: string): Observable<void>;
20
+ getTeamUsers(teamKey: string, params?: {
21
+ page?: number;
22
+ size?: number;
23
+ }): Observable<Page<TeamUserResponseDto>>;
24
+ addTeamUser(teamKey: string, dto: TeamUserCreateRequestDto): Observable<TeamUserResponseDto>;
25
+ removeTeamUser(teamKey: string, username: string): Observable<void>;
26
+ getCurrentUserTeams(): Observable<{
27
+ key: string;
28
+ }[]>;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<TeamsApiService, never>;
30
+ static ɵprov: i0.ɵɵInjectableDeclaration<TeamsApiService>;
31
+ }
32
+ //# sourceMappingURL=teams-api.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teams-api.service.d.ts","sourceRoot":"","sources":["../../../../../projects/valtimo/teams/src/lib/services/teams-api.service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAC,UAAU,EAAa,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EACL,cAAc,EACd,aAAa,EACb,IAAI,EACJ,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;;AAEhC,qBAGa,eAAgB,SAAQ,cAAc;IAE/C,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,aAAa;IAC/C,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU;gBADtB,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU;IAKpC,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;IAItD,QAAQ,CAAC,MAAM,CAAC,EAAE;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GAAG,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAiBlC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,eAAe,CAAC;IAIjD,UAAU,CAAC,GAAG,EAAE,oBAAoB,GAAG,UAAU,CAAC,eAAe,CAAC;IAIlE,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,oBAAoB,GAAG,UAAU,CAAC,eAAe,CAAC;IAI/E,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAIzC,YAAY,CACjB,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAC,GACtC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAcjC,WAAW,CAChB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,wBAAwB,GAC5B,UAAU,CAAC,mBAAmB,CAAC;IAO3B,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAInE,mBAAmB,IAAI,UAAU,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,EAAE,CAAC;yCAjF9C,eAAe;6CAAf,eAAe;CAoF3B"}