@cauca-911/management 21.3.5 → 21.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Injector, inject, Injectable, computed, ChangeDetectionStrategy, Component, ViewChild, signal, viewChild, resource, effect, untracked, model, input, HostListener, Input, NgModule } from '@angular/core';
|
|
3
|
-
import { pendingChangesGuard, DialogService, PageTitleComponent, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, StrokedButtonComponent, RaisedButtonComponent, ListPaginatorComponent,
|
|
3
|
+
import { pendingChangesGuard, DialogService, PageTitleComponent, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, StrokedButtonComponent, RaisedButtonComponent, ListPaginatorComponent, IconButtonComponent, LoadingStateService, GroupContainerComponent, ConfirmationResult, SavingErrorBoxComponent } from '@cauca-911/material';
|
|
4
4
|
import * as i1 from '@angular/material/card';
|
|
5
5
|
import { MatCardModule } from '@angular/material/card';
|
|
6
6
|
import * as i1$3 from '@ngx-translate/core';
|
|
@@ -127,7 +127,7 @@ class GroupListGridComponent {
|
|
|
127
127
|
this.router.navigate([this.router.url, 'new']);
|
|
128
128
|
}
|
|
129
129
|
async deleteGroup(group) {
|
|
130
|
-
if (await this.dialog.askForDeleteConfirmation(group.name, '
|
|
130
|
+
if (await this.dialog.askForDeleteConfirmation(group.name, 'management.group', true)) {
|
|
131
131
|
try {
|
|
132
132
|
await this.service.deleteGroup(group.id);
|
|
133
133
|
this.table.refreshData();
|
|
@@ -365,8 +365,8 @@ class UserSearchService {
|
|
|
365
365
|
|
|
366
366
|
const _c0$2 = ["resultPaginator"];
|
|
367
367
|
const _forTrack0$2 = ($index, $item) => $item.id;
|
|
368
|
-
function
|
|
369
|
-
i0.ɵɵelementStart(0, "div",
|
|
368
|
+
function GroupUserSelectionDialogComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
369
|
+
i0.ɵɵelementStart(0, "div", 8);
|
|
370
370
|
i0.ɵɵtext(1);
|
|
371
371
|
i0.ɵɵpipe(2, "translate");
|
|
372
372
|
i0.ɵɵelementEnd();
|
|
@@ -374,38 +374,38 @@ function GroupUserSelectionDialogComponent_Conditional_16_Template(rf, ctx) { if
|
|
|
374
374
|
i0.ɵɵadvance();
|
|
375
375
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "groupEdition.searchMinChars"));
|
|
376
376
|
} }
|
|
377
|
-
function
|
|
377
|
+
function GroupUserSelectionDialogComponent_Conditional_16_Template(rf, ctx) { if (rf & 1) {
|
|
378
378
|
i0.ɵɵelement(0, "cauca-loading-spinner-indicator");
|
|
379
379
|
} }
|
|
380
|
-
function
|
|
381
|
-
i0.ɵɵelementStart(0, "mat-list-option",
|
|
380
|
+
function GroupUserSelectionDialogComponent_Conditional_17_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
381
|
+
i0.ɵɵelementStart(0, "mat-list-option", 21);
|
|
382
382
|
i0.ɵɵtext(1);
|
|
383
383
|
i0.ɵɵelementEnd();
|
|
384
384
|
} if (rf & 2) {
|
|
385
385
|
const user_r3 = ctx.$implicit;
|
|
386
|
-
const ɵ$
|
|
386
|
+
const ɵ$index_37_r4 = ctx.$index;
|
|
387
387
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
388
|
-
i0.ɵɵclassProp("result-item--even", ɵ$
|
|
388
|
+
i0.ɵɵclassProp("result-item--even", ɵ$index_37_r4 % 2 === 1);
|
|
389
389
|
i0.ɵɵproperty("value", user_r3)("selected", ctx_r1.selectedUserIds().has(user_r3.id));
|
|
390
390
|
i0.ɵɵadvance();
|
|
391
391
|
i0.ɵɵtextInterpolate1(" ", user_r3.fullName, " ");
|
|
392
392
|
} }
|
|
393
|
-
function
|
|
393
|
+
function GroupUserSelectionDialogComponent_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
394
394
|
const _r5 = i0.ɵɵgetCurrentView();
|
|
395
|
-
i0.ɵɵelementStart(0, "cauca-list-paginator",
|
|
396
|
-
i0.ɵɵlistener("pageChange", function
|
|
395
|
+
i0.ɵɵelementStart(0, "cauca-list-paginator", 22, 0);
|
|
396
|
+
i0.ɵɵlistener("pageChange", function GroupUserSelectionDialogComponent_Conditional_17_Conditional_3_Template_cauca_list_paginator_pageChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.onPageChange($event)); });
|
|
397
397
|
i0.ɵɵelementEnd();
|
|
398
398
|
} if (rf & 2) {
|
|
399
399
|
const ctx_r1 = i0.ɵɵnextContext(2);
|
|
400
400
|
i0.ɵɵproperty("itemsCount", ctx_r1.totalCount())("pageSize", ctx_r1.PAGE_SIZE);
|
|
401
401
|
} }
|
|
402
|
-
function
|
|
402
|
+
function GroupUserSelectionDialogComponent_Conditional_17_Template(rf, ctx) { if (rf & 1) {
|
|
403
403
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
404
|
-
i0.ɵɵelementStart(0, "mat-selection-list",
|
|
405
|
-
i0.ɵɵlistener("selectionChange", function
|
|
406
|
-
i0.ɵɵrepeaterCreate(1,
|
|
404
|
+
i0.ɵɵelementStart(0, "mat-selection-list", 18);
|
|
405
|
+
i0.ɵɵlistener("selectionChange", function GroupUserSelectionDialogComponent_Conditional_17_Template_mat_selection_list_selectionChange_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onSelectionChange($event)); });
|
|
406
|
+
i0.ɵɵrepeaterCreate(1, GroupUserSelectionDialogComponent_Conditional_17_For_2_Template, 2, 5, "mat-list-option", 19, _forTrack0$2);
|
|
407
407
|
i0.ɵɵelementEnd();
|
|
408
|
-
i0.ɵɵconditionalCreate(3,
|
|
408
|
+
i0.ɵɵconditionalCreate(3, GroupUserSelectionDialogComponent_Conditional_17_Conditional_3_Template, 2, 2, "cauca-list-paginator", 20);
|
|
409
409
|
} if (rf & 2) {
|
|
410
410
|
const ctx_r1 = i0.ɵɵnextContext();
|
|
411
411
|
i0.ɵɵproperty("compareWith", ctx_r1.compareUserById);
|
|
@@ -414,8 +414,8 @@ function GroupUserSelectionDialogComponent_Conditional_20_Template(rf, ctx) { if
|
|
|
414
414
|
i0.ɵɵadvance(2);
|
|
415
415
|
i0.ɵɵconditional(ctx_r1.totalCount() > ctx_r1.PAGE_SIZE ? 3 : -1);
|
|
416
416
|
} }
|
|
417
|
-
function
|
|
418
|
-
i0.ɵɵelementStart(0, "div",
|
|
417
|
+
function GroupUserSelectionDialogComponent_Conditional_18_Template(rf, ctx) { if (rf & 1) {
|
|
418
|
+
i0.ɵɵelementStart(0, "div", 11);
|
|
419
419
|
i0.ɵɵtext(1);
|
|
420
420
|
i0.ɵɵpipe(2, "translate");
|
|
421
421
|
i0.ɵɵelementEnd();
|
|
@@ -467,6 +467,9 @@ class GroupUserSelectionDialogComponent {
|
|
|
467
467
|
});
|
|
468
468
|
});
|
|
469
469
|
}
|
|
470
|
+
closeClick() {
|
|
471
|
+
this.dialogRef.close();
|
|
472
|
+
}
|
|
470
473
|
toggleUser(user) {
|
|
471
474
|
const groupUser = { id: user.id, fullName: user.fullName };
|
|
472
475
|
if (this.selectedUserIds().has(user.id)) {
|
|
@@ -495,73 +498,70 @@ class GroupUserSelectionDialogComponent {
|
|
|
495
498
|
i0.ɵɵviewQuerySignal(ctx.paginator, _c0$2, 5);
|
|
496
499
|
} if (rf & 2) {
|
|
497
500
|
i0.ɵɵqueryAdvance();
|
|
498
|
-
} }, features: [i0.ɵɵProvidersFeature([UserSearchService, LoadingStateService])], decls:
|
|
501
|
+
} }, features: [i0.ɵɵProvidersFeature([UserSearchService, LoadingStateService])], decls: 28, vars: 15, consts: [["resultPaginator", ""], ["mat-dialog-title", ""], [1, "h6"], ["id", "closeButton", "icon", "close", 3, "buttonClick"], [1, "dialog-content"], ["subscriptSizing", "dynamic", 1, "search-field"], ["matInput", "", "type", "text", 3, "input", "value"], ["matSuffix", ""], [1, "search-hint", "body2"], [1, "results-region"], [3, "retryRequest"], [1, "no-results", "body2"], [1, "dialog-actions"], [1, "selected-users-panel"], [1, "selected-users-label", "caption"], [1, "selected-users-names", "body2", 3, "matTooltip"], ["color", "primary", "label", "cancel", 3, "buttonClick"], ["color", "primary", "label", "ok", 3, "buttonClick", "isDisabled"], [1, "results-list", 3, "selectionChange", "compareWith"], ["color", "primary", 1, "result-item", 3, "value", "selected", "result-item--even"], [3, "itemsCount", "pageSize"], ["color", "primary", 1, "result-item", 3, "value", "selected"], [3, "pageChange", "itemsCount", "pageSize"]], template: function GroupUserSelectionDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
499
502
|
i0.ɵɵelementStart(0, "div", 1)(1, "div", 2);
|
|
500
503
|
i0.ɵɵtext(2);
|
|
501
504
|
i0.ɵɵpipe(3, "translate");
|
|
502
505
|
i0.ɵɵelementEnd();
|
|
503
|
-
i0.ɵɵelementStart(4, "button", 3);
|
|
504
|
-
i0.ɵɵ
|
|
505
|
-
i0.ɵɵ
|
|
506
|
-
i0.ɵɵ
|
|
507
|
-
i0.ɵɵ
|
|
508
|
-
i0.ɵɵ
|
|
509
|
-
i0.ɵɵtext(11);
|
|
510
|
-
i0.ɵɵpipe(12, "translate");
|
|
506
|
+
i0.ɵɵelementStart(4, "cauca-icon-button", 3);
|
|
507
|
+
i0.ɵɵlistener("buttonClick", function GroupUserSelectionDialogComponent_Template_cauca_icon_button_buttonClick_4_listener() { return ctx.closeClick(); });
|
|
508
|
+
i0.ɵɵelementEnd()();
|
|
509
|
+
i0.ɵɵelementStart(5, "mat-dialog-content", 4)(6, "mat-form-field", 5)(7, "mat-label");
|
|
510
|
+
i0.ɵɵtext(8);
|
|
511
|
+
i0.ɵɵpipe(9, "translate");
|
|
511
512
|
i0.ɵɵelementEnd();
|
|
512
|
-
i0.ɵɵelementStart(
|
|
513
|
-
i0.ɵɵlistener("input", function
|
|
513
|
+
i0.ɵɵelementStart(10, "input", 6);
|
|
514
|
+
i0.ɵɵlistener("input", function GroupUserSelectionDialogComponent_Template_input_input_10_listener($event) { return ctx.searchTerm.set($event.target.value); });
|
|
514
515
|
i0.ɵɵelementEnd();
|
|
515
|
-
i0.ɵɵelementStart(
|
|
516
|
-
i0.ɵɵtext(
|
|
516
|
+
i0.ɵɵelementStart(11, "mat-icon", 7);
|
|
517
|
+
i0.ɵɵtext(12, "search");
|
|
517
518
|
i0.ɵɵelementEnd()();
|
|
518
|
-
i0.ɵɵconditionalCreate(
|
|
519
|
-
i0.ɵɵelementStart(
|
|
520
|
-
i0.ɵɵlistener("retryRequest", function
|
|
519
|
+
i0.ɵɵconditionalCreate(13, GroupUserSelectionDialogComponent_Conditional_13_Template, 3, 3, "div", 8);
|
|
520
|
+
i0.ɵɵelementStart(14, "div", 9)(15, "cauca-loading-error", 10);
|
|
521
|
+
i0.ɵɵlistener("retryRequest", function GroupUserSelectionDialogComponent_Template_cauca_loading_error_retryRequest_15_listener() { return ctx.searchResource.reload(); });
|
|
521
522
|
i0.ɵɵelementEnd();
|
|
522
|
-
i0.ɵɵconditionalCreate(
|
|
523
|
+
i0.ɵɵconditionalCreate(16, GroupUserSelectionDialogComponent_Conditional_16_Template, 1, 0, "cauca-loading-spinner-indicator")(17, GroupUserSelectionDialogComponent_Conditional_17_Template, 4, 2)(18, GroupUserSelectionDialogComponent_Conditional_18_Template, 3, 3, "div", 11);
|
|
523
524
|
i0.ɵɵelementEnd()();
|
|
524
|
-
i0.ɵɵelementStart(
|
|
525
|
-
i0.ɵɵtext(
|
|
526
|
-
i0.ɵɵpipe(
|
|
525
|
+
i0.ɵɵelementStart(19, "mat-dialog-actions", 12)(20, "div", 13)(21, "span", 14);
|
|
526
|
+
i0.ɵɵtext(22);
|
|
527
|
+
i0.ɵɵpipe(23, "translate");
|
|
527
528
|
i0.ɵɵelementEnd();
|
|
528
|
-
i0.ɵɵelementStart(
|
|
529
|
-
i0.ɵɵtext(
|
|
529
|
+
i0.ɵɵelementStart(24, "div", 15);
|
|
530
|
+
i0.ɵɵtext(25);
|
|
530
531
|
i0.ɵɵelementEnd()();
|
|
531
|
-
i0.ɵɵelementStart(
|
|
532
|
-
i0.ɵɵlistener("buttonClick", function
|
|
532
|
+
i0.ɵɵelementStart(26, "cauca-stroked-button", 16);
|
|
533
|
+
i0.ɵɵlistener("buttonClick", function GroupUserSelectionDialogComponent_Template_cauca_stroked_button_buttonClick_26_listener() { return ctx.cancel(); });
|
|
533
534
|
i0.ɵɵelementEnd();
|
|
534
|
-
i0.ɵɵelementStart(
|
|
535
|
-
i0.ɵɵlistener("buttonClick", function
|
|
535
|
+
i0.ɵɵelementStart(27, "cauca-raised-button", 17);
|
|
536
|
+
i0.ɵɵlistener("buttonClick", function GroupUserSelectionDialogComponent_Template_cauca_raised_button_buttonClick_27_listener() { return ctx.confirm(); });
|
|
536
537
|
i0.ɵɵelementEnd()();
|
|
537
538
|
} if (rf & 2) {
|
|
538
539
|
i0.ɵɵadvance(2);
|
|
539
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3,
|
|
540
|
-
i0.ɵɵadvance(
|
|
541
|
-
i0.ɵɵ
|
|
542
|
-
i0.ɵɵadvance(7);
|
|
543
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(12, 14, "groupEdition.searchUserPlaceholder"));
|
|
540
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 9, "groupEdition.userSelectionTitle"));
|
|
541
|
+
i0.ɵɵadvance(6);
|
|
542
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(9, 11, "groupEdition.searchUserPlaceholder"));
|
|
544
543
|
i0.ɵɵadvance(2);
|
|
545
544
|
i0.ɵɵproperty("value", ctx.searchTerm());
|
|
546
545
|
i0.ɵɵadvance(3);
|
|
547
|
-
i0.ɵɵconditional(ctx.searchTerm().length > 0 && ctx.searchTerm().length < ctx.MIN_SEARCH_LENGTH ?
|
|
546
|
+
i0.ɵɵconditional(ctx.searchTerm().length > 0 && ctx.searchTerm().length < ctx.MIN_SEARCH_LENGTH ? 13 : -1);
|
|
548
547
|
i0.ɵɵadvance(3);
|
|
549
|
-
i0.ɵɵconditional(ctx.searchResource.isLoading() && !ctx.results().length ?
|
|
548
|
+
i0.ɵɵconditional(ctx.searchResource.isLoading() && !ctx.results().length ? 16 : ctx.results().length ? 17 : !ctx.searchResource.isLoading() && ctx.totalCount() === 0 && ctx.debouncedSearch().length >= ctx.MIN_SEARCH_LENGTH ? 18 : -1);
|
|
550
549
|
i0.ɵɵadvance(6);
|
|
551
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(
|
|
550
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(23, 13, "groupEdition.selectedUsersLabel"));
|
|
552
551
|
i0.ɵɵadvance(2);
|
|
553
552
|
i0.ɵɵproperty("matTooltip", ctx.selectedUsersLabel());
|
|
554
553
|
i0.ɵɵadvance();
|
|
555
554
|
i0.ɵɵtextInterpolate(ctx.selectedUsersLabel());
|
|
556
555
|
i0.ɵɵadvance(2);
|
|
557
556
|
i0.ɵɵproperty("isDisabled", ctx.selectedUsers().length === 0);
|
|
558
|
-
} }, dependencies: [MatDialogModule, i1$1.
|
|
557
|
+
} }, dependencies: [MatDialogModule, i1$1.MatDialogTitle, i1$1.MatDialogActions, i1$1.MatDialogContent, MatFormFieldModule, i1$2.MatFormField, i1$2.MatLabel, i1$2.MatSuffix, MatInputModule, i2.MatInput, MatIconModule, i4.MatIcon, MatListModule, i4$1.MatSelectionList, i4$1.MatListOption, FormsModule,
|
|
559
558
|
LoadingSpinnerIndicatorComponent,
|
|
560
559
|
LoadingErrorComponent,
|
|
561
560
|
StrokedButtonComponent,
|
|
562
561
|
RaisedButtonComponent,
|
|
563
562
|
ListPaginatorComponent,
|
|
564
|
-
MatTooltipModule, i6.MatTooltip,
|
|
563
|
+
MatTooltipModule, i6.MatTooltip, IconButtonComponent,
|
|
564
|
+
TranslatePipe], styles: [".dialog-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:16px}[mat-dialog-title][_ngcontent-%COMP%]{display:flex;align-items:center}[mat-dialog-title][_ngcontent-%COMP%] div[_ngcontent-%COMP%]:first-child{flex:1}.search-field[_ngcontent-%COMP%]{margin-top:16px;width:100%;margin-bottom:8px}.search-hint[_ngcontent-%COMP%], .no-results[_ngcontent-%COMP%]{padding:8px 0;color:#0000008a}.results-region[_ngcontent-%COMP%]{height:360px;overflow:hidden;display:flex;flex-direction:column}.results-list[_ngcontent-%COMP%]{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0;max-height:400px;border:1px solid rgba(0,0,0,.23);border-radius:4px}.result-item[_ngcontent-%COMP%]{cursor:pointer}mat-list-option[_ngcontent-%COMP%]{margin-bottom:0}mat-list-option[_ngcontent-%COMP%]:nth-child(odd){background-color:#0000000d}mat-list-option[_ngcontent-%COMP%]:hover{transition:all ease-in-out .1s;background-color:#00000012}.dialog-actions[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.selected-users-panel[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.selected-users-label[_ngcontent-%COMP%]{color:#0000008a;font-weight:500}.selected-users-names[_ngcontent-%COMP%]{color:#000000de;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}"], changeDetection: 0 }); }
|
|
565
565
|
}
|
|
566
566
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GroupUserSelectionDialogComponent, [{
|
|
567
567
|
type: Component,
|
|
@@ -578,10 +578,11 @@ class GroupUserSelectionDialogComponent {
|
|
|
578
578
|
StrokedButtonComponent,
|
|
579
579
|
RaisedButtonComponent,
|
|
580
580
|
ListPaginatorComponent,
|
|
581
|
-
MatTooltipModule
|
|
582
|
-
|
|
581
|
+
MatTooltipModule,
|
|
582
|
+
IconButtonComponent,
|
|
583
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [UserSearchService, LoadingStateService], template: "<div mat-dialog-title>\n <div class=\"h6\">{{ 'groupEdition.userSelectionTitle' | translate }}</div>\n <cauca-icon-button id=\"closeButton\" (buttonClick)=\"closeClick()\" icon=\"close\" />\n</div>\n\n<mat-dialog-content class=\"dialog-content\">\n <mat-form-field subscriptSizing=\"dynamic\" class=\"search-field\">\n <mat-label>{{ 'groupEdition.searchUserPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"searchTerm()\" (input)=\"searchTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n @if (searchTerm().length > 0 && searchTerm().length < MIN_SEARCH_LENGTH) {\n <div class=\"search-hint body2\">{{ 'groupEdition.searchMinChars' | translate }}</div>\n }\n\n <div class=\"results-region\">\n <cauca-loading-error (retryRequest)=\"searchResource.reload()\" />\n\n @if (searchResource.isLoading() && !results().length) {\n <cauca-loading-spinner-indicator />\n } @else if (results().length) {\n <mat-selection-list class=\"results-list\" [compareWith]=\"compareUserById\" (selectionChange)=\"onSelectionChange($event)\">\n @for (user of results(); track user.id; let i = $index) {\n <mat-list-option\n [value]=\"user\"\n [selected]=\"selectedUserIds().has(user.id)\"\n color=\"primary\"\n class=\"result-item\"\n [class.result-item--even]=\"i % 2 === 1\">\n {{ user.fullName }}\n </mat-list-option>\n }\n </mat-selection-list>\n\n @if (totalCount() > PAGE_SIZE) {\n <cauca-list-paginator\n #resultPaginator\n [itemsCount]=\"totalCount()\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n } @else if (!searchResource.isLoading() && totalCount() === 0 && debouncedSearch().length >= MIN_SEARCH_LENGTH) {\n <div class=\"no-results body2\">{{ 'noResult' | translate }}</div>\n }\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"dialog-actions\">\n <div class=\"selected-users-panel\">\n <span class=\"selected-users-label caption\">{{ 'groupEdition.selectedUsersLabel' | translate }}</span>\n <div class=\"selected-users-names body2\" [matTooltip]=\"selectedUsersLabel()\">{{ selectedUsersLabel() }}</div>\n </div>\n <cauca-stroked-button color=\"primary\" label=\"cancel\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button\n color=\"primary\"\n label=\"ok\"\n [isDisabled]=\"selectedUsers().length === 0\"\n (buttonClick)=\"confirm()\" />\n</mat-dialog-actions>\n", styles: [".dialog-content{display:flex;flex-direction:column;gap:16px}[mat-dialog-title]{display:flex;align-items:center}[mat-dialog-title] div:first-child{flex:1}.search-field{margin-top:16px;width:100%;margin-bottom:8px}.search-hint,.no-results{padding:8px 0;color:#0000008a}.results-region{height:360px;overflow:hidden;display:flex;flex-direction:column}.results-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0;max-height:400px;border:1px solid rgba(0,0,0,.23);border-radius:4px}.result-item{cursor:pointer}mat-list-option{margin-bottom:0}mat-list-option:nth-child(odd){background-color:#0000000d}mat-list-option:hover{transition:all ease-in-out .1s;background-color:#00000012}.dialog-actions{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}.selected-users-panel{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.selected-users-label{color:#0000008a;font-weight:500}.selected-users-names{color:#000000de;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}\n"] }]
|
|
583
584
|
}], () => [], { paginator: [{ type: i0.ViewChild, args: ['resultPaginator', { isSignal: true }] }] }); })();
|
|
584
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GroupUserSelectionDialogComponent, { className: "GroupUserSelectionDialogComponent", filePath: "lib/components/group-user-selection-dialog/group-user-selection-dialog.component.ts", lineNumber:
|
|
585
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GroupUserSelectionDialogComponent, { className: "GroupUserSelectionDialogComponent", filePath: "lib/components/group-user-selection-dialog/group-user-selection-dialog.component.ts", lineNumber: 46 }); })();
|
|
585
586
|
|
|
586
587
|
const _c0$1 = ["paginator"];
|
|
587
588
|
const _forTrack0$1 = ($index, $item) => $item.id;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cauca-911-management.mjs","sources":["../../../projects/cauca-management/src/lib/provide-cauca-management.ts","../../../projects/cauca-management/src/lib/management.routes.ts","../../../projects/cauca-management/src/lib/core/api/group-management.service.ts","../../../projects/cauca-management/src/lib/components/group-list-grid/group-list-grid.component.ts","../../../projects/cauca-management/src/lib/components/group-list-grid/group-list-grid.component.html","../../../projects/cauca-management/src/lib/pages/groups-page/groups-page.component.ts","../../../projects/cauca-management/src/lib/pages/groups-page/groups-page.component.html","../../../projects/cauca-management/src/lib/core/functions/generate-group.ts","../../../projects/cauca-management/src/lib/core/states/group-edition-state.service.ts","../../../projects/cauca-management/src/lib/core/models/user-for-group.ts","../../../projects/cauca-management/src/lib/core/api/user-search.service.ts","../../../projects/cauca-management/src/lib/components/group-user-selection-dialog/group-user-selection-dialog.component.html","../../../projects/cauca-management/src/lib/components/group-user-selection-dialog/group-user-selection-dialog.component.ts","../../../projects/cauca-management/src/lib/components/group-user-edition-list/group-user-edition-list.component.html","../../../projects/cauca-management/src/lib/components/group-user-edition-list/group-user-edition-list.component.ts","../../../projects/cauca-management/src/lib/core/models/group.ts","../../../projects/cauca-management/src/lib/core/api/permission-management.service.ts","../../../projects/cauca-management/src/lib/components/group-permission-list/group-permission-list.component.html","../../../projects/cauca-management/src/lib/components/group-permission-list/group-permission-list.component.ts","../../../projects/cauca-management/src/lib/components/group-edition-form/group-edition-form.component.html","../../../projects/cauca-management/src/lib/components/group-edition-form/group-edition-form.component.ts","../../../projects/cauca-management/src/lib/pages/group-edition-page/group-edition-page.component.html","../../../projects/cauca-management/src/lib/pages/group-edition-page/group-edition-page.component.ts","../../../projects/cauca-management/src/lib/cauca-management.service.ts","../../../projects/cauca-management/src/lib/cauca-management.component.ts","../../../projects/cauca-management/src/lib/cauca-management.component.html","../../../projects/cauca-management/src/lib/shared/services/management-group.service.ts","../../../projects/cauca-management/src/lib/shared/services/management-user.service.ts","../../../projects/cauca-management/src/lib/shared/services/management-permission.service.ts","../../../projects/cauca-management/src/lib/cauca-management-group/cauca-management-group.component.html","../../../projects/cauca-management/src/lib/cauca-management-group/cauca-management-group.component.ts","../../../projects/cauca-management/src/lib/shared/models/user-model.ts","../../../projects/cauca-management/src/lib/cauca-management-user/cauca-management-user.component.ts","../../../projects/cauca-management/src/lib/cauca-management-user/cauca-management-user.component.html","../../../projects/cauca-management/src/lib/cauca-management.module.ts","../../../projects/cauca-management/src/lib/shared/models/user-group-model.ts","../../../projects/cauca-management/src/lib/shared/models/user-permission-model.ts","../../../projects/cauca-management/src/lib/shared/models/group-model.ts","../../../projects/cauca-management/src/lib/shared/models/group-permission-model.ts","../../../projects/cauca-management/src/public-api.ts","../../../projects/cauca-management/src/cauca-911-management.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, Injector, Provider, Type } from '@angular/core';\r\nimport { RefreshablePermissionState } from '../public-api';\r\n\r\nexport const MANAGEMENT_URL_PREFIX = new InjectionToken<string>('MANAGEMENT_URL_PREFIX');\r\nexport const MANAGEMENT_ROUTE_SEGMENT = new InjectionToken<string>('MANAGEMENT_ROUTE_SEGMENT');\r\nexport const REFRESHABLE_PERMISSION_STATE_TOKEN = new InjectionToken<RefreshablePermissionState>('REFRESHABLE_PERMISSION_STATE_TOKEN');\r\n\r\nexport interface CaucaManagementConfig {\r\n managementUrlPrefix?: string | null;\r\n managementRouteSegment?: string | null;\r\n refreshablePermissionState: Type<RefreshablePermissionState>;\r\n}\r\n\r\nexport function provideCaucaManagement(config: CaucaManagementConfig): (Provider | EnvironmentProviders)[] {\r\n return [\r\n ...(config?.managementUrlPrefix != null\r\n ? [{ provide: MANAGEMENT_URL_PREFIX, useValue: config.managementUrlPrefix }]\r\n : []),\r\n ...(config?.managementRouteSegment != null\r\n ? [{ provide: MANAGEMENT_ROUTE_SEGMENT, useValue: config.managementRouteSegment }]\r\n : []),\r\n { provide: REFRESHABLE_PERMISSION_STATE_TOKEN, useFactory: (injector: Injector) => injector.get(config.refreshablePermissionState), deps: [Injector] } \r\n ];\r\n}","import { Routes } from '@angular/router';\r\nimport { pendingChangesGuard } from '@cauca-911/material';\r\n\r\nexport const managementGroupRoutes: Routes = [{\r\n path: 'groups',\r\n loadComponent: () => import('./pages/groups-page/groups-page.component').then(m => m.GroupsPageComponent),\r\n }, {\r\n path: 'groups/:id',\r\n loadComponent: () => import('./pages/group-edition-page/group-edition-page.component').then(m => m.GroupEditionPageComponent),\r\n canDeactivate: [pendingChangesGuard],\r\n }];","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { Group } from '../models/group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupManagementService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public async deleteGroup(groupId: string): Promise<void> {\n await firstValueFrom(this.client.delete(this.buildApiUrl(`GroupManagement/${groupId}`)));\n }\n\n public async save(group: Group): Promise<void> {\n await firstValueFrom( this.client.post<Group>(this.buildApiUrl(`GroupManagement`), group));\n }\n\n public async get(groupId: string): Promise<Group> {\n return await firstValueFrom(this.client.get<Group>(this.buildApiUrl(`GroupManagement/${groupId}`)));\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, OnInit, ViewChild } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MatSort } from '@angular/material/sort';\nimport { Router } from '@angular/router';\nimport ODataFilterBuilder from 'odata-filter-builder';\nimport { ODataFilter } from 'odata-data-source';\nimport { DialogService } from '@cauca-911/material';\nimport { DataGridCommandsColumnComponent, OdataGridComponent, SortableDataGridCheckColumnComponent, SortableDataGridColumnComponent } from '@cauca-911/datagrid';\nimport { GroupManagementService } from '../../core/api/group-management.service';\n\n@Component({\n selector: 'cauca-group-list-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent, DataGridCommandsColumnComponent, TranslatePipe],\n templateUrl: './group-list-grid.component.html',\n styleUrl: './group-list-grid.component.scss'\n})\nexport class GroupListGridComponent implements OnInit {\n\n public readonly columns = computed(() => this.getColumns());\n\n @ViewChild(OdataGridComponent, { static: true }) public table!: OdataGridComponent;\n @ViewChild(MatSort, { static: true }) public sort!: MatSort;\n\n private readonly router = inject(Router);\n private readonly dialog = inject(DialogService);\n private readonly service = inject(GroupManagementService);\n\n public ngOnInit(): void {\n this.table.setUpSort(this.sort);\n }\n\n public createGroup(): void {\n this.router.navigate([this.router.url, 'new']);\n }\n\n public async deleteGroup(group: any): Promise<void> {\n if (await this.dialog.askForDeleteConfirmation(group.name, 'admin.group', true)) {\n try {\n await this.service.deleteGroup(group.id);\n this.table.refreshData();\n } catch {\n await this.dialog.showDeletionError(group.name);\n }\n }\n }\n\n public filterPredicate = (filter: string): ODataFilter[] => {\n let builder = new ODataFilterBuilder();\n if (filter) {\n builder = builder.and(ODataFilterBuilder('or')\n .contains('searchableGroup', filter)\n .contains('searchableUsers', filter)\n );\n }\n return [{getFilter: () => [builder.toString()]}];\n };\n\n private getColumns(): string[] {\n const baseColumns = ['name', 'assignableByAllUsers'];\n return [...baseColumns, 'buttons'];\n }\n}\n\n","<cauca-odata-grid matSort\n [showTableOptions]=\"true\"\n class=\"groups-datagrid\"\n aria-describedby=\"Groups table\"\n resourceName=\"GroupList\"\n [showAddButton]=\"true\"\n (addButtonClick)=\"createGroup()\"\n [addButtonLabel]=\"'groups.addButtonLabel'| translate\"\n [baseSort]=\"['name']\"\n [filterPredicate]=\"filterPredicate\"\n [displayedColumns]=\"columns()\">\n\n <cauca-sortable-data-grid-column id=\"name\" prop=\"name\" [label]=\"'groups.groupNameColumnLabel'|translate\"/>\n <cauca-sortable-data-grid-check-column id=\"is-assignable-all-users\" prop=\"assignableByAllUsers\" [label]=\"'groups.assignableByAllUsersColumnLabel'|translate\" width=\"200px\" />\n <cauca-data-grid-commands-column id=\"buttons\" prop=\"buttons\" [canDelete]=\"true\" [canEdit]=\"true\" editLinkField=\"id\" (deleteClick)=\"deleteGroup($event)\" />\n\n</cauca-odata-grid>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { PageTitleComponent } from '@cauca-911/material';\nimport { GroupListGridComponent } from '../../components/group-list-grid/group-list-grid.component';\n\n@Component({\n selector: 'cauca-groups-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCardModule, PageTitleComponent, GroupListGridComponent],\n templateUrl: './groups-page.component.html',\n styleUrl: './groups-page.component.scss'\n})\nexport class GroupsPageComponent {\n}\n","<cauca-page-title\n [showBreadcrumb]=\"true\"\n caption=\"menu.groups\"\n baseCrumb=\"menu.management\"\n breadcrumb=\"menu.groups\" />\n\n<mat-card class=\"page-content\">\n\n <mat-card-content class=\"page-content-grid\">\n <cauca-group-list-grid />\n </mat-card-content>\n\n</mat-card>\n","import { v4 as uuid } from 'uuid';\nimport { Group } from '../models/group';\n\nexport function generateGroup(): Group {\n return {\n id: uuid(),\n name: '',\n assignableByAllUsers: false,\n permissions: [],\n users: []\n };\n}","import { inject, Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { GroupManagementService } from '../api/group-management.service';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Group, GroupUser } from '../models/group';\nimport { generateGroup } from '../functions/generate-group';\nimport { startWith } from 'rxjs';\nimport { REFRESHABLE_PERMISSION_STATE_TOKEN } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupEditionStateService {\n public isEditionMode = true;\n public form = this.generateForm();\n public id: string| null = null;\n\n public readonly users = toSignal(\n this.form.get('users')!.valueChanges.pipe(startWith(this.form.get('users')!.value)),\n { initialValue: [] as GroupUser[] }\n );\n\n private readonly usersControl = this.form.get('users') as FormControl<GroupUser[]>;\n private currentGroup: Group| null = null;\n private readonly dataService = inject(GroupManagementService);\n private readonly userPermissionStateService = inject(REFRESHABLE_PERMISSION_STATE_TOKEN);\n\n public async setGroup(id: string): Promise<void> {\n if (id === 'new') {\n this.isEditionMode = false;\n this.generateNewGroup();\n } else {\n this.setCurrentGroup(await this.dataService.get(id));\n }\n }\n\n public async saveData(): Promise<boolean> {\n const data = this.getUpdatedGroup();\n if (this.form.valid) {\n this.form.disable();\n await this.dataService.save(data);\n await this.refreshCurrentUserPermissions();\n return true;\n } else {\n return false;\n }\n }\n\n public generateNewGroup(): void {\n this.currentGroup = generateGroup();\n this.setCurrentGroup(this.currentGroup);\n this.form.markAsPristine();\n }\n\n public setCurrentGroup(group: Group): void {\n this.id = group.id;\n this.currentGroup = group;\n if (!this.isEditionMode) {\n this.form.get('name')!.setValidators(Validators.required);\n }\n this.form.patchValue(group);\n this.form.get('users')!.setValue(group.users || []);\n this.form.get('permissions')!.setValue(group.permissions || []);\n this.form.markAsPristine();\n }\n\n public getUpdatedGroup(): Group {\n const formValues = this.form.value;\n return {\n ...this.currentGroup,\n ...formValues,\n };\n }\n\n public isDirty(): boolean {\n return this.form.dirty;\n }\n\n public isValid(): boolean {\n this.form.updateValueAndValidity();\n return this.form.valid;\n }\n\n public showErrors(): void {\n this.form.markAllAsTouched();\n }\n\n public addUsers(users: GroupUser[]): void {\n const current = this.usersControl.value ?? [];\n const existingIds = new Set(current.map(u => u.id));\n const newUsers = users.filter(u => !existingIds.has(u.id));\n this.usersControl.setValue([...current, ...newUsers]);\n this.form.markAsDirty();\n }\n\n public removeUser(userId: string): void {\n const current = this.usersControl.value ?? [];\n this.usersControl.setValue(current.filter(u => u.id !== userId));\n this.form.markAsDirty();\n }\n\n private async refreshCurrentUserPermissions() {\n try {\n await this.userPermissionStateService.refresh();\n } catch (error) {\n console.error('Error refreshing user permissions after group save', error);\n }\n }\n\n private generateForm(): FormGroup {\n const formGroup = new FormGroup({\n name: new FormControl('', [Validators.required]),\n assignableByAllUsers: new FormControl(false),\n users: new FormControl([]),\n permissions: new FormControl([])\n });\n return formGroup;\n }\n}\n","export interface UserForGroupData {\r\n id: string;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n\r\nexport class UserForGroup {\r\n public id: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public fullName: string;\r\n\r\n public constructor(data: UserForGroupData) {\r\n this.id = data.id;\r\n this.firstName = data.firstName;\r\n this.lastName = data.lastName;\r\n this.fullName = `${data.firstName} ${data.lastName}`;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { UserForGroup, UserForGroupData } from '../models/user-for-group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserSearchService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public async search(\n query: string,\n excludedUserIds: string[],\n skip: number,\n top: number\n ): Promise<{ items: UserForGroup[]; totalCount: number }> {\n const url = this.buildApiUrl('UserSearch');\n const body: { query: string; skip: number; top: number; excludedUserIds: string[] } = {\n query,\n skip,\n top,\n excludedUserIds\n };\n const response = await firstValueFrom(\n this.client.post<{ items: UserForGroupData[]; totalCount: number }>(url, body)\n );\n return {\n items: response.items.map(u => new UserForGroup(u)),\n totalCount: response.totalCount\n };\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","<div mat-dialog-title>\n <div class=\"h6\">{{ 'groupEdition.userSelectionTitle' | translate }}</div>\n <button mat-icon-button mat-dialog-close [attr.aria-label]=\"'close' | translate\">\n <mat-icon>close</mat-icon>\n </button>\n</div>\n\n<mat-dialog-content>\n <mat-form-field subscriptSizing=\"dynamic\" class=\"search-field\">\n <mat-label>{{ 'groupEdition.searchUserPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"searchTerm()\" (input)=\"searchTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n @if (searchTerm().length > 0 && searchTerm().length < MIN_SEARCH_LENGTH) {\n <div class=\"search-hint body2\">{{ 'groupEdition.searchMinChars' | translate }}</div>\n }\n\n <div class=\"results-region\">\n <cauca-loading-error (retryRequest)=\"searchResource.reload()\" />\n\n @if (searchResource.isLoading() && !results().length) {\n <cauca-loading-spinner-indicator />\n } @else if (results().length) {\n <mat-selection-list class=\"results-list\" [compareWith]=\"compareUserById\" (selectionChange)=\"onSelectionChange($event)\">\n @for (user of results(); track user.id; let i = $index) {\n <mat-list-option\n [value]=\"user\"\n [selected]=\"selectedUserIds().has(user.id)\"\n color=\"primary\"\n class=\"result-item\"\n [class.result-item--even]=\"i % 2 === 1\">\n {{ user.fullName }}\n </mat-list-option>\n }\n </mat-selection-list>\n\n @if (totalCount() > PAGE_SIZE) {\n <cauca-list-paginator\n #resultPaginator\n [itemsCount]=\"totalCount()\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n } @else if (!searchResource.isLoading() && totalCount() === 0 && debouncedSearch().length >= MIN_SEARCH_LENGTH) {\n <div class=\"no-results body2\">{{ 'noResult' | translate }}</div>\n }\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"dialog-actions\">\n <div class=\"selected-users-panel\">\n <span class=\"selected-users-label caption\">{{ 'groupEdition.selectedUsersLabel' | translate }}</span>\n <div class=\"selected-users-names body2\" [matTooltip]=\"selectedUsersLabel()\">{{ selectedUsersLabel() }}</div>\n </div>\n <cauca-stroked-button color=\"primary\" label=\"cancel\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button\n color=\"primary\"\n label=\"ok\"\n [isDisabled]=\"selectedUsers().length === 0\"\n (buttonClick)=\"confirm()\" />\n</mat-dialog-actions>\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, resource, signal, untracked, viewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule, MatSelectionListChange } from '@angular/material/list';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { debounceTime } from 'rxjs';\nimport { LoadingSpinnerIndicatorComponent, LoadingErrorComponent, StrokedButtonComponent, RaisedButtonComponent, LoadingStateService, ListPaginatorComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { UserSearchService } from '../../core/api/user-search.service';\nimport { UserForGroup } from '../../core/models/user-for-group';\nimport { GroupUser } from '../../core/models/group';\n\nexport interface GroupUserSelectionDialogData {\n currentUserIds: string[];\n}\n\n@Component({\n selector: 'cauca-group-user-selection-dialog',\n standalone: true,\n imports: [\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatListModule,\n FormsModule,\n TranslatePipe,\n LoadingSpinnerIndicatorComponent,\n LoadingErrorComponent,\n StrokedButtonComponent,\n RaisedButtonComponent,\n ListPaginatorComponent,\n MatTooltipModule\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UserSearchService, LoadingStateService],\n templateUrl: './group-user-selection-dialog.component.html',\n styleUrl: './group-user-selection-dialog.component.scss'\n})\nexport class GroupUserSelectionDialogComponent {\n protected readonly MIN_SEARCH_LENGTH = 3;\n protected readonly PAGE_SIZE = 10;\n protected readonly data = inject<GroupUserSelectionDialogData>(MAT_DIALOG_DATA);\n protected readonly searchTerm = signal('');\n protected readonly selectedUsers = signal<GroupUser[]>([]);\n protected readonly currentPage = signal(1);\n protected readonly paginator = viewChild<ListPaginatorComponent>('resultPaginator');\n\n protected readonly selectedUserIds = computed(() => new Set(this.selectedUsers().map(u => u.id)));\n\n protected readonly selectedUsersLabel = computed(() =>\n [...this.selectedUsers()]\n .sort((a, b) => toLowerCaseAndWithoutDiacritics(a.fullName).localeCompare(toLowerCaseAndWithoutDiacritics(b.fullName)))\n .map(u => u.fullName)\n .join(', ')\n );\n\n protected readonly debouncedSearch = toSignal(\n toObservable(this.searchTerm).pipe(debounceTime(300)),\n { initialValue: '' }\n );\n\n protected readonly searchResource = resource({\n params: computed(() => ({ query: this.debouncedSearch(), page: this.currentPage() })),\n loader: ({ params }) => {\n if (params.query.length < this.MIN_SEARCH_LENGTH) {\n return Promise.resolve({ items: [], totalCount: 0 });\n }\n const skip = (params.page - 1) * this.PAGE_SIZE;\n return this.userSearchService.search(params.query, this.data.currentUserIds, skip, this.PAGE_SIZE);\n }\n });\n\n protected readonly results = computed(() => this.lastResult().items);\n protected readonly totalCount = computed(() => this.lastResult().totalCount);\n \n private readonly lastResult = signal<{ items: UserForGroup[]; totalCount: number }>({ items: [], totalCount: 0 });\n private readonly dialogRef = inject(MatDialogRef<GroupUserSelectionDialogComponent>);\n private readonly userSearchService = inject(UserSearchService);\n\n public constructor() {\n effect(() => {\n const value = this.searchResource.value();\n if (value) {\n untracked(() => this.lastResult.set(value));\n }\n });\n\n effect(() => {\n this.debouncedSearch();\n untracked(() => {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n this.lastResult.set({ items: [], totalCount: 0 });\n });\n });\n }\n\n public toggleUser(user: UserForGroup): void {\n const groupUser: GroupUser = { id: user.id, fullName: user.fullName };\n if (this.selectedUserIds().has(user.id)) {\n this.selectedUsers.update(current => current.filter(u => u.id !== user.id));\n } else {\n this.selectedUsers.update(current => [...current, groupUser]);\n }\n }\n\n public onPageChange(page: number): void {\n this.currentPage.set(page);\n }\n\n public onSelectionChange(event: MatSelectionListChange): void {\n for (const option of event.options) {\n this.toggleUser(option.value as UserForGroup);\n }\n }\n\n public cancel(): void {\n this.dialogRef.close();\n }\n\n public confirm(): void {\n this.dialogRef.close(this.selectedUsers());\n }\n\n protected readonly compareUserById = (a: UserForGroup, b: UserForGroup): boolean => a?.id === b?.id;\n}\n","<div class=\"user-edition-list\">\n\n <mat-form-field subscriptSizing=\"dynamic\" class=\"filter-field\">\n <mat-label>{{ 'groupEdition.filterUsersPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"filterTerm()\" (input)=\"filterTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n <mat-list class=\"users-list\">\n @for (user of pagedUsers(); track user.id) {\n <mat-list-item class=\"user-item\">\n <mat-icon matListItemIcon>person</mat-icon>\n <div matListItemTitle class=\"user-name\">{{ user.fullName }}</div>\n <cauca-icon-button\n matListItemMeta\n class=\"delete-button\"\n icon=\"delete\"\n color=\"error\"\n (buttonClick)=\"removeUser(user)\"\n [attr.aria-label]=\"'groupEdition.removeUserLabel' | translate\" />\n </mat-list-item>\n } @empty {\n @if (filterTerm()) {\n <div class=\"no-users body2\">{{ 'groupEdition.noFilteredUsers' | translate }}</div>\n } @else {\n <div class=\"no-users body2\">{{ 'groupEdition.noUsers' | translate }}</div>\n }\n }\n </mat-list>\n\n @if (filteredUsers().length > PAGE_SIZE) {\n <cauca-list-paginator\n #paginator\n [itemsCount]=\"filteredUsers().length\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n\n <cauca-raised-button\n class=\"add-users-button\"\n color=\"primary\"\n label=\"groupEdition.addUsersButton\"\n (buttonClick)=\"openAddUsersDialog()\" />\n</div>\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, signal, untracked, viewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { DialogService, IconButtonComponent, ListPaginatorComponent, RaisedButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { GroupUser } from '../../core/models/group';\nimport { GroupUserSelectionDialogComponent, GroupUserSelectionDialogData } from '../group-user-selection-dialog/group-user-selection-dialog.component';\nimport { MatListModule } from '@angular/material/list';\n\n@Component({\n selector: 'cauca-group-user-edition-list',\n standalone: true,\n imports: [TranslatePipe, IconButtonComponent, RaisedButtonComponent, ListPaginatorComponent, MatFormFieldModule, MatInputModule, MatIconModule, FormsModule, MatListModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DialogService],\n templateUrl: './group-user-edition-list.component.html',\n styleUrl: './group-user-edition-list.component.scss'\n})\nexport class GroupUserEditionListComponent {\n protected readonly PAGE_SIZE = 10;\n protected readonly currentPage = signal(1);\n protected readonly filterTerm = signal('');\n protected readonly paginator = viewChild<ListPaginatorComponent>('paginator');\n\n protected readonly sortedUsers = computed(() =>\n [...this.state.users()].sort((a, b) =>\n toLowerCaseAndWithoutDiacritics(a.fullName).localeCompare(toLowerCaseAndWithoutDiacritics(b.fullName))\n )\n );\n\n protected readonly filteredUsers = computed(() => {\n const term = toLowerCaseAndWithoutDiacritics(this.filterTerm());\n if (!term) return this.sortedUsers();\n return this.sortedUsers().filter(u => toLowerCaseAndWithoutDiacritics(u.fullName).includes(term));\n });\n\n protected readonly pagedUsers = computed(() => {\n const start = (this.currentPage() - 1) * this.PAGE_SIZE;\n return this.filteredUsers().slice(start, start + this.PAGE_SIZE);\n });\n\n private readonly state = inject(GroupEditionStateService);\n private readonly dialogService = inject(DialogService);\n private readonly dialog = inject(MatDialog);\n\n public constructor() {\n effect(() => {\n this.filterTerm();\n untracked(() => {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n });\n });\n }\n\n public async removeUser(user: GroupUser): Promise<void> {\n const confirmed = await this.dialogService.askForDeleteConfirmation(\n user.fullName,\n 'groupEdition.userEntityName',\n true\n );\n if (confirmed) {\n this.state.removeUser(user.id);\n this.clampCurrentPage();\n }\n }\n\n public onPageChange(page: number): void {\n this.currentPage.set(page);\n }\n\n public openAddUsersDialog(): void {\n const currentUserIds = this.state.users().map((u: GroupUser) => u.id);\n const dialogData: GroupUserSelectionDialogData = { currentUserIds };\n\n this.dialog.open(GroupUserSelectionDialogComponent, {\n width: '600px',\n maxHeight: '80vh',\n autoFocus: false,\n data: dialogData\n }).afterClosed().subscribe((selectedUsers: GroupUser[] | undefined) => {\n if (selectedUsers?.length) {\n this.state.addUsers(selectedUsers);\n this.paginator()?.moveToFirst();\n this.currentPage.set(1);\n }\n });\n }\n\n private clampCurrentPage(): void {\n const total = untracked(this.filteredUsers).length;\n const maxPage = Math.ceil(total / this.PAGE_SIZE) || 1;\n if (untracked(this.currentPage) > maxPage) {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n }\n }\n}\n","import { Permission } from \"./permission\";\nimport { v4 as uuid } from 'uuid';\n\nexport interface Group {\n id: string;\n name: string;\n assignableByAllUsers: boolean;\n permissions: GroupPermission[];\n users: GroupUser[];\n}\n\nexport interface GroupUser {\n id: string;\n fullName: string;\n}\n\nexport interface GroupPermission {\n idModulePermission: string;\n isAllowed: boolean;\n idGroup: string;\n id: string;\n}\n\nexport class PermissionValue {\n public id: string;\n public name: string;\n public allowed: boolean|null;\n\n private permission: Permission;\n private groupPermission: GroupPermission|null|undefined;\n\n public constructor(permission: Permission, groupPermission: GroupPermission|null|undefined) {\n this.id = permission.id;\n this.permission = permission;\n this.groupPermission = groupPermission;\n this.name = permission.name;\n this.allowed = groupPermission?.isAllowed ?? null;\n }\n\n public toGroupPermission(idGroup: string): GroupPermission|null {\n if (this.allowed === null) {\n return null;\n } else if (this.groupPermission) {\n return { ...this.groupPermission, isAllowed: this.allowed };\n } else {\n return { id: uuid(), idGroup, idModulePermission: this.permission.id, isAllowed: this.allowed };\n }\n }\n}","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { Permission } from '../models/permission';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionManagementService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = this.buildBaseUrl(\n inject(CaucaCoreService).getConfig().apiUrl, \n inject(MANAGEMENT_URL_PREFIX, { optional: true }));\n\n public async get(): Promise<Permission[]> {\n return await firstValueFrom(this.client.get<Permission[]>(this.buildApiUrl(`PermissionManagement`)));\n }\n\n private buildBaseUrl(apiUrl: string, urlPrefix: string | null): string {\n const normalizedApiUrl = apiUrl.replace(/\\/+$/, '');\n const normalizedPrefix = urlPrefix?.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}`\n : normalizedApiUrl;\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n return `${normalizedApiUrl}/${path}`;\n }\n}\n","<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"full-width-field grid-search-box\">\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\n <input matInput [(ngModel)]=\"searchText\">\n <mat-icon matSuffix>search</mat-icon>\n</mat-form-field>\n\n<mat-selection-list id=\"permission-list\">\n @for (permission of filteredPermissionsValues(); track permission.id) {\n <mat-list-item class=\"permission-item\">\n <mat-checkbox\n [color]=\"permission.allowed === null ? undefined : 'primary'\"\n [indeterminate]=\"permission.allowed === null\"\n [checked]=\"permission.allowed\"\n (click)=\"onValueChange(permission)\" >\n {{permission.name}}\n </mat-checkbox>\n </mat-list-item>\n } @empty {\n <div class=\"no-result\">\n <mat-icon class=\"no-result-icon\">grid_off</mat-icon>\n <div class=\"no-result-text body2\">{{ 'noResult' | translate }}</div>\n </div>\n }\n\n</mat-selection-list>\n","import { ChangeDetectionStrategy, Component, computed, inject, model, OnInit, signal } from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIcon } from '@angular/material/icon';\nimport { PermissionValue, GroupPermission } from '../../core/models/group';\nimport { Permission } from '../../core/models/permission';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { PermissionManagementService } from '../../core/api/permission-management.service';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'cauca-group-permission-list',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, TranslatePipe, FormsModule, MatIcon, MatCheckboxModule],\n templateUrl: './group-permission-list.component.html',\n styleUrl: './group-permission-list.component.scss',\n})\nexport class GroupPermissionListComponent implements OnInit {\n\n public searchText = model<string>('');\n public currentPermissions = signal<PermissionValue[]>([]);\n public filteredPermissionsValues = computed(() =>\n this.currentPermissions()?.filter((permission) => toLowerCaseAndWithoutDiacritics(permission.name)\n .includes(toLowerCaseAndWithoutDiacritics(this.searchText()))) || []);\n\n private readonly service = inject(PermissionManagementService);\n private readonly state = inject(GroupEditionStateService);\n private modulePermissions!: Permission[];\n\n public async ngOnInit(): Promise<void> {\n await this.loadData();\n }\n\n public onValueChange(value: PermissionValue): void {\n if (value.allowed === null) {\n value.allowed = true;\n } else if (value.allowed) {\n value.allowed = false;\n } else {\n value.allowed = null;\n }\n this.state.form.get('permissions')!.setValue(this.toGroupPermissions(this.state.id!));\n }\n\n private async loadData(): Promise<void> {\n try {\n this.modulePermissions = await this.service.get();\n const values = this.modulePermissions\n .map((permission) => new PermissionValue(permission, this.getPermissions().find((groupPermission) => groupPermission.idModulePermission === permission.id)));\n this.currentPermissions.set(values);\n } catch {\n this.modulePermissions = [];\n }\n }\n\n private toGroupPermissions(idGroup: string): GroupPermission[] {\n return this.currentPermissions().map((permissionValue) => permissionValue.toGroupPermission(idGroup))\n .filter((groupPermission) => groupPermission !== null) as GroupPermission[];\n }\n\n private getPermissions(): GroupPermission[] {\n return this.state.form.get('permissions')!.value;\n }\n\n}\n","<div [formGroup]=\"state.form\">\n\n <cauca-group-container id=\"group-options\" caption=\"groupEdition.groupNameFieldLabel\">\n <mat-form-field id=\"group-name\">\n <mat-label>{{ 'groupEdition.nameFieldLabel' | translate }}</mat-label>\n <input matInput type=\"text\" formControlName=\"name\" required>\n @if (state.form.get(\"name\").hasError('required')) {<mat-error>{{'error.requiredField' | translate}}</mat-error>}\n </mat-form-field>\n <mat-slide-toggle id=\"assignable-by-all-users\" formControlName=\"assignableByAllUsers\" color=\"primary\">{{'groupEdition.assignableByAllUsersLabel' | translate}}</mat-slide-toggle>\n </cauca-group-container>\n\n <mat-divider />\n\n <cauca-group-container id=\"group-users\" caption=\"groupEdition.groupUsersFieldLabel\">\n <cauca-group-user-edition-list />\n </cauca-group-container>\n\n <mat-divider />\n\n <cauca-group-container id=\"group-permissions\" caption=\"groupEdition.groupPermissionsFieldLabel\">\n <cauca-group-permission-list />\n </cauca-group-container>\n\n</div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatInputModule } from '@angular/material/input';\nimport { GroupUserEditionListComponent } from '../group-user-edition-list/group-user-edition-list.component';\nimport { GroupPermissionListComponent } from '../group-permission-list/group-permission-list.component';\nimport { GroupContainerComponent } from '@cauca-911/material';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'cauca-group-edition-form',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslatePipe, MatFormFieldModule, MatInputModule, MatSlideToggleModule, MatDividerModule, ReactiveFormsModule, GroupContainerComponent, GroupUserEditionListComponent, GroupPermissionListComponent],\n templateUrl: './group-edition-form.component.html',\n styleUrl: './group-edition-form.component.scss'\n})\nexport class GroupEditionFormComponent {\n public readonly state = inject(GroupEditionStateService);\n}\n","<cauca-page-title\n [caption]=\"title()\"\n baseCrumb=\"menu.management\"\n [breadcrumb]=\"title()\"\n [location]=\"currentLocation()\"\n [showBreadcrumb]=\"true\" />\n\n<mat-card>\n\n <mat-card-content>\n\n <cauca-loading-spinner-indicator />\n <cauca-loading-error (retryRequest)=\"loadData()\" />\n\n @if (isLoaded()) {\n <cauca-group-edition-form />\n }\n\n @if (showSavingError()) {\n <div class=\"spacer\"></div>\n <cauca-saving-error-box [show]=\"showSavingError()\" />\n }\n\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"spacer\"></div>\n <cauca-stroked-button class=\"cancel-button\" color=\"primary\" label=\"cancel\" [isDisabled]=\"isSaving()\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button class=\"save-button\" color=\"primary\" label=\"save\" [isInProgress]=\"isSaving()\" (buttonClick)=\"save()\" />\n </mat-card-actions>\n\n</mat-card>\n","import { ChangeDetectionStrategy, Component, computed, HostListener, inject, input, OnInit, signal } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { Router } from '@angular/router';\nimport { PageTitleComponent, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, SavingErrorBoxComponent, StrokedButtonComponent, RaisedButtonComponent, LoadingStateService, DialogService, ConfirmationResult, OnDeactivate } from '@cauca-911/material';\nimport { GroupEditionFormComponent } from '../../components/group-edition-form/group-edition-form.component';\nimport { GroupManagementService } from '../../core/api/group-management.service';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { MANAGEMENT_ROUTE_SEGMENT } from '../../provide-cauca-management';\n\n@Component({\n selector: 'cauca-group-edition-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [PageTitleComponent, MatCardModule, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, SavingErrorBoxComponent, StrokedButtonComponent, RaisedButtonComponent, GroupEditionFormComponent],\n templateUrl: './group-edition-page.component.html',\n styleUrl: './group-edition-page.component.scss',\n providers: [\n GroupEditionStateService,\n LoadingStateService,\n GroupManagementService,\n ]\n})\nexport class GroupEditionPageComponent implements OnInit, OnDeactivate {\n\n public readonly id = input.required<string>();\n public readonly isLoaded = signal<boolean>(false);\n public readonly isSaving = signal<boolean>(false);\n public readonly showSavingError = signal(false);\n public readonly title = computed(() => 'groupEdition.' + (this.id() === 'new' ? 'newGroupTitle' : 'editGroupTitle'));\n public readonly currentLocation = computed(() => [{ link: this.groupsPath, title: 'menu.groups' }]);\n\n private readonly state = inject(GroupEditionStateService);\n private readonly dialog = inject(DialogService);\n private readonly router = inject(Router);\n private readonly managementRouteSegment = inject(MANAGEMENT_ROUTE_SEGMENT, { optional: true });\n private readonly groupsPath = this.buildGroupsPath();\n private isClosing = false;\n\n public ngOnInit(): void {\n this.loadData();\n }\n\n public async canDeactivate(): Promise<boolean> {\n return await this.canCancel();\n }\n\n public async cancel(): Promise<void> {\n if (await this.canCancel()) {\n this.isClosing = true;\n await this.router.navigate([this.groupsPath]);\n }\n }\n\n public async save(): Promise<void> {\n try {\n await this.tryToSave();\n } catch {\n this.showSavingError.set(true);\n } finally {\n this.resetSavingState();\n }\n }\n\n public async loadData(): Promise<void> {\n try {\n await this.state.setGroup(this.id());\n this.isLoaded.set(true);\n } catch (e) {\n console.error(e);\n this.isLoaded.set(false);\n }\n }\n\n @HostListener('window:beforeunload', ['$event'])\n protected async onBeforeUnload(e: BeforeUnloadEvent): Promise<void> {\n if (await this.canCancel()) {\n e.preventDefault();\n }\n }\n\n private async tryToSave(): Promise<void> {\n this.initializeSavingState();\n if (await this.state.saveData()) {\n this.isClosing = true;\n this.router.navigate([this.groupsPath]);\n } else {\n this.showValidationError();\n }\n }\n\n private buildGroupsPath(): string {\n const defaultRouteSegment = 'management';\n const rawRouteSegment = this.managementRouteSegment?.trim();\n\n if (rawRouteSegment == null || rawRouteSegment === '') {\n return `/${defaultRouteSegment}/groups`;\n }\n\n const normalizedRouteSegment = rawRouteSegment\n .split('/')\n .map(segment => segment.trim())\n .find(segment => segment !== '') ?? defaultRouteSegment;\n\n return `/${normalizedRouteSegment}/groups`;\n }\n\n private async canCancel(): Promise<boolean> {\n return this.isClosing || !this.state.isDirty() || await this.askForCancelConfirmation() === ConfirmationResult.Yes;\n }\n\n private initializeSavingState(): void {\n this.isSaving.set(true);\n this.showSavingError.set(false);\n }\n\n private resetSavingState(): void {\n this.isSaving.set(false);\n this.state.form.enable();\n }\n\n private async askForCancelConfirmation(): Promise<ConfirmationResult> {\n return await this.dialog.askForConfirmation('cancelEditionDialog.title', 'cancelEditionDialog.message');\n }\n\n private showValidationError(): void {\n this.state.form.markAllAsTouched();\n this.dialog.showDialog('validationErrorDialog.title', 'validationErrorDialog.messageNext');\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CaucaManagementService {\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'cauca-management',\n templateUrl: './cauca-management.component.html',\n styles: [],\n standalone: false\n})\nexport class CaucaManagementComponent {\n\n}\n","<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>","import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { GroupModel } from '../models/group-model';\n\n/**\n * @deprecated This service is obsolete and should not be used.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementGroupService {\n private readonly http = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly baseUrlToUse = this.baseUrl.endsWith('api/') ? this.baseUrl : this.baseUrl + 'api/';\n\n public getAll(): Observable<GroupModel[]> {\n return this.http.get<GroupModel[]>(`${this.baseUrlToUse}GroupManagement`);\n }\n\n public get(idGroup: string): Observable<GroupModel> {\n return this.http.get<GroupModel>(`${this.baseUrlToUse}GroupManagement/${idGroup}`);\n }\n\n public save(group: GroupModel): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}GroupManagement`, group);\n }\n\n public delete(idGroup: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}GroupManagement/${idGroup}`);\n }\n\n public hasExistingGroupName(group: GroupModel): Observable<boolean> {\n return this.http.post<boolean>(`${this.baseUrlToUse}GroupManagement/GroupNameAlreadyExist`, group);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { UserGroupModel } from '../models/user-group-model';\nimport { UserPermissionModel } from '../models/user-permission-model';\nimport { CaucaCoreService } from '@cauca-911/core';\n\n/**\n * @deprecated This service is obsolete and should not be used.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementUserService {\n protected readonly http = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly baseUrlToUse = this.baseUrl.endsWith('api/') ? this.baseUrl : this.baseUrl + 'api/';\n\n public getAll<TUser>(): Observable<TUser[]> {\n return this.http.get<TUser[]>(`${this.baseUrlToUse}UserManagement`);\n }\n\n public get<TUser>(idUser: string): Observable<TUser> {\n return this.http.get<TUser>(`${this.baseUrlToUse}UserManagement/${idUser}`);\n }\n\n public getGroup(idUser: string): Observable<any> {\n return this.http.get(`${this.baseUrlToUse}UserManagement/${idUser}/groups`);\n }\n\n public addGroup(userGroup: UserGroupModel): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}UserManagement/group`, userGroup);\n }\n\n public deleteGroup(idUserGroup: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}UserManagement/groups/${idUserGroup}`);\n }\n\n public addPermission(userPermission: UserPermissionModel): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}UserManagement/permission`, userPermission);\n }\n\n public deletePermission(idUserPermission: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}UserManagement/groups/${idUserPermission}`);\n }\n\n public save<TUser>(user: TUser): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}UserManagement`, user);\n }\n\n public delete(idUser: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}UserManagement/${idUser}`);\n }\n\n public hasExistingUserName<TUser>(user: TUser): Observable<boolean> {\n return this.http.post<boolean>(`${this.baseUrlToUse}UserManagement/UserNameAlreadyExist`, user);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { PermissionModel } from '../models/permission-model';\n\n\n/**\n * @deprecated This service is obsolete and should not be used.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementPermissionService {\n private readonly http = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly baseUrlToUse = this.baseUrl.endsWith('api/') ? this.baseUrl : this.baseUrl + 'api/';\n\n public getAll(): Observable<PermissionModel[]> {\n return this.http.get<PermissionModel[]>(`${this.baseUrlToUse}PermissionManagement`);\n }\n\n public get(idPermission: string): Observable<PermissionModel> {\n return this.http.get<PermissionModel>(`${this.baseUrlToUse}PermissionManagement/${idPermission}`);\n }\n\n public save(permission: PermissionModel): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}PermissionManagement`, permission);\n }\n\n public delete(idPermission: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}PermissionManagement/${idPermission}`);\n }\n}\n","<cauca-dx-data-grid [allowPrint]=\"showPrintButton\" keyExpr=\"id\" [dataSource]=\"groups\"\n (onRowInserted)=\"onRowInserted($event)\" (onInitNewRow)=\"onInitNewRow()\" (onRowUpdated)=\"onRowUpdated($event)\"\n (onEditingStart)=\"onEditingStart($event)\" (onRowRemoved)=\"onRowRemoved($event)\">\n\n <dxi-column dataField=\"name\" [caption]=\"'management.name' | translate\">\n <dxi-validation-rule type=\"async\" [message]=\"'management.groupNameAlreadyUsed' | translate\"\n [validationCallback]=\"groupNameAlreadyUsedValidation\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"assignableByAllUsers\" [caption]=\"'management.assignableByAllUsers' | translate\"\n dataType=\"boolean\" [visible]=\"showAssignableByAllUsers\">\n </dxi-column>\n <dxi-column dataField=\"users\" [caption]=\"'management.users' | translate\" editCellTemplate=\"usersEditTemplate\"\n [calculateCellValue]=\"calculateUsersCellValue\">\n </dxi-column>\n <dxi-column dataField=\"permissions\" [caption]=\"'management.permissions' | translate\" [visible]=\"false\"\n editCellTemplate=\"permissionsEditTemplate\">\n </dxi-column>\n <dxo-export [enabled]=\"false\"></dxo-export>\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\" [fullScreen]=\"!showColumn\"></dxo-popup>\n <dxo-form colCount=\"1\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\n <dxi-item dataField=\"name\" [isRequired]=\"true\"></dxi-item>\n <dxi-item dataField=\"users\"></dxi-item>\n <dxi-item dataField=\"permissions\"></dxi-item>\n <dxi-item dataField=\"assignableByAllUsers\" [visible]=\"showAssignableByAllUsers\"></dxi-item>\n </dxo-form>\n </dxo-editing>\n\n <div *dxTemplate=\"let field of 'usersEditTemplate'\">\n <dx-tag-box valueExpr=\"id\" [displayExpr]=\"fullName\" [dataSource]=\"users\" [searchEnabled]=\"true\"\n [searchExpr]=\"fullName\" (onInitialized)=\"getGroupUser(field, $event)\"\n (onValueChanged)=\"setGroupUser(field, $event)\">\n </dx-tag-box>\n </div>\n <div *dxTemplate=\"let field of 'permissionsEditTemplate'\">\n <dx-list [dataSource]=\"permissions\" itemTemplate=\"rowTemplate\" [searchEnabled]=\"true\"\n [searchExpr]=\"['name', 'tag']\" [hoverStateEnabled]=\"hoverStatePermission\">\n <div *dxTemplate=\"let permission of 'rowTemplate'\">\n <dx-check-box [text]=\"permission.name\" (onInitialized)=\"getPermissionStatus(field, permission, $event)\"\n (onValueChanged)=\"checkBoxToggled(field, permission, $event)\">\n </dx-check-box>\n </div>\n </dx-list>\n </div>\n</cauca-dx-data-grid>","import { Component, Input, OnInit, inject } from '@angular/core';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { map } from 'rxjs/operators';\nimport { UserModel } from '../shared/models/user-model';\nimport { UserGroupModel } from '../shared/models/user-group-model';\nimport { GroupModel } from '../shared/models/group-model';\nimport { GroupPermissionModel } from '../shared/models/group-permission-model';\nimport { ManagementGroupService } from '../shared/services/management-group.service';\nimport { ManagementUserService } from '../shared/services/management-user.service';\nimport { PermissionModel } from '../shared/models/permission-model';\nimport { ManagementPermissionService } from '../shared/services/management-permission.service';\n\n/**\n * @deprecated This component is obsolete and should not be used.\n */\n@Component({\n selector: 'cauca-management-group',\n templateUrl: './cauca-management-group.component.html',\n styleUrls: ['./cauca-management-group.component.scss'],\n standalone: false\n})\nexport class CaucaManagementGroupComponent implements OnInit {\n\n @Input()\n public showPrintButton: boolean = true;\n @Input()\n public hoverStatePermission = true;\n @Input()\n public showAssignableByAllUsers = true;\n\n public groups: GroupModel[] = [];\n public users: UserModel[] = [];\n public permissions: PermissionModel[] = [];\n public userFullName: any = {};\n public showColumn = true;\n public showColumnXS = true;\n public translations: any = [];\n\n private groupUsers: any;\n private readonly managementGroupService = inject(ManagementGroupService);\n private readonly managementUserService = inject(ManagementUserService);\n private readonly managementPermissionService = inject(ManagementPermissionService);\n\n public constructor() {\n const breakpointObserver = inject(BreakpointObserver);\n\n breakpointObserver.observe(['(max-width: 1000px)']).subscribe((result: any) => {\n this.showColumn = !result.matches;\n });\n breakpointObserver.observe(['(max-width: 600px)']).subscribe((result: any) => {\n this.showColumnXS = !result.matches;\n });\n }\n\n public ngOnInit(): void {\n this.managementUserService.getAll<UserModel>().subscribe((data: UserModel[]) => {\n this.users = data;\n this.users.forEach((user: UserModel) => {\n if (user.isActive) {\n if (user.firstName !== '' && user.lastName !== '') {\n this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;\n }\n }\n });\n });\n this.managementPermissionService.getAll().subscribe((permissions: PermissionModel[]) => {\n const permissionIndex = permissions.findIndex((c: PermissionModel) => c.tag === 'CanAccessPermissions');\n if (permissionIndex !== -1) {\n permissions.splice(permissionIndex, 1);\n }\n permissions.sort((a: PermissionModel, b: PermissionModel) => {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n this.permissions = permissions;\n });\n this.getGroups();\n }\n\n public fullName(data: any): string {\n if (!data) {\n return '';\n }\n\n return `${data.firstName} ${data.lastName}`;\n }\n\n public getGroupUser(field: any, e: any): void {\n const users: string[] = [];\n if (this.groupUsers) {\n this.groupUsers.forEach((user: any) => {\n users.push(user.idUser);\n });\n }\n e.component.option('value', users);\n }\n\n public setGroupUser(field: any, e: any): void {\n const groupUser: UserGroupModel[] = [];\n\n e.value.forEach((idUser: string) => {\n const groupIndex = (field.data.users || []).findIndex((g: any) => g.idUser === idUser);\n\n if (groupIndex === -1) {\n groupUser.push({ idUser, } as UserGroupModel);\n } else {\n groupUser.push(field.data.users[groupIndex]);\n }\n });\n\n field.setValue(JSON.parse(JSON.stringify(groupUser)));\n }\n\n public setGroupPermission(field: any, e: any): void {\n const groupUser: UserGroupModel[] = [];\n\n e.value.forEach((idUser: string) => {\n groupUser.push({\n idUser,\n } as UserGroupModel);\n });\n\n field.setValue(JSON.parse(JSON.stringify(groupUser)));\n }\n\n public getPermissionStatus(field: any, permission: any, e: any): void {\n const groupPermission = (field.value || []).find((p: any) => p.idModulePermission === permission.id);\n\n if (groupPermission) {\n e.component.option('value', groupPermission.isAllowed);\n } else {\n e.component.option('value', undefined);\n }\n }\n\n public checkBoxToggled(field: any, permission: any, e: any): void {\n if (e.component.skipOnValueChanged) {\n e.component.skipOnValueChanged = false;\n return;\n }\n if (e.component.setUndefinedNextTime) {\n e.component.setUndefinedNextTime = false;\n e.component.skipOnValueChanged = true;\n e.component.option('value', undefined);\n this.setPermissionStatus(field, permission, undefined);\n return;\n }\n if (e.value === false) {\n e.component.setUndefinedNextTime = true;\n }\n\n this.setPermissionStatus(field, permission, e.value);\n }\n\n public onRowInserted(e: any): void {\n this.saveGroup(e.data as GroupModel);\n }\n\n public onRowUpdated(e: any): void {\n this.saveGroup(e.data as GroupModel);\n }\n\n public onRowRemoved(e: any): void {\n const group = (e.data as GroupModel);\n this.managementGroupService.delete(group.id).subscribe(() => {\n this.getGroups();\n });\n }\n\n public calculateUsersCellValue = (e: any): string => {\n const users = (e.users ? e.users as UserGroupModel[] : []);\n let usersNames: any[] = [];\n users.forEach((user: UserGroupModel) => {\n const userGroup = this.users.filter((u: UserModel) => u.id === user.idUser);\n if (userGroup && userGroup[0]) {\n usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);\n }\n });\n usersNames = usersNames.sort((one: string, two: string) => (one < two ? -1 : 1));\n return usersNames.join(', ');\n };\n\n public onEditingStart(e: any): void {\n this.groupUsers = e.data.users;\n }\n\n public onInitNewRow(): void {\n this.groupUsers = [];\n }\n\n public groupNameAlreadyUsedValidation = (e: any): Promise<boolean> => this.managementGroupService.hasExistingGroupName(e.data).pipe(\n map((exist: boolean) => !exist)\n ).toPromise();\n\n private setPermissionStatus(field: any, permission: any, value: any): void {\n const groupPermissions = field.value || [];\n const groupIndex = groupPermissions.findIndex((p: GroupPermissionModel) => p.idModulePermission === permission.id);\n\n if (groupIndex > -1) {\n groupPermissions[groupIndex].isAllowed = value;\n } else {\n groupPermissions.push({\n idModulePermission: permission.id,\n isAllowed: value,\n } as GroupPermissionModel);\n }\n\n field.setValue(JSON.parse(JSON.stringify(groupPermissions)));\n }\n\n private saveGroup(group: GroupModel): void {\n this.removePermissionUndefined(group);\n if (group.users) {\n group.users.forEach((userGroup: UserGroupModel) => {\n userGroup.idGroup = group.id;\n });\n }\n if (group.permissions) {\n group.permissions.forEach((groupPermission: GroupPermissionModel) => {\n groupPermission.idGroup = group.id;\n });\n }\n this.managementGroupService.save(group).subscribe(() => {\n this.getGroups();\n });\n this.groupUsers = [];\n }\n\n private removePermissionUndefined(group: GroupModel): void {\n group.permissions = group.permissions.filter((permission: GroupPermissionModel) => permission.isAllowed !== undefined);\n }\n\n private getGroups(): void {\n this.managementGroupService.getAll().subscribe((data: any) => this.groups = data);\n }\n}\n","import { UserGroupModel } from './user-group-model';\nimport { UserPermissionModel } from './user-permission-model';\n\n/**\n * @deprecated This model is obsolete and should not be used.\n */\n\nexport class UserModel {\n public id: string;\n public userName = '';\n public firstName = '';\n public lastName = '';\n public password = '';\n public email = '';\n public isActive = true;\n public groups: UserGroupModel[];\n public permissions: UserPermissionModel[];\n public twoFactorAuthenticatorEnabled = false;\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { UserModel } from '../shared/models/user-model';\nimport { ManagementUserService } from '../shared/services/management-user.service';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { map } from 'rxjs/operators';\n\n/**\n * @deprecated This component is obsolete and should not be used.\n */\n\n@Component({\n selector: 'cauca-management-user',\n templateUrl: './cauca-management-user.component.html',\n styleUrls: ['./cauca-management-user.component.scss'],\n standalone: false\n})\nexport class CaucaManagementUserComponent implements OnInit {\n\n public users: UserModel[] = [\n new UserModel()\n ];\n public showColumnXS = true;\n private readonly managementUserService = inject(ManagementUserService);\n\n public constructor() {\n const breakpointObserver = inject(BreakpointObserver);\n\n breakpointObserver.observe(['(max-width: 600px)']).subscribe((result: BreakpointState) => {\n this.showColumnXS = !result.matches;\n });\n }\n\n public ngOnInit(): void {\n this.getUsers();\n }\n\n public onRowInserted(e: any): void {\n this.saveGroup(e.data as UserModel);\n }\n\n public onRowUpdated(e: any): void {\n this.saveGroup(e.key as UserModel);\n }\n\n public onRowRemoved(e: any): void {\n const user = (e.data as UserModel);\n this.managementUserService.delete(user.id).subscribe((_data: any) => {\n this.getUsers();\n });\n }\n\n public userNameAlreadyUsedValidation = (e): Promise<boolean> => this.managementUserService.hasExistingUserName(e.data).pipe(\n map((exist: boolean) => !exist)\n ).toPromise();\n\n private saveGroup(user: UserModel): void {\n this.managementUserService.save<UserModel>(user).subscribe(() => {\n this.getUsers();\n });\n }\n\n private getUsers(): void {\n this.managementUserService.getAll<UserModel>().subscribe((data: any) => this.users = data);\n }\n}\n","<cauca-dx-data-grid\n keyExpr=\"id\"\n [dataSource]=\"users\"\n (onRowInserted)=\"onRowInserted($event)\"\n (onRowUpdated)=\"onRowUpdated($event)\"\n (onRowRemoved)=\"onRowRemoved($event)\">\n\n <dxi-column dataField=\"userName\" [caption]=\"'management.userName' | translate\">\n <dxi-validation-rule type=\"async\" [message]=\"'management.userNameAlreadyUsed' | translate\" [validationCallback]=\"userNameAlreadyUsedValidation\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"isActive\" [caption]=\"'management.isActive' | translate\" [visible]=\"false\"></dxi-column>\n <dxi-column dataField=\"firstName\" [caption]=\"'management.firstName' | translate\"></dxi-column>\n <dxi-column dataField=\"lastName\" [caption]=\"'management.lastName' | translate\"></dxi-column>\n <dxi-column dataField=\"groups\" [caption]=\"'management.group' | translate\"></dxi-column>\n\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\"></dxo-popup>\n <dxo-form colCount=\"2\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\n <dxi-item dataField=\"userName\" [isRequired]=\"true\"></dxi-item>\n <dxi-item dataField=\"isActive\"></dxi-item>\n <dxi-item dataField=\"firstName\"></dxi-item>\n <dxi-item dataField=\"lastName\"></dxi-item>\n <dxi-item dataField=\"group\"></dxi-item>\n </dxo-form>\n </dxo-editing>\n</cauca-dx-data-grid>\n","import { NgModule } from '@angular/core';\nimport { DxCheckBoxModule } from 'devextreme-angular/ui/check-box';\nimport { DxListModule } from 'devextreme-angular/ui/list';\nimport { DxTagBoxModule } from 'devextreme-angular/ui/tag-box';\nimport { CaucaCoreForChildModule } from '@cauca-911/core';\nimport { CaucaDevextremeModule } from '@cauca-911/devextreme';\nimport { CaucaManagementComponent } from './cauca-management.component';\nimport { CaucaManagementGroupComponent } from './cauca-management-group/cauca-management-group.component';\nimport { CaucaManagementUserComponent } from './cauca-management-user/cauca-management-user.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [\n CaucaManagementComponent,\n CaucaManagementGroupComponent,\n CaucaManagementUserComponent\n ],\n imports: [\n CommonModule,\n DxCheckBoxModule,\n DxListModule,\n DxTagBoxModule,\n CaucaCoreForChildModule,\n CaucaDevextremeModule,\n ],\n exports: [\n CaucaManagementComponent,\n CaucaManagementUserComponent,\n CaucaManagementGroupComponent,\n ]\n})\nexport class CaucaManagementModule { }\n","/**\n * @deprecated This model is obsolete and should not be used.\n */\n\nexport class UserGroupModel {\n public idUserGroup = '';\n public idGroup = '';\n public idUser = '';\n}\n","/**\n * @deprecated This model is obsolete and should not be used.\n */\nexport class UserPermissionModel {\n public idUserPermission = '';\n public isAllowed = false;\n public idUser = '';\n public idModulePermission = '';\n}\n","import {GroupPermissionModel} from './group-permission-model';\nimport {UserGroupModel} from './user-group-model';\n\n/**\n * @deprecated This model is obsolete and should not be used.\n */\nexport class GroupModel {\n public id: string;\n public name = '';\n public users: UserGroupModel[] = [];\n public permissions: GroupPermissionModel[] = [];\n public assignableByAllUsers: boolean;\n}\n","/**\n * @deprecated This model is obsolete and should not be used.\n */\nexport class GroupPermissionModel {\n public idGroupPermission = '';\n public isAllowed = false;\n public idGroup = '';\n public idModulePermission = '';\n}\n","/*\n * Public API Surface of cauca-management\n */\n\n\nexport * from './lib/provide-cauca-management';\nexport * from './lib/management.routes';\nexport * from './lib/core/refreshable-permission-state';\n\nexport * from './lib/pages/groups-page/groups-page.component';\nexport * from './lib/pages/group-edition-page/group-edition-page.component';\n\n// all of the following is deprecated and will be removed in a future release.\nexport * from './lib/cauca-management.service';\nexport * from './lib/cauca-management.component';\nexport * from './lib/cauca-management.module';\nexport * from './lib/cauca-management-group/cauca-management-group.component';\nexport * from './lib/cauca-management-user/cauca-management-user.component';\n\nexport { ManagementUserService } from './lib/shared/services/management-user.service';\nexport { ManagementGroupService } from './lib/shared/services/management-group.service';\nexport { UserModel } from './lib/shared/models/user-model';\nexport { UserGroupModel } from './lib/shared/models/user-group-model';\nexport { UserPermissionModel } from './lib/shared/models/user-permission-model';\nexport { GroupModel } from './lib/shared/models/group-model';\nexport { GroupPermissionModel } from './lib/shared/models/group-permission-model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","uuid","_forTrack0","i1","i2","i5","i3","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cauca-911-management.mjs","sources":["../../../projects/cauca-management/src/lib/provide-cauca-management.ts","../../../projects/cauca-management/src/lib/management.routes.ts","../../../projects/cauca-management/src/lib/core/api/group-management.service.ts","../../../projects/cauca-management/src/lib/components/group-list-grid/group-list-grid.component.ts","../../../projects/cauca-management/src/lib/components/group-list-grid/group-list-grid.component.html","../../../projects/cauca-management/src/lib/pages/groups-page/groups-page.component.ts","../../../projects/cauca-management/src/lib/pages/groups-page/groups-page.component.html","../../../projects/cauca-management/src/lib/core/functions/generate-group.ts","../../../projects/cauca-management/src/lib/core/states/group-edition-state.service.ts","../../../projects/cauca-management/src/lib/core/models/user-for-group.ts","../../../projects/cauca-management/src/lib/core/api/user-search.service.ts","../../../projects/cauca-management/src/lib/components/group-user-selection-dialog/group-user-selection-dialog.component.html","../../../projects/cauca-management/src/lib/components/group-user-selection-dialog/group-user-selection-dialog.component.ts","../../../projects/cauca-management/src/lib/components/group-user-edition-list/group-user-edition-list.component.html","../../../projects/cauca-management/src/lib/components/group-user-edition-list/group-user-edition-list.component.ts","../../../projects/cauca-management/src/lib/core/models/group.ts","../../../projects/cauca-management/src/lib/core/api/permission-management.service.ts","../../../projects/cauca-management/src/lib/components/group-permission-list/group-permission-list.component.html","../../../projects/cauca-management/src/lib/components/group-permission-list/group-permission-list.component.ts","../../../projects/cauca-management/src/lib/components/group-edition-form/group-edition-form.component.html","../../../projects/cauca-management/src/lib/components/group-edition-form/group-edition-form.component.ts","../../../projects/cauca-management/src/lib/pages/group-edition-page/group-edition-page.component.html","../../../projects/cauca-management/src/lib/pages/group-edition-page/group-edition-page.component.ts","../../../projects/cauca-management/src/lib/cauca-management.service.ts","../../../projects/cauca-management/src/lib/cauca-management.component.ts","../../../projects/cauca-management/src/lib/cauca-management.component.html","../../../projects/cauca-management/src/lib/shared/services/management-group.service.ts","../../../projects/cauca-management/src/lib/shared/services/management-user.service.ts","../../../projects/cauca-management/src/lib/shared/services/management-permission.service.ts","../../../projects/cauca-management/src/lib/cauca-management-group/cauca-management-group.component.html","../../../projects/cauca-management/src/lib/cauca-management-group/cauca-management-group.component.ts","../../../projects/cauca-management/src/lib/shared/models/user-model.ts","../../../projects/cauca-management/src/lib/cauca-management-user/cauca-management-user.component.ts","../../../projects/cauca-management/src/lib/cauca-management-user/cauca-management-user.component.html","../../../projects/cauca-management/src/lib/cauca-management.module.ts","../../../projects/cauca-management/src/lib/shared/models/user-group-model.ts","../../../projects/cauca-management/src/lib/shared/models/user-permission-model.ts","../../../projects/cauca-management/src/lib/shared/models/group-model.ts","../../../projects/cauca-management/src/lib/shared/models/group-permission-model.ts","../../../projects/cauca-management/src/public-api.ts","../../../projects/cauca-management/src/cauca-911-management.ts"],"sourcesContent":["import { EnvironmentProviders, InjectionToken, Injector, Provider, Type } from '@angular/core';\r\nimport { RefreshablePermissionState } from '../public-api';\r\n\r\nexport const MANAGEMENT_URL_PREFIX = new InjectionToken<string>('MANAGEMENT_URL_PREFIX');\r\nexport const MANAGEMENT_ROUTE_SEGMENT = new InjectionToken<string>('MANAGEMENT_ROUTE_SEGMENT');\r\nexport const REFRESHABLE_PERMISSION_STATE_TOKEN = new InjectionToken<RefreshablePermissionState>('REFRESHABLE_PERMISSION_STATE_TOKEN');\r\n\r\nexport interface CaucaManagementConfig {\r\n managementUrlPrefix?: string | null;\r\n managementRouteSegment?: string | null;\r\n refreshablePermissionState: Type<RefreshablePermissionState>;\r\n}\r\n\r\nexport function provideCaucaManagement(config: CaucaManagementConfig): (Provider | EnvironmentProviders)[] {\r\n return [\r\n ...(config?.managementUrlPrefix != null\r\n ? [{ provide: MANAGEMENT_URL_PREFIX, useValue: config.managementUrlPrefix }]\r\n : []),\r\n ...(config?.managementRouteSegment != null\r\n ? [{ provide: MANAGEMENT_ROUTE_SEGMENT, useValue: config.managementRouteSegment }]\r\n : []),\r\n { provide: REFRESHABLE_PERMISSION_STATE_TOKEN, useFactory: (injector: Injector) => injector.get(config.refreshablePermissionState), deps: [Injector] } \r\n ];\r\n}","import { Routes } from '@angular/router';\r\nimport { pendingChangesGuard } from '@cauca-911/material';\r\n\r\nexport const managementGroupRoutes: Routes = [{\r\n path: 'groups',\r\n loadComponent: () => import('./pages/groups-page/groups-page.component').then(m => m.GroupsPageComponent),\r\n }, {\r\n path: 'groups/:id',\r\n loadComponent: () => import('./pages/group-edition-page/group-edition-page.component').then(m => m.GroupEditionPageComponent),\r\n canDeactivate: [pendingChangesGuard],\r\n }];","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { Group } from '../models/group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupManagementService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public async deleteGroup(groupId: string): Promise<void> {\n await firstValueFrom(this.client.delete(this.buildApiUrl(`GroupManagement/${groupId}`)));\n }\n\n public async save(group: Group): Promise<void> {\n await firstValueFrom( this.client.post<Group>(this.buildApiUrl(`GroupManagement`), group));\n }\n\n public async get(groupId: string): Promise<Group> {\n return await firstValueFrom(this.client.get<Group>(this.buildApiUrl(`GroupManagement/${groupId}`)));\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, inject, OnInit, ViewChild } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { MatSort } from '@angular/material/sort';\nimport { Router } from '@angular/router';\nimport ODataFilterBuilder from 'odata-filter-builder';\nimport { ODataFilter } from 'odata-data-source';\nimport { DialogService } from '@cauca-911/material';\nimport { DataGridCommandsColumnComponent, OdataGridComponent, SortableDataGridCheckColumnComponent, SortableDataGridColumnComponent } from '@cauca-911/datagrid';\nimport { GroupManagementService } from '../../core/api/group-management.service';\n\n@Component({\n selector: 'cauca-group-list-grid',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent, DataGridCommandsColumnComponent, TranslatePipe],\n templateUrl: './group-list-grid.component.html',\n styleUrl: './group-list-grid.component.scss'\n})\nexport class GroupListGridComponent implements OnInit {\n\n public readonly columns = computed(() => this.getColumns());\n\n @ViewChild(OdataGridComponent, { static: true }) public table!: OdataGridComponent;\n @ViewChild(MatSort, { static: true }) public sort!: MatSort;\n\n private readonly router = inject(Router);\n private readonly dialog = inject(DialogService);\n private readonly service = inject(GroupManagementService);\n\n public ngOnInit(): void {\n this.table.setUpSort(this.sort);\n }\n\n public createGroup(): void {\n this.router.navigate([this.router.url, 'new']);\n }\n\n public async deleteGroup(group: any): Promise<void> {\n if (await this.dialog.askForDeleteConfirmation(group.name, 'management.group', true)) {\n try {\n await this.service.deleteGroup(group.id);\n this.table.refreshData();\n } catch {\n await this.dialog.showDeletionError(group.name);\n }\n }\n }\n\n public filterPredicate = (filter: string): ODataFilter[] => {\n let builder = new ODataFilterBuilder();\n if (filter) {\n builder = builder.and(ODataFilterBuilder('or')\n .contains('searchableGroup', filter)\n .contains('searchableUsers', filter)\n );\n }\n return [{getFilter: () => [builder.toString()]}];\n };\n\n private getColumns(): string[] {\n const baseColumns = ['name', 'assignableByAllUsers'];\n return [...baseColumns, 'buttons'];\n }\n}\n\n","<cauca-odata-grid matSort\n [showTableOptions]=\"true\"\n class=\"groups-datagrid\"\n aria-describedby=\"Groups table\"\n resourceName=\"GroupList\"\n [showAddButton]=\"true\"\n (addButtonClick)=\"createGroup()\"\n [addButtonLabel]=\"'groups.addButtonLabel'| translate\"\n [baseSort]=\"['name']\"\n [filterPredicate]=\"filterPredicate\"\n [displayedColumns]=\"columns()\">\n\n <cauca-sortable-data-grid-column id=\"name\" prop=\"name\" [label]=\"'groups.groupNameColumnLabel'|translate\"/>\n <cauca-sortable-data-grid-check-column id=\"is-assignable-all-users\" prop=\"assignableByAllUsers\" [label]=\"'groups.assignableByAllUsersColumnLabel'|translate\" width=\"200px\" />\n <cauca-data-grid-commands-column id=\"buttons\" prop=\"buttons\" [canDelete]=\"true\" [canEdit]=\"true\" editLinkField=\"id\" (deleteClick)=\"deleteGroup($event)\" />\n\n</cauca-odata-grid>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { PageTitleComponent } from '@cauca-911/material';\nimport { GroupListGridComponent } from '../../components/group-list-grid/group-list-grid.component';\n\n@Component({\n selector: 'cauca-groups-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatCardModule, PageTitleComponent, GroupListGridComponent],\n templateUrl: './groups-page.component.html',\n styleUrl: './groups-page.component.scss'\n})\nexport class GroupsPageComponent {\n}\n","<cauca-page-title\n [showBreadcrumb]=\"true\"\n caption=\"menu.groups\"\n baseCrumb=\"menu.management\"\n breadcrumb=\"menu.groups\" />\n\n<mat-card class=\"page-content\">\n\n <mat-card-content class=\"page-content-grid\">\n <cauca-group-list-grid />\n </mat-card-content>\n\n</mat-card>\n","import { v4 as uuid } from 'uuid';\nimport { Group } from '../models/group';\n\nexport function generateGroup(): Group {\n return {\n id: uuid(),\n name: '',\n assignableByAllUsers: false,\n permissions: [],\n users: []\n };\n}","import { inject, Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { GroupManagementService } from '../api/group-management.service';\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\nimport { Group, GroupUser } from '../models/group';\nimport { generateGroup } from '../functions/generate-group';\nimport { startWith } from 'rxjs';\nimport { REFRESHABLE_PERMISSION_STATE_TOKEN } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupEditionStateService {\n public isEditionMode = true;\n public form = this.generateForm();\n public id: string| null = null;\n\n public readonly users = toSignal(\n this.form.get('users')!.valueChanges.pipe(startWith(this.form.get('users')!.value)),\n { initialValue: [] as GroupUser[] }\n );\n\n private readonly usersControl = this.form.get('users') as FormControl<GroupUser[]>;\n private currentGroup: Group| null = null;\n private readonly dataService = inject(GroupManagementService);\n private readonly userPermissionStateService = inject(REFRESHABLE_PERMISSION_STATE_TOKEN);\n\n public async setGroup(id: string): Promise<void> {\n if (id === 'new') {\n this.isEditionMode = false;\n this.generateNewGroup();\n } else {\n this.setCurrentGroup(await this.dataService.get(id));\n }\n }\n\n public async saveData(): Promise<boolean> {\n const data = this.getUpdatedGroup();\n if (this.form.valid) {\n this.form.disable();\n await this.dataService.save(data);\n await this.refreshCurrentUserPermissions();\n return true;\n } else {\n return false;\n }\n }\n\n public generateNewGroup(): void {\n this.currentGroup = generateGroup();\n this.setCurrentGroup(this.currentGroup);\n this.form.markAsPristine();\n }\n\n public setCurrentGroup(group: Group): void {\n this.id = group.id;\n this.currentGroup = group;\n if (!this.isEditionMode) {\n this.form.get('name')!.setValidators(Validators.required);\n }\n this.form.patchValue(group);\n this.form.get('users')!.setValue(group.users || []);\n this.form.get('permissions')!.setValue(group.permissions || []);\n this.form.markAsPristine();\n }\n\n public getUpdatedGroup(): Group {\n const formValues = this.form.value;\n return {\n ...this.currentGroup,\n ...formValues,\n };\n }\n\n public isDirty(): boolean {\n return this.form.dirty;\n }\n\n public isValid(): boolean {\n this.form.updateValueAndValidity();\n return this.form.valid;\n }\n\n public showErrors(): void {\n this.form.markAllAsTouched();\n }\n\n public addUsers(users: GroupUser[]): void {\n const current = this.usersControl.value ?? [];\n const existingIds = new Set(current.map(u => u.id));\n const newUsers = users.filter(u => !existingIds.has(u.id));\n this.usersControl.setValue([...current, ...newUsers]);\n this.form.markAsDirty();\n }\n\n public removeUser(userId: string): void {\n const current = this.usersControl.value ?? [];\n this.usersControl.setValue(current.filter(u => u.id !== userId));\n this.form.markAsDirty();\n }\n\n private async refreshCurrentUserPermissions() {\n try {\n await this.userPermissionStateService.refresh();\n } catch (error) {\n console.error('Error refreshing user permissions after group save', error);\n }\n }\n\n private generateForm(): FormGroup {\n const formGroup = new FormGroup({\n name: new FormControl('', [Validators.required]),\n assignableByAllUsers: new FormControl(false),\n users: new FormControl([]),\n permissions: new FormControl([])\n });\n return formGroup;\n }\n}\n","export interface UserForGroupData {\r\n id: string;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n\r\nexport class UserForGroup {\r\n public id: string;\r\n public firstName: string;\r\n public lastName: string;\r\n public fullName: string;\r\n\r\n public constructor(data: UserForGroupData) {\r\n this.id = data.id;\r\n this.firstName = data.firstName;\r\n this.lastName = data.lastName;\r\n this.fullName = `${data.firstName} ${data.lastName}`;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { UserForGroup, UserForGroupData } from '../models/user-for-group';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserSearchService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly urlPrefix = inject(MANAGEMENT_URL_PREFIX, { optional: true }) ?? '';\n\n public async search(\n query: string,\n excludedUserIds: string[],\n skip: number,\n top: number\n ): Promise<{ items: UserForGroup[]; totalCount: number }> {\n const url = this.buildApiUrl('UserSearch');\n const body: { query: string; skip: number; top: number; excludedUserIds: string[] } = {\n query,\n skip,\n top,\n excludedUserIds\n };\n const response = await firstValueFrom(\n this.client.post<{ items: UserForGroupData[]; totalCount: number }>(url, body)\n );\n return {\n items: response.items.map(u => new UserForGroup(u)),\n totalCount: response.totalCount\n };\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n const normalizedPrefix = this.urlPrefix.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}/${path}`\n : `${normalizedApiUrl}/${path}`;\n }\n}\n","<div mat-dialog-title>\n <div class=\"h6\">{{ 'groupEdition.userSelectionTitle' | translate }}</div>\n <cauca-icon-button id=\"closeButton\" (buttonClick)=\"closeClick()\" icon=\"close\" />\n</div>\n\n<mat-dialog-content class=\"dialog-content\">\n <mat-form-field subscriptSizing=\"dynamic\" class=\"search-field\">\n <mat-label>{{ 'groupEdition.searchUserPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"searchTerm()\" (input)=\"searchTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n @if (searchTerm().length > 0 && searchTerm().length < MIN_SEARCH_LENGTH) {\n <div class=\"search-hint body2\">{{ 'groupEdition.searchMinChars' | translate }}</div>\n }\n\n <div class=\"results-region\">\n <cauca-loading-error (retryRequest)=\"searchResource.reload()\" />\n\n @if (searchResource.isLoading() && !results().length) {\n <cauca-loading-spinner-indicator />\n } @else if (results().length) {\n <mat-selection-list class=\"results-list\" [compareWith]=\"compareUserById\" (selectionChange)=\"onSelectionChange($event)\">\n @for (user of results(); track user.id; let i = $index) {\n <mat-list-option\n [value]=\"user\"\n [selected]=\"selectedUserIds().has(user.id)\"\n color=\"primary\"\n class=\"result-item\"\n [class.result-item--even]=\"i % 2 === 1\">\n {{ user.fullName }}\n </mat-list-option>\n }\n </mat-selection-list>\n\n @if (totalCount() > PAGE_SIZE) {\n <cauca-list-paginator\n #resultPaginator\n [itemsCount]=\"totalCount()\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n } @else if (!searchResource.isLoading() && totalCount() === 0 && debouncedSearch().length >= MIN_SEARCH_LENGTH) {\n <div class=\"no-results body2\">{{ 'noResult' | translate }}</div>\n }\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"dialog-actions\">\n <div class=\"selected-users-panel\">\n <span class=\"selected-users-label caption\">{{ 'groupEdition.selectedUsersLabel' | translate }}</span>\n <div class=\"selected-users-names body2\" [matTooltip]=\"selectedUsersLabel()\">{{ selectedUsersLabel() }}</div>\n </div>\n <cauca-stroked-button color=\"primary\" label=\"cancel\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button\n color=\"primary\"\n label=\"ok\"\n [isDisabled]=\"selectedUsers().length === 0\"\n (buttonClick)=\"confirm()\" />\n</mat-dialog-actions>\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, resource, signal, untracked, viewChild } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule, MatSelectionListChange } from '@angular/material/list';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { debounceTime } from 'rxjs';\nimport { LoadingSpinnerIndicatorComponent, LoadingErrorComponent, StrokedButtonComponent, RaisedButtonComponent, LoadingStateService, ListPaginatorComponent, IconButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { UserSearchService } from '../../core/api/user-search.service';\nimport { UserForGroup } from '../../core/models/user-for-group';\nimport { GroupUser } from '../../core/models/group';\n\nexport interface GroupUserSelectionDialogData {\n currentUserIds: string[];\n}\n\n@Component({\n selector: 'cauca-group-user-selection-dialog',\n standalone: true,\n imports: [\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatIconModule,\n MatListModule,\n FormsModule,\n TranslatePipe,\n LoadingSpinnerIndicatorComponent,\n LoadingErrorComponent,\n StrokedButtonComponent,\n RaisedButtonComponent,\n ListPaginatorComponent,\n MatTooltipModule,\n IconButtonComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [UserSearchService, LoadingStateService],\n templateUrl: './group-user-selection-dialog.component.html',\n styleUrl: './group-user-selection-dialog.component.scss'\n})\nexport class GroupUserSelectionDialogComponent {\n protected readonly MIN_SEARCH_LENGTH = 3;\n protected readonly PAGE_SIZE = 10;\n protected readonly data = inject<GroupUserSelectionDialogData>(MAT_DIALOG_DATA);\n protected readonly searchTerm = signal('');\n protected readonly selectedUsers = signal<GroupUser[]>([]);\n protected readonly currentPage = signal(1);\n protected readonly paginator = viewChild<ListPaginatorComponent>('resultPaginator');\n\n protected readonly selectedUserIds = computed(() => new Set(this.selectedUsers().map(u => u.id)));\n\n protected readonly selectedUsersLabel = computed(() =>\n [...this.selectedUsers()]\n .sort((a, b) => toLowerCaseAndWithoutDiacritics(a.fullName).localeCompare(toLowerCaseAndWithoutDiacritics(b.fullName)))\n .map(u => u.fullName)\n .join(', ')\n );\n\n protected readonly debouncedSearch = toSignal(\n toObservable(this.searchTerm).pipe(debounceTime(300)),\n { initialValue: '' }\n );\n\n protected readonly searchResource = resource({\n params: computed(() => ({ query: this.debouncedSearch(), page: this.currentPage() })),\n loader: ({ params }) => {\n if (params.query.length < this.MIN_SEARCH_LENGTH) {\n return Promise.resolve({ items: [], totalCount: 0 });\n }\n const skip = (params.page - 1) * this.PAGE_SIZE;\n return this.userSearchService.search(params.query, this.data.currentUserIds, skip, this.PAGE_SIZE);\n }\n });\n\n protected readonly results = computed(() => this.lastResult().items);\n protected readonly totalCount = computed(() => this.lastResult().totalCount);\n \n private readonly lastResult = signal<{ items: UserForGroup[]; totalCount: number }>({ items: [], totalCount: 0 });\n private readonly dialogRef = inject(MatDialogRef<GroupUserSelectionDialogComponent>);\n private readonly userSearchService = inject(UserSearchService);\n\n public constructor() {\n effect(() => {\n const value = this.searchResource.value();\n if (value) {\n untracked(() => this.lastResult.set(value));\n }\n });\n\n effect(() => {\n this.debouncedSearch();\n untracked(() => {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n this.lastResult.set({ items: [], totalCount: 0 });\n });\n });\n }\n\n public closeClick(): void {\n this.dialogRef.close();\n }\n\n public toggleUser(user: UserForGroup): void {\n const groupUser: GroupUser = { id: user.id, fullName: user.fullName };\n if (this.selectedUserIds().has(user.id)) {\n this.selectedUsers.update(current => current.filter(u => u.id !== user.id));\n } else {\n this.selectedUsers.update(current => [...current, groupUser]);\n }\n }\n\n public onPageChange(page: number): void {\n this.currentPage.set(page);\n }\n\n public onSelectionChange(event: MatSelectionListChange): void {\n for (const option of event.options) {\n this.toggleUser(option.value as UserForGroup);\n }\n }\n\n public cancel(): void {\n this.dialogRef.close();\n }\n\n public confirm(): void {\n this.dialogRef.close(this.selectedUsers());\n }\n\n protected readonly compareUserById = (a: UserForGroup, b: UserForGroup): boolean => a?.id === b?.id;\n}\n","<div class=\"user-edition-list\">\n\n <mat-form-field subscriptSizing=\"dynamic\" class=\"filter-field\">\n <mat-label>{{ 'groupEdition.filterUsersPlaceholder' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"filterTerm()\" (input)=\"filterTerm.set($any($event.target).value)\" />\n <mat-icon matSuffix>search</mat-icon>\n </mat-form-field>\n\n <mat-list class=\"users-list\">\n @for (user of pagedUsers(); track user.id) {\n <mat-list-item class=\"user-item\">\n <mat-icon matListItemIcon>person</mat-icon>\n <div matListItemTitle class=\"user-name\">{{ user.fullName }}</div>\n <cauca-icon-button\n matListItemMeta\n class=\"delete-button\"\n icon=\"delete\"\n color=\"error\"\n (buttonClick)=\"removeUser(user)\"\n [attr.aria-label]=\"'groupEdition.removeUserLabel' | translate\" />\n </mat-list-item>\n } @empty {\n @if (filterTerm()) {\n <div class=\"no-users body2\">{{ 'groupEdition.noFilteredUsers' | translate }}</div>\n } @else {\n <div class=\"no-users body2\">{{ 'groupEdition.noUsers' | translate }}</div>\n }\n }\n </mat-list>\n\n @if (filteredUsers().length > PAGE_SIZE) {\n <cauca-list-paginator\n #paginator\n [itemsCount]=\"filteredUsers().length\"\n [pageSize]=\"PAGE_SIZE\"\n (pageChange)=\"onPageChange($event)\" />\n }\n\n <cauca-raised-button\n class=\"add-users-button\"\n color=\"primary\"\n label=\"groupEdition.addUsersButton\"\n (buttonClick)=\"openAddUsersDialog()\" />\n</div>\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, signal, untracked, viewChild } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatIconModule } from '@angular/material/icon';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { DialogService, IconButtonComponent, ListPaginatorComponent, RaisedButtonComponent } from '@cauca-911/material';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { GroupUser } from '../../core/models/group';\nimport { GroupUserSelectionDialogComponent, GroupUserSelectionDialogData } from '../group-user-selection-dialog/group-user-selection-dialog.component';\nimport { MatListModule } from '@angular/material/list';\n\n@Component({\n selector: 'cauca-group-user-edition-list',\n standalone: true,\n imports: [TranslatePipe, IconButtonComponent, RaisedButtonComponent, ListPaginatorComponent, MatFormFieldModule, MatInputModule, MatIconModule, FormsModule, MatListModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [DialogService],\n templateUrl: './group-user-edition-list.component.html',\n styleUrl: './group-user-edition-list.component.scss'\n})\nexport class GroupUserEditionListComponent {\n protected readonly PAGE_SIZE = 10;\n protected readonly currentPage = signal(1);\n protected readonly filterTerm = signal('');\n protected readonly paginator = viewChild<ListPaginatorComponent>('paginator');\n\n protected readonly sortedUsers = computed(() =>\n [...this.state.users()].sort((a, b) =>\n toLowerCaseAndWithoutDiacritics(a.fullName).localeCompare(toLowerCaseAndWithoutDiacritics(b.fullName))\n )\n );\n\n protected readonly filteredUsers = computed(() => {\n const term = toLowerCaseAndWithoutDiacritics(this.filterTerm());\n if (!term) return this.sortedUsers();\n return this.sortedUsers().filter(u => toLowerCaseAndWithoutDiacritics(u.fullName).includes(term));\n });\n\n protected readonly pagedUsers = computed(() => {\n const start = (this.currentPage() - 1) * this.PAGE_SIZE;\n return this.filteredUsers().slice(start, start + this.PAGE_SIZE);\n });\n\n private readonly state = inject(GroupEditionStateService);\n private readonly dialogService = inject(DialogService);\n private readonly dialog = inject(MatDialog);\n\n public constructor() {\n effect(() => {\n this.filterTerm();\n untracked(() => {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n });\n });\n }\n\n public async removeUser(user: GroupUser): Promise<void> {\n const confirmed = await this.dialogService.askForDeleteConfirmation(\n user.fullName,\n 'groupEdition.userEntityName',\n true\n );\n if (confirmed) {\n this.state.removeUser(user.id);\n this.clampCurrentPage();\n }\n }\n\n public onPageChange(page: number): void {\n this.currentPage.set(page);\n }\n\n public openAddUsersDialog(): void {\n const currentUserIds = this.state.users().map((u: GroupUser) => u.id);\n const dialogData: GroupUserSelectionDialogData = { currentUserIds };\n\n this.dialog.open(GroupUserSelectionDialogComponent, {\n width: '600px',\n maxHeight: '80vh',\n autoFocus: false,\n data: dialogData\n }).afterClosed().subscribe((selectedUsers: GroupUser[] | undefined) => {\n if (selectedUsers?.length) {\n this.state.addUsers(selectedUsers);\n this.paginator()?.moveToFirst();\n this.currentPage.set(1);\n }\n });\n }\n\n private clampCurrentPage(): void {\n const total = untracked(this.filteredUsers).length;\n const maxPage = Math.ceil(total / this.PAGE_SIZE) || 1;\n if (untracked(this.currentPage) > maxPage) {\n this.currentPage.set(1);\n this.paginator()?.moveToFirst();\n }\n }\n}\n","import { Permission } from \"./permission\";\nimport { v4 as uuid } from 'uuid';\n\nexport interface Group {\n id: string;\n name: string;\n assignableByAllUsers: boolean;\n permissions: GroupPermission[];\n users: GroupUser[];\n}\n\nexport interface GroupUser {\n id: string;\n fullName: string;\n}\n\nexport interface GroupPermission {\n idModulePermission: string;\n isAllowed: boolean;\n idGroup: string;\n id: string;\n}\n\nexport class PermissionValue {\n public id: string;\n public name: string;\n public allowed: boolean|null;\n\n private permission: Permission;\n private groupPermission: GroupPermission|null|undefined;\n\n public constructor(permission: Permission, groupPermission: GroupPermission|null|undefined) {\n this.id = permission.id;\n this.permission = permission;\n this.groupPermission = groupPermission;\n this.name = permission.name;\n this.allowed = groupPermission?.isAllowed ?? null;\n }\n\n public toGroupPermission(idGroup: string): GroupPermission|null {\n if (this.allowed === null) {\n return null;\n } else if (this.groupPermission) {\n return { ...this.groupPermission, isAllowed: this.allowed };\n } else {\n return { id: uuid(), idGroup, idModulePermission: this.permission.id, isAllowed: this.allowed };\n }\n }\n}","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { firstValueFrom } from 'rxjs';\nimport { Permission } from '../models/permission';\nimport { MANAGEMENT_URL_PREFIX } from '../../provide-cauca-management';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionManagementService {\n\n private readonly client = inject(HttpClient);\n private readonly baseUrl = this.buildBaseUrl(\n inject(CaucaCoreService).getConfig().apiUrl, \n inject(MANAGEMENT_URL_PREFIX, { optional: true }));\n\n public async get(): Promise<Permission[]> {\n return await firstValueFrom(this.client.get<Permission[]>(this.buildApiUrl(`PermissionManagement`)));\n }\n\n private buildBaseUrl(apiUrl: string, urlPrefix: string | null): string {\n const normalizedApiUrl = apiUrl.replace(/\\/+$/, '');\n const normalizedPrefix = urlPrefix?.trim().replace(/^\\/+|\\/+$/g, '');\n return normalizedPrefix\n ? `${normalizedApiUrl}/${normalizedPrefix}`\n : normalizedApiUrl;\n }\n\n private buildApiUrl(path: string): string {\n const normalizedApiUrl = this.baseUrl.replace(/\\/+$/, '');\n return `${normalizedApiUrl}/${path}`;\n }\n}\n","<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"full-width-field grid-search-box\">\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\n <input matInput [(ngModel)]=\"searchText\">\n <mat-icon matSuffix>search</mat-icon>\n</mat-form-field>\n\n<mat-selection-list id=\"permission-list\">\n @for (permission of filteredPermissionsValues(); track permission.id) {\n <mat-list-item class=\"permission-item\">\n <mat-checkbox\n [color]=\"permission.allowed === null ? undefined : 'primary'\"\n [indeterminate]=\"permission.allowed === null\"\n [checked]=\"permission.allowed\"\n (click)=\"onValueChange(permission)\" >\n {{permission.name}}\n </mat-checkbox>\n </mat-list-item>\n } @empty {\n <div class=\"no-result\">\n <mat-icon class=\"no-result-icon\">grid_off</mat-icon>\n <div class=\"no-result-text body2\">{{ 'noResult' | translate }}</div>\n </div>\n }\n\n</mat-selection-list>\n","import { ChangeDetectionStrategy, Component, computed, inject, model, OnInit, signal } from '@angular/core';\nimport { MatListModule } from '@angular/material/list';\nimport { MatFormField, MatLabel, MatSuffix } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatIcon } from '@angular/material/icon';\nimport { PermissionValue, GroupPermission } from '../../core/models/group';\nimport { Permission } from '../../core/models/permission';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { PermissionManagementService } from '../../core/api/permission-management.service';\nimport { toLowerCaseAndWithoutDiacritics } from '@cauca-911/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'cauca-group-permission-list',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, TranslatePipe, FormsModule, MatIcon, MatCheckboxModule],\n templateUrl: './group-permission-list.component.html',\n styleUrl: './group-permission-list.component.scss',\n})\nexport class GroupPermissionListComponent implements OnInit {\n\n public searchText = model<string>('');\n public currentPermissions = signal<PermissionValue[]>([]);\n public filteredPermissionsValues = computed(() =>\n this.currentPermissions()?.filter((permission) => toLowerCaseAndWithoutDiacritics(permission.name)\n .includes(toLowerCaseAndWithoutDiacritics(this.searchText()))) || []);\n\n private readonly service = inject(PermissionManagementService);\n private readonly state = inject(GroupEditionStateService);\n private modulePermissions!: Permission[];\n\n public async ngOnInit(): Promise<void> {\n await this.loadData();\n }\n\n public onValueChange(value: PermissionValue): void {\n if (value.allowed === null) {\n value.allowed = true;\n } else if (value.allowed) {\n value.allowed = false;\n } else {\n value.allowed = null;\n }\n this.state.form.get('permissions')!.setValue(this.toGroupPermissions(this.state.id!));\n }\n\n private async loadData(): Promise<void> {\n try {\n this.modulePermissions = await this.service.get();\n const values = this.modulePermissions\n .map((permission) => new PermissionValue(permission, this.getPermissions().find((groupPermission) => groupPermission.idModulePermission === permission.id)));\n this.currentPermissions.set(values);\n } catch {\n this.modulePermissions = [];\n }\n }\n\n private toGroupPermissions(idGroup: string): GroupPermission[] {\n return this.currentPermissions().map((permissionValue) => permissionValue.toGroupPermission(idGroup))\n .filter((groupPermission) => groupPermission !== null) as GroupPermission[];\n }\n\n private getPermissions(): GroupPermission[] {\n return this.state.form.get('permissions')!.value;\n }\n\n}\n","<div [formGroup]=\"state.form\">\n\n <cauca-group-container id=\"group-options\" caption=\"groupEdition.groupNameFieldLabel\">\n <mat-form-field id=\"group-name\">\n <mat-label>{{ 'groupEdition.nameFieldLabel' | translate }}</mat-label>\n <input matInput type=\"text\" formControlName=\"name\" required>\n @if (state.form.get(\"name\").hasError('required')) {<mat-error>{{'error.requiredField' | translate}}</mat-error>}\n </mat-form-field>\n <mat-slide-toggle id=\"assignable-by-all-users\" formControlName=\"assignableByAllUsers\" color=\"primary\">{{'groupEdition.assignableByAllUsersLabel' | translate}}</mat-slide-toggle>\n </cauca-group-container>\n\n <mat-divider />\n\n <cauca-group-container id=\"group-users\" caption=\"groupEdition.groupUsersFieldLabel\">\n <cauca-group-user-edition-list />\n </cauca-group-container>\n\n <mat-divider />\n\n <cauca-group-container id=\"group-permissions\" caption=\"groupEdition.groupPermissionsFieldLabel\">\n <cauca-group-permission-list />\n </cauca-group-container>\n\n</div>\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatInputModule } from '@angular/material/input';\nimport { GroupUserEditionListComponent } from '../group-user-edition-list/group-user-edition-list.component';\nimport { GroupPermissionListComponent } from '../group-permission-list/group-permission-list.component';\nimport { GroupContainerComponent } from '@cauca-911/material';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { TranslatePipe } from '@ngx-translate/core';\n\n@Component({\n selector: 'cauca-group-edition-form',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslatePipe, MatFormFieldModule, MatInputModule, MatSlideToggleModule, MatDividerModule, ReactiveFormsModule, GroupContainerComponent, GroupUserEditionListComponent, GroupPermissionListComponent],\n templateUrl: './group-edition-form.component.html',\n styleUrl: './group-edition-form.component.scss'\n})\nexport class GroupEditionFormComponent {\n public readonly state = inject(GroupEditionStateService);\n}\n","<cauca-page-title\n [caption]=\"title()\"\n baseCrumb=\"menu.management\"\n [breadcrumb]=\"title()\"\n [location]=\"currentLocation()\"\n [showBreadcrumb]=\"true\" />\n\n<mat-card>\n\n <mat-card-content>\n\n <cauca-loading-spinner-indicator />\n <cauca-loading-error (retryRequest)=\"loadData()\" />\n\n @if (isLoaded()) {\n <cauca-group-edition-form />\n }\n\n @if (showSavingError()) {\n <div class=\"spacer\"></div>\n <cauca-saving-error-box [show]=\"showSavingError()\" />\n }\n\n </mat-card-content>\n\n <mat-card-actions>\n <div class=\"spacer\"></div>\n <cauca-stroked-button class=\"cancel-button\" color=\"primary\" label=\"cancel\" [isDisabled]=\"isSaving()\" (buttonClick)=\"cancel()\" />\n <cauca-raised-button class=\"save-button\" color=\"primary\" label=\"save\" [isInProgress]=\"isSaving()\" (buttonClick)=\"save()\" />\n </mat-card-actions>\n\n</mat-card>\n","import { ChangeDetectionStrategy, Component, computed, HostListener, inject, input, OnInit, signal } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { Router } from '@angular/router';\nimport { PageTitleComponent, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, SavingErrorBoxComponent, StrokedButtonComponent, RaisedButtonComponent, LoadingStateService, DialogService, ConfirmationResult, OnDeactivate } from '@cauca-911/material';\nimport { GroupEditionFormComponent } from '../../components/group-edition-form/group-edition-form.component';\nimport { GroupManagementService } from '../../core/api/group-management.service';\nimport { GroupEditionStateService } from '../../core/states/group-edition-state.service';\nimport { MANAGEMENT_ROUTE_SEGMENT } from '../../provide-cauca-management';\n\n@Component({\n selector: 'cauca-group-edition-page',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [PageTitleComponent, MatCardModule, LoadingSpinnerIndicatorComponent, LoadingErrorComponent, SavingErrorBoxComponent, StrokedButtonComponent, RaisedButtonComponent, GroupEditionFormComponent],\n templateUrl: './group-edition-page.component.html',\n styleUrl: './group-edition-page.component.scss',\n providers: [\n GroupEditionStateService,\n LoadingStateService,\n GroupManagementService,\n ]\n})\nexport class GroupEditionPageComponent implements OnInit, OnDeactivate {\n\n public readonly id = input.required<string>();\n public readonly isLoaded = signal<boolean>(false);\n public readonly isSaving = signal<boolean>(false);\n public readonly showSavingError = signal(false);\n public readonly title = computed(() => 'groupEdition.' + (this.id() === 'new' ? 'newGroupTitle' : 'editGroupTitle'));\n public readonly currentLocation = computed(() => [{ link: this.groupsPath, title: 'menu.groups' }]);\n\n private readonly state = inject(GroupEditionStateService);\n private readonly dialog = inject(DialogService);\n private readonly router = inject(Router);\n private readonly managementRouteSegment = inject(MANAGEMENT_ROUTE_SEGMENT, { optional: true });\n private readonly groupsPath = this.buildGroupsPath();\n private isClosing = false;\n\n public ngOnInit(): void {\n this.loadData();\n }\n\n public async canDeactivate(): Promise<boolean> {\n return await this.canCancel();\n }\n\n public async cancel(): Promise<void> {\n if (await this.canCancel()) {\n this.isClosing = true;\n await this.router.navigate([this.groupsPath]);\n }\n }\n\n public async save(): Promise<void> {\n try {\n await this.tryToSave();\n } catch {\n this.showSavingError.set(true);\n } finally {\n this.resetSavingState();\n }\n }\n\n public async loadData(): Promise<void> {\n try {\n await this.state.setGroup(this.id());\n this.isLoaded.set(true);\n } catch (e) {\n console.error(e);\n this.isLoaded.set(false);\n }\n }\n\n @HostListener('window:beforeunload', ['$event'])\n protected async onBeforeUnload(e: BeforeUnloadEvent): Promise<void> {\n if (await this.canCancel()) {\n e.preventDefault();\n }\n }\n\n private async tryToSave(): Promise<void> {\n this.initializeSavingState();\n if (await this.state.saveData()) {\n this.isClosing = true;\n this.router.navigate([this.groupsPath]);\n } else {\n this.showValidationError();\n }\n }\n\n private buildGroupsPath(): string {\n const defaultRouteSegment = 'management';\n const rawRouteSegment = this.managementRouteSegment?.trim();\n\n if (rawRouteSegment == null || rawRouteSegment === '') {\n return `/${defaultRouteSegment}/groups`;\n }\n\n const normalizedRouteSegment = rawRouteSegment\n .split('/')\n .map(segment => segment.trim())\n .find(segment => segment !== '') ?? defaultRouteSegment;\n\n return `/${normalizedRouteSegment}/groups`;\n }\n\n private async canCancel(): Promise<boolean> {\n return this.isClosing || !this.state.isDirty() || await this.askForCancelConfirmation() === ConfirmationResult.Yes;\n }\n\n private initializeSavingState(): void {\n this.isSaving.set(true);\n this.showSavingError.set(false);\n }\n\n private resetSavingState(): void {\n this.isSaving.set(false);\n this.state.form.enable();\n }\n\n private async askForCancelConfirmation(): Promise<ConfirmationResult> {\n return await this.dialog.askForConfirmation('cancelEditionDialog.title', 'cancelEditionDialog.message');\n }\n\n private showValidationError(): void {\n this.state.form.markAllAsTouched();\n this.dialog.showDialog('validationErrorDialog.title', 'validationErrorDialog.messageNext');\n }\n\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CaucaManagementService {\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'cauca-management',\n templateUrl: './cauca-management.component.html',\n styles: [],\n standalone: false\n})\nexport class CaucaManagementComponent {\n\n}\n","<div>{{'core.noGenericComponentOnThisLibrary' | translate}}</div>","import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { GroupModel } from '../models/group-model';\n\n/**\n * @deprecated This service is obsolete and should not be used.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementGroupService {\n private readonly http = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly baseUrlToUse = this.baseUrl.endsWith('api/') ? this.baseUrl : this.baseUrl + 'api/';\n\n public getAll(): Observable<GroupModel[]> {\n return this.http.get<GroupModel[]>(`${this.baseUrlToUse}GroupManagement`);\n }\n\n public get(idGroup: string): Observable<GroupModel> {\n return this.http.get<GroupModel>(`${this.baseUrlToUse}GroupManagement/${idGroup}`);\n }\n\n public save(group: GroupModel): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}GroupManagement`, group);\n }\n\n public delete(idGroup: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}GroupManagement/${idGroup}`);\n }\n\n public hasExistingGroupName(group: GroupModel): Observable<boolean> {\n return this.http.post<boolean>(`${this.baseUrlToUse}GroupManagement/GroupNameAlreadyExist`, group);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { UserGroupModel } from '../models/user-group-model';\nimport { UserPermissionModel } from '../models/user-permission-model';\nimport { CaucaCoreService } from '@cauca-911/core';\n\n/**\n * @deprecated This service is obsolete and should not be used.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementUserService {\n protected readonly http = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly baseUrlToUse = this.baseUrl.endsWith('api/') ? this.baseUrl : this.baseUrl + 'api/';\n\n public getAll<TUser>(): Observable<TUser[]> {\n return this.http.get<TUser[]>(`${this.baseUrlToUse}UserManagement`);\n }\n\n public get<TUser>(idUser: string): Observable<TUser> {\n return this.http.get<TUser>(`${this.baseUrlToUse}UserManagement/${idUser}`);\n }\n\n public getGroup(idUser: string): Observable<any> {\n return this.http.get(`${this.baseUrlToUse}UserManagement/${idUser}/groups`);\n }\n\n public addGroup(userGroup: UserGroupModel): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}UserManagement/group`, userGroup);\n }\n\n public deleteGroup(idUserGroup: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}UserManagement/groups/${idUserGroup}`);\n }\n\n public addPermission(userPermission: UserPermissionModel): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}UserManagement/permission`, userPermission);\n }\n\n public deletePermission(idUserPermission: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}UserManagement/groups/${idUserPermission}`);\n }\n\n public save<TUser>(user: TUser): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}UserManagement`, user);\n }\n\n public delete(idUser: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}UserManagement/${idUser}`);\n }\n\n public hasExistingUserName<TUser>(user: TUser): Observable<boolean> {\n return this.http.post<boolean>(`${this.baseUrlToUse}UserManagement/UserNameAlreadyExist`, user);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { CaucaCoreService } from '@cauca-911/core';\nimport { PermissionModel } from '../models/permission-model';\n\n\n/**\n * @deprecated This service is obsolete and should not be used.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ManagementPermissionService {\n private readonly http = inject(HttpClient);\n private readonly baseUrl = inject(CaucaCoreService).getConfig().apiUrl;\n private readonly baseUrlToUse = this.baseUrl.endsWith('api/') ? this.baseUrl : this.baseUrl + 'api/';\n\n public getAll(): Observable<PermissionModel[]> {\n return this.http.get<PermissionModel[]>(`${this.baseUrlToUse}PermissionManagement`);\n }\n\n public get(idPermission: string): Observable<PermissionModel> {\n return this.http.get<PermissionModel>(`${this.baseUrlToUse}PermissionManagement/${idPermission}`);\n }\n\n public save(permission: PermissionModel): Observable<any> {\n return this.http.post(`${this.baseUrlToUse}PermissionManagement`, permission);\n }\n\n public delete(idPermission: string): Observable<any> {\n return this.http.delete(`${this.baseUrlToUse}PermissionManagement/${idPermission}`);\n }\n}\n","<cauca-dx-data-grid [allowPrint]=\"showPrintButton\" keyExpr=\"id\" [dataSource]=\"groups\"\n (onRowInserted)=\"onRowInserted($event)\" (onInitNewRow)=\"onInitNewRow()\" (onRowUpdated)=\"onRowUpdated($event)\"\n (onEditingStart)=\"onEditingStart($event)\" (onRowRemoved)=\"onRowRemoved($event)\">\n\n <dxi-column dataField=\"name\" [caption]=\"'management.name' | translate\">\n <dxi-validation-rule type=\"async\" [message]=\"'management.groupNameAlreadyUsed' | translate\"\n [validationCallback]=\"groupNameAlreadyUsedValidation\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"assignableByAllUsers\" [caption]=\"'management.assignableByAllUsers' | translate\"\n dataType=\"boolean\" [visible]=\"showAssignableByAllUsers\">\n </dxi-column>\n <dxi-column dataField=\"users\" [caption]=\"'management.users' | translate\" editCellTemplate=\"usersEditTemplate\"\n [calculateCellValue]=\"calculateUsersCellValue\">\n </dxi-column>\n <dxi-column dataField=\"permissions\" [caption]=\"'management.permissions' | translate\" [visible]=\"false\"\n editCellTemplate=\"permissionsEditTemplate\">\n </dxi-column>\n <dxo-export [enabled]=\"false\"></dxo-export>\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\" [fullScreen]=\"!showColumn\"></dxo-popup>\n <dxo-form colCount=\"1\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\n <dxi-item dataField=\"name\" [isRequired]=\"true\"></dxi-item>\n <dxi-item dataField=\"users\"></dxi-item>\n <dxi-item dataField=\"permissions\"></dxi-item>\n <dxi-item dataField=\"assignableByAllUsers\" [visible]=\"showAssignableByAllUsers\"></dxi-item>\n </dxo-form>\n </dxo-editing>\n\n <div *dxTemplate=\"let field of 'usersEditTemplate'\">\n <dx-tag-box valueExpr=\"id\" [displayExpr]=\"fullName\" [dataSource]=\"users\" [searchEnabled]=\"true\"\n [searchExpr]=\"fullName\" (onInitialized)=\"getGroupUser(field, $event)\"\n (onValueChanged)=\"setGroupUser(field, $event)\">\n </dx-tag-box>\n </div>\n <div *dxTemplate=\"let field of 'permissionsEditTemplate'\">\n <dx-list [dataSource]=\"permissions\" itemTemplate=\"rowTemplate\" [searchEnabled]=\"true\"\n [searchExpr]=\"['name', 'tag']\" [hoverStateEnabled]=\"hoverStatePermission\">\n <div *dxTemplate=\"let permission of 'rowTemplate'\">\n <dx-check-box [text]=\"permission.name\" (onInitialized)=\"getPermissionStatus(field, permission, $event)\"\n (onValueChanged)=\"checkBoxToggled(field, permission, $event)\">\n </dx-check-box>\n </div>\n </dx-list>\n </div>\n</cauca-dx-data-grid>","import { Component, Input, OnInit, inject } from '@angular/core';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { map } from 'rxjs/operators';\nimport { UserModel } from '../shared/models/user-model';\nimport { UserGroupModel } from '../shared/models/user-group-model';\nimport { GroupModel } from '../shared/models/group-model';\nimport { GroupPermissionModel } from '../shared/models/group-permission-model';\nimport { ManagementGroupService } from '../shared/services/management-group.service';\nimport { ManagementUserService } from '../shared/services/management-user.service';\nimport { PermissionModel } from '../shared/models/permission-model';\nimport { ManagementPermissionService } from '../shared/services/management-permission.service';\n\n/**\n * @deprecated This component is obsolete and should not be used.\n */\n@Component({\n selector: 'cauca-management-group',\n templateUrl: './cauca-management-group.component.html',\n styleUrls: ['./cauca-management-group.component.scss'],\n standalone: false\n})\nexport class CaucaManagementGroupComponent implements OnInit {\n\n @Input()\n public showPrintButton: boolean = true;\n @Input()\n public hoverStatePermission = true;\n @Input()\n public showAssignableByAllUsers = true;\n\n public groups: GroupModel[] = [];\n public users: UserModel[] = [];\n public permissions: PermissionModel[] = [];\n public userFullName: any = {};\n public showColumn = true;\n public showColumnXS = true;\n public translations: any = [];\n\n private groupUsers: any;\n private readonly managementGroupService = inject(ManagementGroupService);\n private readonly managementUserService = inject(ManagementUserService);\n private readonly managementPermissionService = inject(ManagementPermissionService);\n\n public constructor() {\n const breakpointObserver = inject(BreakpointObserver);\n\n breakpointObserver.observe(['(max-width: 1000px)']).subscribe((result: any) => {\n this.showColumn = !result.matches;\n });\n breakpointObserver.observe(['(max-width: 600px)']).subscribe((result: any) => {\n this.showColumnXS = !result.matches;\n });\n }\n\n public ngOnInit(): void {\n this.managementUserService.getAll<UserModel>().subscribe((data: UserModel[]) => {\n this.users = data;\n this.users.forEach((user: UserModel) => {\n if (user.isActive) {\n if (user.firstName !== '' && user.lastName !== '') {\n this.userFullName[user.id] = `${user.firstName} ${user.lastName}`;\n }\n }\n });\n });\n this.managementPermissionService.getAll().subscribe((permissions: PermissionModel[]) => {\n const permissionIndex = permissions.findIndex((c: PermissionModel) => c.tag === 'CanAccessPermissions');\n if (permissionIndex !== -1) {\n permissions.splice(permissionIndex, 1);\n }\n permissions.sort((a: PermissionModel, b: PermissionModel) => {\n if (a.name < b.name) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n return 0;\n });\n this.permissions = permissions;\n });\n this.getGroups();\n }\n\n public fullName(data: any): string {\n if (!data) {\n return '';\n }\n\n return `${data.firstName} ${data.lastName}`;\n }\n\n public getGroupUser(field: any, e: any): void {\n const users: string[] = [];\n if (this.groupUsers) {\n this.groupUsers.forEach((user: any) => {\n users.push(user.idUser);\n });\n }\n e.component.option('value', users);\n }\n\n public setGroupUser(field: any, e: any): void {\n const groupUser: UserGroupModel[] = [];\n\n e.value.forEach((idUser: string) => {\n const groupIndex = (field.data.users || []).findIndex((g: any) => g.idUser === idUser);\n\n if (groupIndex === -1) {\n groupUser.push({ idUser, } as UserGroupModel);\n } else {\n groupUser.push(field.data.users[groupIndex]);\n }\n });\n\n field.setValue(JSON.parse(JSON.stringify(groupUser)));\n }\n\n public setGroupPermission(field: any, e: any): void {\n const groupUser: UserGroupModel[] = [];\n\n e.value.forEach((idUser: string) => {\n groupUser.push({\n idUser,\n } as UserGroupModel);\n });\n\n field.setValue(JSON.parse(JSON.stringify(groupUser)));\n }\n\n public getPermissionStatus(field: any, permission: any, e: any): void {\n const groupPermission = (field.value || []).find((p: any) => p.idModulePermission === permission.id);\n\n if (groupPermission) {\n e.component.option('value', groupPermission.isAllowed);\n } else {\n e.component.option('value', undefined);\n }\n }\n\n public checkBoxToggled(field: any, permission: any, e: any): void {\n if (e.component.skipOnValueChanged) {\n e.component.skipOnValueChanged = false;\n return;\n }\n if (e.component.setUndefinedNextTime) {\n e.component.setUndefinedNextTime = false;\n e.component.skipOnValueChanged = true;\n e.component.option('value', undefined);\n this.setPermissionStatus(field, permission, undefined);\n return;\n }\n if (e.value === false) {\n e.component.setUndefinedNextTime = true;\n }\n\n this.setPermissionStatus(field, permission, e.value);\n }\n\n public onRowInserted(e: any): void {\n this.saveGroup(e.data as GroupModel);\n }\n\n public onRowUpdated(e: any): void {\n this.saveGroup(e.data as GroupModel);\n }\n\n public onRowRemoved(e: any): void {\n const group = (e.data as GroupModel);\n this.managementGroupService.delete(group.id).subscribe(() => {\n this.getGroups();\n });\n }\n\n public calculateUsersCellValue = (e: any): string => {\n const users = (e.users ? e.users as UserGroupModel[] : []);\n let usersNames: any[] = [];\n users.forEach((user: UserGroupModel) => {\n const userGroup = this.users.filter((u: UserModel) => u.id === user.idUser);\n if (userGroup && userGroup[0]) {\n usersNames.push(userGroup[0].firstName + ' ' + userGroup[0].lastName);\n }\n });\n usersNames = usersNames.sort((one: string, two: string) => (one < two ? -1 : 1));\n return usersNames.join(', ');\n };\n\n public onEditingStart(e: any): void {\n this.groupUsers = e.data.users;\n }\n\n public onInitNewRow(): void {\n this.groupUsers = [];\n }\n\n public groupNameAlreadyUsedValidation = (e: any): Promise<boolean> => this.managementGroupService.hasExistingGroupName(e.data).pipe(\n map((exist: boolean) => !exist)\n ).toPromise();\n\n private setPermissionStatus(field: any, permission: any, value: any): void {\n const groupPermissions = field.value || [];\n const groupIndex = groupPermissions.findIndex((p: GroupPermissionModel) => p.idModulePermission === permission.id);\n\n if (groupIndex > -1) {\n groupPermissions[groupIndex].isAllowed = value;\n } else {\n groupPermissions.push({\n idModulePermission: permission.id,\n isAllowed: value,\n } as GroupPermissionModel);\n }\n\n field.setValue(JSON.parse(JSON.stringify(groupPermissions)));\n }\n\n private saveGroup(group: GroupModel): void {\n this.removePermissionUndefined(group);\n if (group.users) {\n group.users.forEach((userGroup: UserGroupModel) => {\n userGroup.idGroup = group.id;\n });\n }\n if (group.permissions) {\n group.permissions.forEach((groupPermission: GroupPermissionModel) => {\n groupPermission.idGroup = group.id;\n });\n }\n this.managementGroupService.save(group).subscribe(() => {\n this.getGroups();\n });\n this.groupUsers = [];\n }\n\n private removePermissionUndefined(group: GroupModel): void {\n group.permissions = group.permissions.filter((permission: GroupPermissionModel) => permission.isAllowed !== undefined);\n }\n\n private getGroups(): void {\n this.managementGroupService.getAll().subscribe((data: any) => this.groups = data);\n }\n}\n","import { UserGroupModel } from './user-group-model';\nimport { UserPermissionModel } from './user-permission-model';\n\n/**\n * @deprecated This model is obsolete and should not be used.\n */\n\nexport class UserModel {\n public id: string;\n public userName = '';\n public firstName = '';\n public lastName = '';\n public password = '';\n public email = '';\n public isActive = true;\n public groups: UserGroupModel[];\n public permissions: UserPermissionModel[];\n public twoFactorAuthenticatorEnabled = false;\n}\n","import { Component, OnInit, inject } from '@angular/core';\nimport { UserModel } from '../shared/models/user-model';\nimport { ManagementUserService } from '../shared/services/management-user.service';\nimport { BreakpointObserver, BreakpointState } from '@angular/cdk/layout';\nimport { map } from 'rxjs/operators';\n\n/**\n * @deprecated This component is obsolete and should not be used.\n */\n\n@Component({\n selector: 'cauca-management-user',\n templateUrl: './cauca-management-user.component.html',\n styleUrls: ['./cauca-management-user.component.scss'],\n standalone: false\n})\nexport class CaucaManagementUserComponent implements OnInit {\n\n public users: UserModel[] = [\n new UserModel()\n ];\n public showColumnXS = true;\n private readonly managementUserService = inject(ManagementUserService);\n\n public constructor() {\n const breakpointObserver = inject(BreakpointObserver);\n\n breakpointObserver.observe(['(max-width: 600px)']).subscribe((result: BreakpointState) => {\n this.showColumnXS = !result.matches;\n });\n }\n\n public ngOnInit(): void {\n this.getUsers();\n }\n\n public onRowInserted(e: any): void {\n this.saveGroup(e.data as UserModel);\n }\n\n public onRowUpdated(e: any): void {\n this.saveGroup(e.key as UserModel);\n }\n\n public onRowRemoved(e: any): void {\n const user = (e.data as UserModel);\n this.managementUserService.delete(user.id).subscribe((_data: any) => {\n this.getUsers();\n });\n }\n\n public userNameAlreadyUsedValidation = (e): Promise<boolean> => this.managementUserService.hasExistingUserName(e.data).pipe(\n map((exist: boolean) => !exist)\n ).toPromise();\n\n private saveGroup(user: UserModel): void {\n this.managementUserService.save<UserModel>(user).subscribe(() => {\n this.getUsers();\n });\n }\n\n private getUsers(): void {\n this.managementUserService.getAll<UserModel>().subscribe((data: any) => this.users = data);\n }\n}\n","<cauca-dx-data-grid\n keyExpr=\"id\"\n [dataSource]=\"users\"\n (onRowInserted)=\"onRowInserted($event)\"\n (onRowUpdated)=\"onRowUpdated($event)\"\n (onRowRemoved)=\"onRowRemoved($event)\">\n\n <dxi-column dataField=\"userName\" [caption]=\"'management.userName' | translate\">\n <dxi-validation-rule type=\"async\" [message]=\"'management.userNameAlreadyUsed' | translate\" [validationCallback]=\"userNameAlreadyUsedValidation\"></dxi-validation-rule>\n </dxi-column>\n <dxi-column dataField=\"isActive\" [caption]=\"'management.isActive' | translate\" [visible]=\"false\"></dxi-column>\n <dxi-column dataField=\"firstName\" [caption]=\"'management.firstName' | translate\"></dxi-column>\n <dxi-column dataField=\"lastName\" [caption]=\"'management.lastName' | translate\"></dxi-column>\n <dxi-column dataField=\"groups\" [caption]=\"'management.group' | translate\"></dxi-column>\n\n <dxo-editing mode=\"popup\" [allowAdding]=\"true\" [allowUpdating]=\"true\" [allowDeleting]=\"true\" [useIcons]=\"true\">\n <dxo-popup [showTitle]=\"true\" [title]=\"'management.group' | translate\"></dxo-popup>\n <dxo-form colCount=\"2\" [labelLocation]=\"showColumnXS ? 'left' : 'top'\">\n <dxi-item dataField=\"userName\" [isRequired]=\"true\"></dxi-item>\n <dxi-item dataField=\"isActive\"></dxi-item>\n <dxi-item dataField=\"firstName\"></dxi-item>\n <dxi-item dataField=\"lastName\"></dxi-item>\n <dxi-item dataField=\"group\"></dxi-item>\n </dxo-form>\n </dxo-editing>\n</cauca-dx-data-grid>\n","import { NgModule } from '@angular/core';\nimport { DxCheckBoxModule } from 'devextreme-angular/ui/check-box';\nimport { DxListModule } from 'devextreme-angular/ui/list';\nimport { DxTagBoxModule } from 'devextreme-angular/ui/tag-box';\nimport { CaucaCoreForChildModule } from '@cauca-911/core';\nimport { CaucaDevextremeModule } from '@cauca-911/devextreme';\nimport { CaucaManagementComponent } from './cauca-management.component';\nimport { CaucaManagementGroupComponent } from './cauca-management-group/cauca-management-group.component';\nimport { CaucaManagementUserComponent } from './cauca-management-user/cauca-management-user.component';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n declarations: [\n CaucaManagementComponent,\n CaucaManagementGroupComponent,\n CaucaManagementUserComponent\n ],\n imports: [\n CommonModule,\n DxCheckBoxModule,\n DxListModule,\n DxTagBoxModule,\n CaucaCoreForChildModule,\n CaucaDevextremeModule,\n ],\n exports: [\n CaucaManagementComponent,\n CaucaManagementUserComponent,\n CaucaManagementGroupComponent,\n ]\n})\nexport class CaucaManagementModule { }\n","/**\n * @deprecated This model is obsolete and should not be used.\n */\n\nexport class UserGroupModel {\n public idUserGroup = '';\n public idGroup = '';\n public idUser = '';\n}\n","/**\n * @deprecated This model is obsolete and should not be used.\n */\nexport class UserPermissionModel {\n public idUserPermission = '';\n public isAllowed = false;\n public idUser = '';\n public idModulePermission = '';\n}\n","import {GroupPermissionModel} from './group-permission-model';\nimport {UserGroupModel} from './user-group-model';\n\n/**\n * @deprecated This model is obsolete and should not be used.\n */\nexport class GroupModel {\n public id: string;\n public name = '';\n public users: UserGroupModel[] = [];\n public permissions: GroupPermissionModel[] = [];\n public assignableByAllUsers: boolean;\n}\n","/**\n * @deprecated This model is obsolete and should not be used.\n */\nexport class GroupPermissionModel {\n public idGroupPermission = '';\n public isAllowed = false;\n public idGroup = '';\n public idModulePermission = '';\n}\n","/*\n * Public API Surface of cauca-management\n */\n\n\nexport * from './lib/provide-cauca-management';\nexport * from './lib/management.routes';\nexport * from './lib/core/refreshable-permission-state';\n\nexport * from './lib/pages/groups-page/groups-page.component';\nexport * from './lib/pages/group-edition-page/group-edition-page.component';\n\n// all of the following is deprecated and will be removed in a future release.\nexport * from './lib/cauca-management.service';\nexport * from './lib/cauca-management.component';\nexport * from './lib/cauca-management.module';\nexport * from './lib/cauca-management-group/cauca-management-group.component';\nexport * from './lib/cauca-management-user/cauca-management-user.component';\n\nexport { ManagementUserService } from './lib/shared/services/management-user.service';\nexport { ManagementGroupService } from './lib/shared/services/management-group.service';\nexport { UserModel } from './lib/shared/models/user-model';\nexport { UserGroupModel } from './lib/shared/models/user-group-model';\nexport { UserPermissionModel } from './lib/shared/models/user-permission-model';\nexport { GroupModel } from './lib/shared/models/group-model';\nexport { GroupPermissionModel } from './lib/shared/models/group-permission-model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["_c0","uuid","_forTrack0","i1","i2","i5","i3","i4"],"mappings":"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"}
|