@cauca-911/management 22.0.8 → 22.0.9-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +20 -20
- package/README.md +4 -4
- package/assets/i18n/cauca/en-management.json +65 -65
- package/assets/i18n/cauca/es-management.json +65 -65
- package/assets/i18n/cauca/fr-management.json +65 -65
- package/fesm2022/cauca-911-management.mjs +27 -21
- package/fesm2022/cauca-911-management.mjs.map +1 -1
- package/package.json +2 -2
- package/types/cauca-911-management.d.ts +4 -1
|
@@ -165,7 +165,7 @@ class GroupListGridComponent {
|
|
|
165
165
|
}
|
|
166
166
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GroupListGridComponent, [{
|
|
167
167
|
type: Component,
|
|
168
|
-
args: [{ selector: 'cauca-group-list-grid', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent, DataGridCommandsColumnComponent, TranslatePipe], template: "<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" }]
|
|
168
|
+
args: [{ selector: 'cauca-group-list-grid', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent, DataGridCommandsColumnComponent, TranslatePipe], template: "<cauca-odata-grid matSort\r\n [showTableOptions]=\"true\"\r\n class=\"groups-datagrid\"\r\n aria-describedby=\"Groups table\"\r\n resourceName=\"GroupList\"\r\n [showAddButton]=\"true\"\r\n (addButtonClick)=\"createGroup()\"\r\n [addButtonLabel]=\"'groups.addButtonLabel'| translate\"\r\n [baseSort]=\"['name']\"\r\n [filterPredicate]=\"filterPredicate\"\r\n [displayedColumns]=\"columns()\">\r\n\r\n <cauca-sortable-data-grid-column id=\"name\" prop=\"name\" [label]=\"'groups.groupNameColumnLabel'|translate\"/>\r\n <cauca-sortable-data-grid-check-column id=\"is-assignable-all-users\" prop=\"assignableByAllUsers\" [label]=\"'groups.assignableByAllUsersColumnLabel'|translate\" width=\"200px\" />\r\n <cauca-data-grid-commands-column id=\"buttons\" prop=\"buttons\" [canDelete]=\"true\" [canEdit]=\"true\" editLinkField=\"id\" (deleteClick)=\"deleteGroup($event)\" />\r\n\r\n</cauca-odata-grid>\r\n" }]
|
|
169
169
|
}], null, { table: [{
|
|
170
170
|
type: ViewChild,
|
|
171
171
|
args: [OdataGridComponent, { static: true }]
|
|
@@ -188,7 +188,7 @@ class GroupsPageComponent {
|
|
|
188
188
|
}
|
|
189
189
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GroupsPageComponent, [{
|
|
190
190
|
type: Component,
|
|
191
|
-
args: [{ selector: 'cauca-groups-page', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatCardModule, PageTitleComponent, GroupListGridComponent], template: "<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" }]
|
|
191
|
+
args: [{ selector: 'cauca-groups-page', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatCardModule, PageTitleComponent, GroupListGridComponent], template: "<cauca-page-title\r\n [showBreadcrumb]=\"true\"\r\n caption=\"menu.groups\"\r\n baseCrumb=\"menu.management\"\r\n breadcrumb=\"menu.groups\" />\r\n\r\n<mat-card class=\"page-content\">\r\n\r\n <mat-card-content class=\"page-content-grid\">\r\n <cauca-group-list-grid />\r\n </mat-card-content>\r\n\r\n</mat-card>\r\n" }]
|
|
192
192
|
}], null, null); })();
|
|
193
193
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GroupsPageComponent, { className: "GroupsPageComponent", filePath: "lib/pages/groups-page/groups-page.component.ts", lineNumber: 13 }); })();
|
|
194
194
|
|
|
@@ -597,7 +597,7 @@ class GroupUserSelectionDialogComponent {
|
|
|
597
597
|
ListPaginatorComponent,
|
|
598
598
|
MatTooltipModule,
|
|
599
599
|
IconButtonComponent,
|
|
600
|
-
], 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 <span matListItemTitle>{{ user.fullName }}</span>\n @if (user.additionalInformation) {\n <span matListItemSubtitle>{{ user.additionalInformation }}</span>\n }\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"] }]
|
|
600
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, providers: [UserSearchService, LoadingStateService], template: "<div mat-dialog-title>\r\n <div class=\"h6\">{{ 'groupEdition.userSelectionTitle' | translate }}</div>\r\n <cauca-icon-button id=\"closeButton\" (buttonClick)=\"closeClick()\" icon=\"close\" />\r\n</div>\r\n\r\n<mat-dialog-content class=\"dialog-content\">\r\n <mat-form-field subscriptSizing=\"dynamic\" class=\"search-field\">\r\n <mat-label>{{ 'groupEdition.searchUserPlaceholder' | translate }}</mat-label>\r\n <input matInput type=\"text\" [value]=\"searchTerm()\" (input)=\"searchTerm.set($any($event.target).value)\" />\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n\r\n @if (searchTerm().length >= 0 && searchTerm().length < MIN_SEARCH_LENGTH) {\r\n <div class=\"search-hint body2\">{{ 'groupEdition.searchMinChars' | translate }}</div>\r\n }\r\n\r\n <div class=\"results-region\">\r\n <cauca-loading-error (retryRequest)=\"searchResource.reload()\" />\r\n\r\n @if (searchResource.isLoading() && !results().length) {\r\n <cauca-loading-spinner-indicator />\r\n } @else if (results().length) {\r\n <mat-selection-list class=\"results-list\" [compareWith]=\"compareUserById\" (selectionChange)=\"onSelectionChange($event)\">\r\n @for (user of results(); track user.id; let i = $index) {\r\n <mat-list-option\r\n [value]=\"user\"\r\n [selected]=\"selectedUserIds().has(user.id)\"\r\n color=\"primary\"\r\n class=\"result-item\"\r\n [class.result-item--even]=\"i % 2 === 1\">\r\n <span matListItemTitle>{{ user.fullName }}</span>\r\n @if (user.additionalInformation) {\r\n <span matListItemSubtitle>{{ user.additionalInformation }}</span>\r\n }\r\n </mat-list-option>\r\n }\r\n </mat-selection-list>\r\n\r\n @if (totalCount() > PAGE_SIZE) {\r\n <cauca-list-paginator\r\n #resultPaginator\r\n [itemsCount]=\"totalCount()\"\r\n [pageSize]=\"PAGE_SIZE\"\r\n (pageChange)=\"onPageChange($event)\" />\r\n }\r\n } @else if (!searchResource.isLoading() && totalCount() === 0 && debouncedSearch().length >= MIN_SEARCH_LENGTH) {\r\n <div class=\"no-results body2\">{{ 'noResult' | translate }}</div>\r\n }\r\n </div>\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions class=\"dialog-actions\">\r\n <div class=\"selected-users-panel\">\r\n <span class=\"selected-users-label caption\">{{ 'groupEdition.selectedUsersLabel' | translate }}</span>\r\n <div class=\"selected-users-names body2\" [matTooltip]=\"selectedUsersLabel()\">{{ selectedUsersLabel() }}</div>\r\n </div>\r\n <cauca-stroked-button color=\"primary\" label=\"cancel\" (buttonClick)=\"cancel()\" />\r\n <cauca-raised-button\r\n color=\"primary\"\r\n label=\"ok\"\r\n [isDisabled]=\"selectedUsers().length === 0\"\r\n (buttonClick)=\"confirm()\" />\r\n</mat-dialog-actions>\r\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"] }]
|
|
601
601
|
}], () => [], { paginator: [{ type: i0.ViewChild, args: ['resultPaginator', { isSignal: true }] }] }); })();
|
|
602
602
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GroupUserSelectionDialogComponent, { className: "GroupUserSelectionDialogComponent", filePath: "lib/components/group-user-selection-dialog/group-user-selection-dialog.component.ts", lineNumber: 46 }); })();
|
|
603
603
|
|
|
@@ -771,7 +771,7 @@ class GroupUserEditionListComponent {
|
|
|
771
771
|
}
|
|
772
772
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GroupUserEditionListComponent, [{
|
|
773
773
|
type: Component,
|
|
774
|
-
args: [{ selector: 'cauca-group-user-edition-list', standalone: true, imports: [TranslatePipe, IconButtonComponent, RaisedButtonComponent, ListPaginatorComponent, MatFormFieldModule, MatInputModule, MatIconModule, FormsModule, MatListModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [DialogService], template: "<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 @if (user.additionalInformation) {\n <div matListItemLine class=\"user-additional-information\">{{ user.additionalInformation }}</div>\n }\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", styles: [".user-edition-list{display:flex;flex-direction:column;gap:16px}.add-users-button{align-self:flex-end}.users-list{border:1px solid rgba(0,0,0,.23);border-radius:4px;padding:0;max-height:400px;overflow-y:auto}mat-list-item{margin-bottom:0}.filter-field{width:100%}.user-item{border-bottom:1px solid rgba(0,0,0,.12)}.user-item:last-child{border-bottom:none}.empty-state{display:flex;flex-direction:column;align-items:center;padding:32px 16px;text-align:center;color:#0009}.empty-state .empty-icon{font-size:48px;width:48px;height:48px;margin-bottom:16px;opacity:.6}.empty-state .empty-message{margin:0;font-size:14px}.add-button-container{display:flex;justify-content:flex-end;margin-top:16px}.no-users{padding:16px 0;color:#00000061;text-align:center}mat-list-item:nth-child(odd){background-color:#0000000d}mat-list-item:hover{transition:all ease-in-out .1s;background-color:#00000012}\n"] }]
|
|
774
|
+
args: [{ selector: 'cauca-group-user-edition-list', standalone: true, imports: [TranslatePipe, IconButtonComponent, RaisedButtonComponent, ListPaginatorComponent, MatFormFieldModule, MatInputModule, MatIconModule, FormsModule, MatListModule], changeDetection: ChangeDetectionStrategy.OnPush, providers: [DialogService], template: "<div class=\"user-edition-list\">\r\n\r\n <mat-form-field subscriptSizing=\"dynamic\" class=\"filter-field\">\r\n <mat-label>{{ 'groupEdition.filterUsersPlaceholder' | translate }}</mat-label>\r\n <input matInput type=\"text\" [value]=\"filterTerm()\" (input)=\"filterTerm.set($any($event.target).value)\" />\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n\r\n <mat-list class=\"users-list\">\r\n @for (user of pagedUsers(); track user.id) {\r\n <mat-list-item class=\"user-item\">\r\n <mat-icon matListItemIcon>person</mat-icon>\r\n <div matListItemTitle class=\"user-name\">{{ user.fullName }}</div>\r\n @if (user.additionalInformation) {\r\n <div matListItemLine class=\"user-additional-information\">{{ user.additionalInformation }}</div>\r\n }\r\n <cauca-icon-button\r\n matListItemMeta\r\n class=\"delete-button\"\r\n icon=\"delete\"\r\n color=\"error\"\r\n (buttonClick)=\"removeUser(user)\"\r\n [attr.aria-label]=\"'groupEdition.removeUserLabel' | translate\" />\r\n </mat-list-item>\r\n } @empty {\r\n @if (filterTerm()) {\r\n <div class=\"no-users body2\">{{ 'groupEdition.noFilteredUsers' | translate }}</div>\r\n } @else {\r\n <div class=\"no-users body2\">{{ 'groupEdition.noUsers' | translate }}</div>\r\n }\r\n }\r\n </mat-list>\r\n\r\n @if (filteredUsers().length > PAGE_SIZE) {\r\n <cauca-list-paginator\r\n #paginator\r\n [itemsCount]=\"filteredUsers().length\"\r\n [pageSize]=\"PAGE_SIZE\"\r\n (pageChange)=\"onPageChange($event)\" />\r\n }\r\n\r\n <cauca-raised-button\r\n class=\"add-users-button\"\r\n color=\"primary\"\r\n label=\"groupEdition.addUsersButton\"\r\n (buttonClick)=\"openAddUsersDialog()\" />\r\n</div>\r\n", styles: [".user-edition-list{display:flex;flex-direction:column;gap:16px}.add-users-button{align-self:flex-end}.users-list{border:1px solid rgba(0,0,0,.23);border-radius:4px;padding:0;max-height:400px;overflow-y:auto}mat-list-item{margin-bottom:0}.filter-field{width:100%}.user-item{border-bottom:1px solid rgba(0,0,0,.12)}.user-item:last-child{border-bottom:none}.empty-state{display:flex;flex-direction:column;align-items:center;padding:32px 16px;text-align:center;color:#0009}.empty-state .empty-icon{font-size:48px;width:48px;height:48px;margin-bottom:16px;opacity:.6}.empty-state .empty-message{margin:0;font-size:14px}.add-button-container{display:flex;justify-content:flex-end;margin-top:16px}.no-users{padding:16px 0;color:#00000061;text-align:center}mat-list-item:nth-child(odd){background-color:#0000000d}mat-list-item:hover{transition:all ease-in-out .1s;background-color:#00000012}\n"] }]
|
|
775
775
|
}], () => [], { paginator: [{ type: i0.ViewChild, args: ['paginator', { isSignal: true }] }] }); })();
|
|
776
776
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GroupUserEditionListComponent, { className: "GroupUserEditionListComponent", filePath: "lib/components/group-user-edition-list/group-user-edition-list.component.ts", lineNumber: 24 }); })();
|
|
777
777
|
|
|
@@ -924,7 +924,7 @@ class GroupPermissionListComponent {
|
|
|
924
924
|
}
|
|
925
925
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GroupPermissionListComponent, [{
|
|
926
926
|
type: Component,
|
|
927
|
-
args: [{ selector: 'cauca-group-permission-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, TranslatePipe, FormsModule, MatIcon, MatCheckboxModule], template: "<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", styles: [":host{display:flex;flex-direction:column;gap:16px}#permission-list{max-height:400px;overflow-y:auto;border:1px solid rgba(0,0,0,.23);border-radius:4px;padding:0}.permission-item{border-bottom:1px solid rgba(0,0,0,.12)}.permission-item:last-child{border-bottom:none}mat-list-item{margin-bottom:0}.permission-checkbox,.filter-field{width:100%}.no-result{display:flex;flex-direction:column;align-items:center;padding:24px 0;color:#00000061}.no-result-icon{font-size:48px;width:48px;height:48px;margin-bottom:8px}.no-result-text{text-align:center}mat-list-item:nth-child(odd){background-color:#0000000d}mat-list-item:hover{transition:all ease-in-out .1s;background-color:#00000012}\n"] }]
|
|
927
|
+
args: [{ selector: 'cauca-group-permission-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, TranslatePipe, FormsModule, MatIcon, MatCheckboxModule], template: "<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"full-width-field grid-search-box\">\r\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\r\n <input matInput [(ngModel)]=\"searchText\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n</mat-form-field>\r\n\r\n<mat-selection-list id=\"permission-list\">\r\n @for (permission of filteredPermissionsValues(); track permission.id) {\r\n <mat-list-item class=\"permission-item\">\r\n <mat-checkbox\r\n [color]=\"permission.allowed === null ? undefined : 'primary'\"\r\n [indeterminate]=\"permission.allowed === null\"\r\n [checked]=\"permission.allowed\"\r\n (click)=\"onValueChange(permission)\" >\r\n {{permission.name}}\r\n </mat-checkbox>\r\n </mat-list-item>\r\n } @empty {\r\n <div class=\"no-result\">\r\n <mat-icon class=\"no-result-icon\">grid_off</mat-icon>\r\n <div class=\"no-result-text body2\">{{ 'noResult' | translate }}</div>\r\n </div>\r\n }\r\n\r\n</mat-selection-list>\r\n", styles: [":host{display:flex;flex-direction:column;gap:16px}#permission-list{max-height:400px;overflow-y:auto;border:1px solid rgba(0,0,0,.23);border-radius:4px;padding:0}.permission-item{border-bottom:1px solid rgba(0,0,0,.12)}.permission-item:last-child{border-bottom:none}mat-list-item{margin-bottom:0}.permission-checkbox,.filter-field{width:100%}.no-result{display:flex;flex-direction:column;align-items:center;padding:24px 0;color:#00000061}.no-result-icon{font-size:48px;width:48px;height:48px;margin-bottom:8px}.no-result-text{text-align:center}mat-list-item:nth-child(odd){background-color:#0000000d}mat-list-item:hover{transition:all ease-in-out .1s;background-color:#00000012}\n"] }]
|
|
928
928
|
}], null, { searchText: [{ type: i0.Input, args: [{ isSignal: true, alias: "searchText", required: false }] }, { type: i0.Output, args: ["searchTextChange"] }] }); })();
|
|
929
929
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GroupPermissionListComponent, { className: "GroupPermissionListComponent", filePath: "lib/components/group-permission-list/group-permission-list.component.ts", lineNumber: 23 }); })();
|
|
930
930
|
|
|
@@ -981,7 +981,7 @@ class GroupEditionFormComponent {
|
|
|
981
981
|
}
|
|
982
982
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GroupEditionFormComponent, [{
|
|
983
983
|
type: Component,
|
|
984
|
-
args: [{ selector: 'cauca-group-edition-form', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe, MatFormFieldModule, MatInputModule, MatSlideToggleModule, MatDividerModule, ReactiveFormsModule, GroupContainerComponent, GroupUserEditionListComponent, GroupPermissionListComponent], template: "<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", styles: [".form{display:flex;flex-direction:column;gap:16px}.row{display:flex;align-items:stretch;gap:16px}.row>*{flex:1}\n"] }]
|
|
984
|
+
args: [{ selector: 'cauca-group-edition-form', changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslatePipe, MatFormFieldModule, MatInputModule, MatSlideToggleModule, MatDividerModule, ReactiveFormsModule, GroupContainerComponent, GroupUserEditionListComponent, GroupPermissionListComponent], template: "<div [formGroup]=\"state.form\">\r\n\r\n <cauca-group-container id=\"group-options\" caption=\"groupEdition.groupNameFieldLabel\">\r\n <mat-form-field id=\"group-name\">\r\n <mat-label>{{ 'groupEdition.nameFieldLabel' | translate }}</mat-label>\r\n <input matInput type=\"text\" formControlName=\"name\" required>\r\n @if (state.form.get(\"name\").hasError('required')) {<mat-error>{{'error.requiredField' | translate}}</mat-error>}\r\n </mat-form-field>\r\n <mat-slide-toggle id=\"assignable-by-all-users\" formControlName=\"assignableByAllUsers\" color=\"primary\">{{'groupEdition.assignableByAllUsersLabel' | translate}}</mat-slide-toggle>\r\n </cauca-group-container>\r\n\r\n <mat-divider />\r\n\r\n <cauca-group-container id=\"group-users\" caption=\"groupEdition.groupUsersFieldLabel\">\r\n <cauca-group-user-edition-list />\r\n </cauca-group-container>\r\n\r\n <mat-divider />\r\n\r\n <cauca-group-container id=\"group-permissions\" caption=\"groupEdition.groupPermissionsFieldLabel\">\r\n <cauca-group-permission-list />\r\n </cauca-group-container>\r\n\r\n</div>\r\n", styles: [".form{display:flex;flex-direction:column;gap:16px}.row{display:flex;align-items:stretch;gap:16px}.row>*{flex:1}\n"] }]
|
|
985
985
|
}], null, null); })();
|
|
986
986
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(GroupEditionFormComponent, { className: "GroupEditionFormComponent", filePath: "lib/components/group-edition-form/group-edition-form.component.ts", lineNumber: 20 }); })();
|
|
987
987
|
|
|
@@ -1137,7 +1137,7 @@ class GroupEditionPageComponent {
|
|
|
1137
1137
|
GroupEditionStateService,
|
|
1138
1138
|
LoadingStateService,
|
|
1139
1139
|
GroupManagementService,
|
|
1140
|
-
], template: "<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", styles: [":host{width:100%}.spacer{flex:1 1 auto}mat-card-actions{gap:8px}\n"] }]
|
|
1140
|
+
], template: "<cauca-page-title\r\n [caption]=\"title()\"\r\n baseCrumb=\"menu.management\"\r\n [breadcrumb]=\"title()\"\r\n [location]=\"currentLocation()\"\r\n [showBreadcrumb]=\"true\" />\r\n\r\n<mat-card>\r\n\r\n <mat-card-content>\r\n\r\n <cauca-loading-spinner-indicator />\r\n <cauca-loading-error (retryRequest)=\"loadData()\" />\r\n\r\n @if (isLoaded()) {\r\n <cauca-group-edition-form />\r\n }\r\n\r\n @if (showSavingError()) {\r\n <div class=\"spacer\"></div>\r\n <cauca-saving-error-box [show]=\"showSavingError()\" />\r\n }\r\n\r\n </mat-card-content>\r\n\r\n <mat-card-actions>\r\n <div class=\"spacer\"></div>\r\n <cauca-stroked-button class=\"cancel-button\" color=\"primary\" label=\"cancel\" [isDisabled]=\"isSaving()\" (buttonClick)=\"cancel()\" />\r\n <cauca-raised-button class=\"save-button\" color=\"primary\" label=\"save\" [isInProgress]=\"isSaving()\" (buttonClick)=\"save()\" />\r\n </mat-card-actions>\r\n\r\n</mat-card>\r\n", styles: [":host{width:100%}.spacer{flex:1 1 auto}mat-card-actions{gap:8px}\n"] }]
|
|
1141
1141
|
}], null, { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: true }] }], onBeforeUnload: [{
|
|
1142
1142
|
type: HostListener,
|
|
1143
1143
|
args: ['window:beforeunload', ['$event']]
|
|
@@ -1315,7 +1315,7 @@ class UserPermissionListComponent {
|
|
|
1315
1315
|
}
|
|
1316
1316
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UserPermissionListComponent, [{
|
|
1317
1317
|
type: Component,
|
|
1318
|
-
args: [{ selector: 'cauca-user-permission-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, MatIcon, MatMenuModule, TranslatePipe, IconButtonComponent], template: "<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"search-field\">\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\n <input matInput type=\"text\" [value]=\"searchText()\" (input)=\"searchText.set($any($event.target).value)\">\n <mat-icon matSuffix>search</mat-icon>\n</mat-form-field>\n\n<mat-list id=\"permission-list\">\n @for (permission of filteredPermissions(); track permission.idModulePermission) {\n <mat-list-item class=\"permission-item\">\n\n <mat-icon matListItemIcon\n [class.allowed]=\"permission.status === PermissionStatus.Allowed\"\n [class.denied]=\"permission.status !== PermissionStatus.Allowed\">\n @if (permission.status === PermissionStatus.Allowed) {\n check\n } @else {\n block\n }\n </mat-icon>\n\n <div matListItemTitle>{{ permission.name }}</div>\n\n <cauca-icon-button\n matListItemMeta\n icon=\"info\"\n [matMenuTriggerFor]=\"originsMenu\" />\n\n <mat-menu #originsMenu=\"matMenu\">\n <div class=\"origins-menu-content\" (click)=\"$event.stopPropagation()\">\n <div class=\"origin-item body2\">{{ 'userPermissionDetails.originsLabel' | translate }}</div>\n @for (origin of permission.origins; track $index) {\n <div class=\"origin-item\">\n <mat-icon [class.allowed]=\"origin.isAllowed\" [class.denied]=\"!origin.isAllowed\">\n @if (origin.isAllowed) {\n check\n } @else {\n block\n }\n </mat-icon>\n <span class=\"origin-name body1\">\n {{ origin.kind === UserPermissionOriginKind.UserOverride\n ? ('userPermissionDetails.userOverrideOrigin' | translate)\n : origin.groupName }}\n </span>\n </div>\n } @empty {\n <div class=\"origin-item\">\n <span class=\"no-origins\">{{ 'userPermissionDetails.noOrigins' | translate }}</span>\n </div>\n }\n </div>\n </mat-menu>\n\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</mat-list>\n", styles: [":host{display:flex;flex-direction:column;gap:16px}.search-field{width:100%}#permission-list{max-height:400px;overflow-y:auto;border:1px solid rgba(0,0,0,.23);border-radius:4px;padding:0}.permission-item{border-bottom:1px solid rgba(0,0,0,.12)}.permission-item:last-child{border-bottom:none}mat-list-item{margin-bottom:0}mat-list-item:nth-child(odd){background-color:#0000000d}mat-list-item:hover{transition:all ease-in-out .1s;background-color:#00000012}.mat-icon.allowed{color:var(--color-success, green)}.mat-icon.denied{color:var(--color-error, red)}.origins-menu-content{padding:8px;max-width:320px}.origin-item{display:flex;align-items:flex-start;gap:8px;padding:8px}.origin-item .mat-icon{flex-shrink:0}.origin-name{min-width:0;overflow-wrap:anywhere}.no-result{display:flex;flex-direction:column;align-items:center;padding:24px 0;color:#00000061}.no-result-icon{font-size:48px;width:48px;height:48px;margin-bottom:8px}.no-result-text{text-align:center}\n"] }]
|
|
1318
|
+
args: [{ selector: 'cauca-user-permission-list', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatListModule, MatFormField, MatLabel, MatInput, MatSuffix, MatIcon, MatMenuModule, TranslatePipe, IconButtonComponent], template: "<mat-form-field subscriptSizing=\"dynamic\" appearance=\"outline\" class=\"search-field\">\r\n <mat-label>{{ 'dataGrid.keywordsLabel' | translate }}</mat-label>\r\n <input matInput type=\"text\" [value]=\"searchText()\" (input)=\"searchText.set($any($event.target).value)\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n</mat-form-field>\r\n\r\n<mat-list id=\"permission-list\">\r\n @for (permission of filteredPermissions(); track permission.idModulePermission) {\r\n <mat-list-item class=\"permission-item\">\r\n\r\n <mat-icon matListItemIcon\r\n [class.allowed]=\"permission.status === PermissionStatus.Allowed\"\r\n [class.denied]=\"permission.status !== PermissionStatus.Allowed\">\r\n @if (permission.status === PermissionStatus.Allowed) {\r\n check\r\n } @else {\r\n block\r\n }\r\n </mat-icon>\r\n\r\n <div matListItemTitle>{{ permission.name }}</div>\r\n\r\n <cauca-icon-button\r\n matListItemMeta\r\n icon=\"info\"\r\n [matMenuTriggerFor]=\"originsMenu\" />\r\n\r\n <mat-menu #originsMenu=\"matMenu\">\r\n <div class=\"origins-menu-content\" (click)=\"$event.stopPropagation()\">\r\n <div class=\"origin-item body2\">{{ 'userPermissionDetails.originsLabel' | translate }}</div>\r\n @for (origin of permission.origins; track $index) {\r\n <div class=\"origin-item\">\r\n <mat-icon [class.allowed]=\"origin.isAllowed\" [class.denied]=\"!origin.isAllowed\">\r\n @if (origin.isAllowed) {\r\n check\r\n } @else {\r\n block\r\n }\r\n </mat-icon>\r\n <span class=\"origin-name body1\">\r\n {{ origin.kind === UserPermissionOriginKind.UserOverride\r\n ? ('userPermissionDetails.userOverrideOrigin' | translate)\r\n : origin.groupName }}\r\n </span>\r\n </div>\r\n } @empty {\r\n <div class=\"origin-item\">\r\n <span class=\"no-origins\">{{ 'userPermissionDetails.noOrigins' | translate }}</span>\r\n </div>\r\n }\r\n </div>\r\n </mat-menu>\r\n\r\n </mat-list-item>\r\n } @empty {\r\n <div class=\"no-result\">\r\n <mat-icon class=\"no-result-icon\">grid_off</mat-icon>\r\n <div class=\"no-result-text body2\">{{ 'noResult' | translate }}</div>\r\n </div>\r\n }\r\n</mat-list>\r\n", styles: [":host{display:flex;flex-direction:column;gap:16px}.search-field{width:100%}#permission-list{max-height:400px;overflow-y:auto;border:1px solid rgba(0,0,0,.23);border-radius:4px;padding:0}.permission-item{border-bottom:1px solid rgba(0,0,0,.12)}.permission-item:last-child{border-bottom:none}mat-list-item{margin-bottom:0}mat-list-item:nth-child(odd){background-color:#0000000d}mat-list-item:hover{transition:all ease-in-out .1s;background-color:#00000012}.mat-icon.allowed{color:var(--color-success, green)}.mat-icon.denied{color:var(--color-error, red)}.origins-menu-content{padding:8px;max-width:320px}.origin-item{display:flex;align-items:flex-start;gap:8px;padding:8px}.origin-item .mat-icon{flex-shrink:0}.origin-name{min-width:0;overflow-wrap:anywhere}.no-result{display:flex;flex-direction:column;align-items:center;padding:24px 0;color:#00000061}.no-result-icon{font-size:48px;width:48px;height:48px;margin-bottom:8px}.no-result-text{text-align:center}\n"] }]
|
|
1319
1319
|
}], null, { permissions: [{ type: i0.Input, args: [{ isSignal: true, alias: "permissions", required: true }] }] }); })();
|
|
1320
1320
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserPermissionListComponent, { className: "UserPermissionListComponent", filePath: "lib/components/user-permission-list/user-permission-list.component.ts", lineNumber: 20 }); })();
|
|
1321
1321
|
|
|
@@ -1383,7 +1383,7 @@ class UserPermissionsDialogComponent {
|
|
|
1383
1383
|
LoadingErrorComponent,
|
|
1384
1384
|
RaisedButtonComponent,
|
|
1385
1385
|
UserPermissionListComponent,
|
|
1386
|
-
], providers: [LoadingStateService], template: "<div mat-dialog-title>\n <div class=\"title-block\">\n <div class=\"h6\">{{ 'userPermissionDetails.title' | translate }}</div>\n @if (data.userDisplayName) {\n <div class=\"subtitle body2\">{{ data.userDisplayName }}</div>\n }\n </div>\n</div>\n\n<mat-dialog-content class=\"dialog-content\">\n <cauca-loading-spinner-indicator />\n <cauca-loading-error (retryRequest)=\"permissionsResource.reload()\" />\n\n <cauca-user-permission-list [permissions]=\"permissions()\" />\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\">\n <cauca-raised-button color=\"primary\" label=\"close\" (buttonClick)=\"closeDialog()\" />\n</mat-dialog-actions>\n", styles: [".title-block{display:flex;flex-direction:column}.subtitle{color:#0000008a}.dialog-content{display:flex;flex-direction:column;gap:16px;min-width:480px}\n"] }]
|
|
1386
|
+
], providers: [LoadingStateService], template: "<div mat-dialog-title>\r\n <div class=\"title-block\">\r\n <div class=\"h6\">{{ 'userPermissionDetails.title' | translate }}</div>\r\n @if (data.userDisplayName) {\r\n <div class=\"subtitle body2\">{{ data.userDisplayName }}</div>\r\n }\r\n </div>\r\n</div>\r\n\r\n<mat-dialog-content class=\"dialog-content\">\r\n <cauca-loading-spinner-indicator />\r\n <cauca-loading-error (retryRequest)=\"permissionsResource.reload()\" />\r\n\r\n <cauca-user-permission-list [permissions]=\"permissions()\" />\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions align=\"end\">\r\n <cauca-raised-button color=\"primary\" label=\"close\" (buttonClick)=\"closeDialog()\" />\r\n</mat-dialog-actions>\r\n", styles: [".title-block{display:flex;flex-direction:column}.subtitle{color:#0000008a}.dialog-content{display:flex;flex-direction:column;gap:16px;min-width:480px}\n"] }]
|
|
1387
1387
|
}], null, null); })();
|
|
1388
1388
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserPermissionsDialogComponent, { className: "UserPermissionsDialogComponent", filePath: "lib/components/user-permissions-dialog/user-permissions-dialog.component.ts", lineNumber: 31 }); })();
|
|
1389
1389
|
|
|
@@ -1476,7 +1476,7 @@ class ScopeListGridColumnComponent extends BaseGridColumnComponent {
|
|
|
1476
1476
|
args: [{ selector: 'cauca-scope-list-grid-column', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: BaseGridColumnComponent, useExisting: forwardRef(() => ScopeListGridColumnComponent) }], imports: [
|
|
1477
1477
|
MatColumnDef, MatHeaderCell, MatHeaderCellDef, MatCell, MatCellDef, MatFooterCell, MatFooterCellDef,
|
|
1478
1478
|
NgStyle, MatTooltip, TranslatePipe,
|
|
1479
|
-
], template: "<ng-container matColumnDef=\"{{ prop() }}\">\n\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width()}\">\n {{ label() ?? capitalize(prop()) }}\n </th>\n\n <td mat-cell *matCellDef=\"let row\">\n @if (row[prop()] === allToken) {\n <span>{{ allLabel() | translate }}</span>\n } @else if (showToolTip()) {\n <span [matTooltip]=\"row[prop()]\">{{ row[prop()] }}</span>\n } @else {\n <span>{{ row[prop()] }}</span>\n }\n </td>\n\n <td mat-footer-cell *matFooterCellDef></td>\n\n</ng-container>\n" }]
|
|
1479
|
+
], template: "<ng-container matColumnDef=\"{{ prop() }}\">\r\n\r\n <th mat-header-cell *matHeaderCellDef [ngStyle]=\"{'width': width()}\">\r\n {{ label() ?? capitalize(prop()) }}\r\n </th>\r\n\r\n <td mat-cell *matCellDef=\"let row\">\r\n @if (row[prop()] === allToken) {\r\n <span>{{ allLabel() | translate }}</span>\r\n } @else if (showToolTip()) {\r\n <span [matTooltip]=\"row[prop()]\">{{ row[prop()] }}</span>\r\n } @else {\r\n <span>{{ row[prop()] }}</span>\r\n }\r\n </td>\r\n\r\n <td mat-footer-cell *matFooterCellDef></td>\r\n\r\n</ng-container>\r\n" }]
|
|
1480
1480
|
}], () => [], { allLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "allLabel", required: true }] }] }); })();
|
|
1481
1481
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ScopeListGridColumnComponent, { className: "ScopeListGridColumnComponent", filePath: "lib/components/scope-list-grid-column/scope-list-grid-column.component.ts", lineNumber: 28 }); })();
|
|
1482
1482
|
|
|
@@ -1642,7 +1642,7 @@ class UserListGridComponent {
|
|
|
1642
1642
|
args: [{ selector: 'cauca-user-list-grid', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
1643
1643
|
MatSort, OdataGridComponent, SortableDataGridColumnComponent, SortableDataGridCheckColumnComponent,
|
|
1644
1644
|
ScopeListGridColumnComponent, DataGridMenuColumnComponent, MenuItemComponent, TranslatePipe,
|
|
1645
|
-
], template: "<cauca-odata-grid\n matSort\n matSortActive=\"userName\"\n matSortDirection=\"asc\"\n aria-label=\"Users table\"\n resourceName=\"UserList\"\n [persistState]=\"persistState()\"\n [showTableOptions]=\"true\"\n [showRefreshButton]=\"true\"\n [showAddButton]=\"showAddButton()\"\n [addButtonLabel]=\"addButtonLabel() | translate\"\n (addButtonClick)=\"addClick.emit()\"\n [baseSort]=\"['userName']\"\n [filterPredicate]=\"filterPredicate\"\n [displayedColumns]=\"columns()\">\n\n <cauca-sortable-data-grid-column id=\"userName\" prop=\"userName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.userName' | translate\"/>\n <cauca-sortable-data-grid-column id=\"firstName\" prop=\"firstName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.firstName' | translate\"/>\n <cauca-sortable-data-grid-column id=\"lastName\" prop=\"lastName\" [showToolTip]=\"true\"\n [label]=\"'userList.column.lastName' | translate\"/>\n\n @for (column of extraColumns(); track column.prop) {\n @switch (column.kind) {\n @case ('scope') {\n <cauca-scope-list-grid-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [showToolTip]=\"column.showToolTip ?? true\"\n [allLabel]=\"column.allLabel ?? ''\"\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\n [label]=\"column.label | translate\"/>\n }\n @case ('check') {\n <cauca-sortable-data-grid-check-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\n [label]=\"column.label | translate\"/>\n }\n @default {\n <cauca-sortable-data-grid-column [id]=\"column.prop\" [prop]=\"column.prop\"\n [width]=\"column.width ?? ''\"\n [showToolTip]=\"column.showToolTip ?? true\"\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\n [label]=\"column.label | translate\"/>\n }\n }\n }\n\n @if (hasRowActions()) {\n <cauca-data-grid-menu-column id=\"buttons\" prop=\"menu\"\n [canEdit]=\"canEdit()\"\n [canDelete]=\"canDelete()\"\n [editLinkField]=\"editLinkField()\"\n (deleteClick)=\"onDelete($event)\">\n <ng-template #menuTemplate let-row=\"row\">\n @if (showPermissions()) {\n <cauca-menu-item icon=\"list\" label=\"userList.viewPermissions\" [translateLabel]=\"true\"\n (buttonClick)=\"openPermissions(row)\"/>\n }\n </ng-template>\n </cauca-data-grid-menu-column>\n }\n\n</cauca-odata-grid>\n" }]
|
|
1645
|
+
], template: "<cauca-odata-grid\r\n matSort\r\n matSortActive=\"userName\"\r\n matSortDirection=\"asc\"\r\n aria-label=\"Users table\"\r\n resourceName=\"UserList\"\r\n [persistState]=\"persistState()\"\r\n [showTableOptions]=\"true\"\r\n [showRefreshButton]=\"true\"\r\n [showAddButton]=\"showAddButton()\"\r\n [addButtonLabel]=\"addButtonLabel() | translate\"\r\n (addButtonClick)=\"addClick.emit()\"\r\n [baseSort]=\"['userName']\"\r\n [filterPredicate]=\"filterPredicate\"\r\n [displayedColumns]=\"columns()\">\r\n\r\n <cauca-sortable-data-grid-column id=\"userName\" prop=\"userName\" [showToolTip]=\"true\"\r\n [label]=\"'userList.column.userName' | translate\"/>\r\n <cauca-sortable-data-grid-column id=\"firstName\" prop=\"firstName\" [showToolTip]=\"true\"\r\n [label]=\"'userList.column.firstName' | translate\"/>\r\n <cauca-sortable-data-grid-column id=\"lastName\" prop=\"lastName\" [showToolTip]=\"true\"\r\n [label]=\"'userList.column.lastName' | translate\"/>\r\n\r\n @for (column of extraColumns(); track column.prop) {\r\n @switch (column.kind) {\r\n @case ('scope') {\r\n <cauca-scope-list-grid-column [id]=\"column.prop\" [prop]=\"column.prop\"\r\n [width]=\"column.width ?? ''\"\r\n [showToolTip]=\"column.showToolTip ?? true\"\r\n [allLabel]=\"column.allLabel ?? ''\"\r\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\r\n [label]=\"column.label | translate\"/>\r\n }\r\n @case ('check') {\r\n <cauca-sortable-data-grid-check-column [id]=\"column.prop\" [prop]=\"column.prop\"\r\n [width]=\"column.width ?? ''\"\r\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\r\n [label]=\"column.label | translate\"/>\r\n }\r\n @default {\r\n <cauca-sortable-data-grid-column [id]=\"column.prop\" [prop]=\"column.prop\"\r\n [width]=\"column.width ?? ''\"\r\n [showToolTip]=\"column.showToolTip ?? true\"\r\n [visibleByDefault]=\"column.visibleByDefault ?? true\"\r\n [label]=\"column.label | translate\"/>\r\n }\r\n }\r\n }\r\n\r\n @if (hasRowActions()) {\r\n <cauca-data-grid-menu-column id=\"buttons\" prop=\"menu\"\r\n [canEdit]=\"canEdit()\"\r\n [canDelete]=\"canDelete()\"\r\n [editLinkField]=\"editLinkField()\"\r\n (deleteClick)=\"onDelete($event)\">\r\n <ng-template #menuTemplate let-row=\"row\">\r\n @if (showPermissions()) {\r\n <cauca-menu-item icon=\"list\" label=\"userList.viewPermissions\" [translateLabel]=\"true\"\r\n (buttonClick)=\"openPermissions(row)\"/>\r\n }\r\n </ng-template>\r\n </cauca-data-grid-menu-column>\r\n }\r\n\r\n</cauca-odata-grid>\r\n" }]
|
|
1646
1646
|
}], null, { extraColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "extraColumns", required: false }] }], showAddButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAddButton", required: false }] }], addButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "addButtonLabel", required: false }] }], canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], canDelete: [{ type: i0.Input, args: [{ isSignal: true, alias: "canDelete", required: false }] }], editLinkField: [{ type: i0.Input, args: [{ isSignal: true, alias: "editLinkField", required: false }] }], showPermissions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPermissions", required: false }] }], persistState: [{ type: i0.Input, args: [{ isSignal: true, alias: "persistState", required: false }] }], addClick: [{ type: i0.Output, args: ["addClick"] }], deleteClick: [{ type: i0.Output, args: ["deleteClick"] }], grid: [{ type: i0.ViewChild, args: [i0.forwardRef(() => OdataGridComponent), { isSignal: true }] }], sort: [{ type: i0.ViewChild, args: [i0.forwardRef(() => MatSort), { isSignal: true }] }] }); })();
|
|
1647
1647
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserListGridComponent, { className: "UserListGridComponent", filePath: "lib/components/user-list-grid/user-list-grid.component.ts", lineNumber: 27 }); })();
|
|
1648
1648
|
|
|
@@ -1697,7 +1697,7 @@ class UsersPageComponent {
|
|
|
1697
1697
|
}
|
|
1698
1698
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UsersPageComponent, [{
|
|
1699
1699
|
type: Component,
|
|
1700
|
-
args: [{ selector: 'cauca-users-page', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatCardModule, PageTitleComponent, UserListGridComponent], template: "<cauca-page-title\n [showBreadcrumb]=\"true\"\n [caption]=\"caption()\"\n [baseCrumb]=\"baseCrumb()\"\n [breadcrumb]=\"breadcrumb()\"/>\n\n<mat-card class=\"page-content\">\n\n <mat-card-content class=\"page-content-grid\">\n <cauca-user-list-grid\n [extraColumns]=\"extraColumns()\"\n [showAddButton]=\"showAddButton()\"\n [addButtonLabel]=\"addButtonLabel()\"\n [canEdit]=\"canEdit()\"\n [canDelete]=\"canDelete()\"\n [editLinkField]=\"editLinkField()\"\n [showPermissions]=\"showPermissions()\"\n [persistState]=\"persistState()\"\n (addClick)=\"addClick.emit()\"\n (deleteClick)=\"deleteClick.emit($event)\"/>\n </mat-card-content>\n\n</mat-card>\n" }]
|
|
1700
|
+
args: [{ selector: 'cauca-users-page', changeDetection: ChangeDetectionStrategy.OnPush, imports: [MatCardModule, PageTitleComponent, UserListGridComponent], template: "<cauca-page-title\r\n [showBreadcrumb]=\"true\"\r\n [caption]=\"caption()\"\r\n [baseCrumb]=\"baseCrumb()\"\r\n [breadcrumb]=\"breadcrumb()\"/>\r\n\r\n<mat-card class=\"page-content\">\r\n\r\n <mat-card-content class=\"page-content-grid\">\r\n <cauca-user-list-grid\r\n [extraColumns]=\"extraColumns()\"\r\n [showAddButton]=\"showAddButton()\"\r\n [addButtonLabel]=\"addButtonLabel()\"\r\n [canEdit]=\"canEdit()\"\r\n [canDelete]=\"canDelete()\"\r\n [editLinkField]=\"editLinkField()\"\r\n [showPermissions]=\"showPermissions()\"\r\n [persistState]=\"persistState()\"\r\n (addClick)=\"addClick.emit()\"\r\n (deleteClick)=\"deleteClick.emit($event)\"/>\r\n </mat-card-content>\r\n\r\n</mat-card>\r\n" }]
|
|
1701
1701
|
}], null, { caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "caption", required: false }] }], baseCrumb: [{ type: i0.Input, args: [{ isSignal: true, alias: "baseCrumb", required: false }] }], breadcrumb: [{ type: i0.Input, args: [{ isSignal: true, alias: "breadcrumb", required: false }] }], extraColumns: [{ type: i0.Input, args: [{ isSignal: true, alias: "extraColumns", required: false }] }], showAddButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "showAddButton", required: false }] }], addButtonLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "addButtonLabel", required: false }] }], canEdit: [{ type: i0.Input, args: [{ isSignal: true, alias: "canEdit", required: false }] }], canDelete: [{ type: i0.Input, args: [{ isSignal: true, alias: "canDelete", required: false }] }], editLinkField: [{ type: i0.Input, args: [{ isSignal: true, alias: "editLinkField", required: false }] }], showPermissions: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPermissions", required: false }] }], persistState: [{ type: i0.Input, args: [{ isSignal: true, alias: "persistState", required: false }] }], addClick: [{ type: i0.Output, args: ["addClick"] }], deleteClick: [{ type: i0.Output, args: ["deleteClick"] }], grid: [{ type: i0.ViewChild, args: [i0.forwardRef(() => UserListGridComponent), { isSignal: true }] }] }); })();
|
|
1702
1702
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UsersPageComponent, { className: "UsersPageComponent", filePath: "lib/pages/users-page/users-page.component.ts", lineNumber: 14 }); })();
|
|
1703
1703
|
|
|
@@ -1885,7 +1885,7 @@ class UserLoginFieldsComponent {
|
|
|
1885
1885
|
MatSlideToggleModule,
|
|
1886
1886
|
PasswordSelectionComponent,
|
|
1887
1887
|
TranslatePipe,
|
|
1888
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cauca-expandable-panel [caption]=\"'userEdition.loginSectionCaption' | translate\">\n <div class=\"user-login-fields\">\n <mat-form-field id=\"user-name-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'management.userName' | translate }}</mat-label>\n <input matInput [attr.aria-label]=\"'management.userName' | translate\" [formField]=\"field().userName\">\n @if (isValidatingUserName()) {\n <mat-progress-spinner matSuffix diameter=\"16\" mode=\"indeterminate\"/>\n }\n </mat-form-field>\n <cauca-field-errors [field]=\"field().userName\"/>\n\n <div class=\"password-fields\">\n <cauca-password-selection [required]=\"isNew()\" [formField]=\"field().password\"/>\n </div>\n\n <mat-slide-toggle color=\"primary\" [formField]=\"field().twoFactorAuthenticatorEnabled\">\n {{ 'userEdition.twoFactorAuthenticatorEnabled' | translate }}\n </mat-slide-toggle>\n\n <ng-content/>\n </div>\n</cauca-expandable-panel>\n", styles: [":host{display:block}.user-login-fields{display:flex;flex-direction:column}.user-login-fields mat-form-field:not(:first-child),.user-login-fields .password-fields,.user-login-fields mat-slide-toggle{margin-top:1.25rem}\n"] }]
|
|
1888
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cauca-expandable-panel [caption]=\"'userEdition.loginSectionCaption' | translate\">\r\n <div class=\"user-login-fields\">\r\n <mat-form-field id=\"user-name-field\" subscriptSizing=\"dynamic\">\r\n <mat-label>{{ 'management.userName' | translate }}</mat-label>\r\n <input matInput [attr.aria-label]=\"'management.userName' | translate\" [formField]=\"field().userName\">\r\n @if (isValidatingUserName()) {\r\n <mat-progress-spinner matSuffix diameter=\"16\" mode=\"indeterminate\"/>\r\n }\r\n </mat-form-field>\r\n <cauca-field-errors [field]=\"field().userName\"/>\r\n\r\n <div class=\"password-fields\">\r\n <cauca-password-selection [required]=\"isNew()\" [formField]=\"field().password\"/>\r\n </div>\r\n\r\n <mat-slide-toggle color=\"primary\" [formField]=\"field().twoFactorAuthenticatorEnabled\">\r\n {{ 'userEdition.twoFactorAuthenticatorEnabled' | translate }}\r\n </mat-slide-toggle>\r\n\r\n <ng-content/>\r\n </div>\r\n</cauca-expandable-panel>\r\n", styles: [":host{display:block}.user-login-fields{display:flex;flex-direction:column}.user-login-fields mat-form-field:not(:first-child),.user-login-fields .password-fields,.user-login-fields mat-slide-toggle{margin-top:1.25rem}\n"] }]
|
|
1889
1889
|
}], null, { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], isNew: [{ type: i0.Input, args: [{ isSignal: true, alias: "isNew", required: false }] }], isValidatingUserName: [{ type: i0.Input, args: [{ isSignal: true, alias: "isValidatingUserName", required: false }] }] }); })();
|
|
1890
1890
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserLoginFieldsComponent, { className: "UserLoginFieldsComponent", filePath: "lib/components/user-login-fields/user-login-fields.component.ts", lineNumber: 28 }); })();
|
|
1891
1891
|
|
|
@@ -1992,7 +1992,7 @@ class UserPersonalInformationFieldsComponent {
|
|
|
1992
1992
|
MatInputModule,
|
|
1993
1993
|
PhoneNumberInputComponent,
|
|
1994
1994
|
TranslatePipe,
|
|
1995
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cauca-expandable-panel [caption]=\"'userEdition.personalInformationSectionCaption' | translate\">\n <div class=\"user-personal-information-fields\">\n <mat-form-field id=\"first-name-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'management.firstName' | translate }}</mat-label>\n <input matInput [attr.aria-label]=\"'management.firstName' | translate\" [formField]=\"field().firstName\">\n </mat-form-field>\n <cauca-field-errors [field]=\"field().firstName\"/>\n\n <mat-form-field id=\"last-name-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'management.lastName' | translate }}</mat-label>\n <input matInput [attr.aria-label]=\"'management.lastName' | translate\" [formField]=\"field().lastName\">\n </mat-form-field>\n <cauca-field-errors [field]=\"field().lastName\"/>\n\n <mat-form-field id=\"email-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ 'management.email' | translate }}</mat-label>\n <input matInput [attr.aria-label]=\"'management.email' | translate\" [formField]=\"field().email\">\n @if (isEmailReadOnly() && emailHint()) {\n <mat-hint>{{ emailHint() | translate }}</mat-hint>\n }\n </mat-form-field>\n <cauca-field-errors [field]=\"field().email\"/>\n\n <cauca-phone-number-input [formField]=\"field().phoneNumber\" [label]=\"'management.phoneNumber'\"/>\n\n <ng-content/>\n </div>\n</cauca-expandable-panel>\n", styles: [":host{display:block}.user-personal-information-fields{display:flex;flex-direction:column}.user-personal-information-fields mat-form-field:not(:first-child),.user-personal-information-fields cauca-phone-number-input{margin-top:1.25rem}\n"] }]
|
|
1995
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<cauca-expandable-panel [caption]=\"'userEdition.personalInformationSectionCaption' | translate\">\r\n <div class=\"user-personal-information-fields\">\r\n <mat-form-field id=\"first-name-field\" subscriptSizing=\"dynamic\">\r\n <mat-label>{{ 'management.firstName' | translate }}</mat-label>\r\n <input matInput [attr.aria-label]=\"'management.firstName' | translate\" [formField]=\"field().firstName\">\r\n </mat-form-field>\r\n <cauca-field-errors [field]=\"field().firstName\"/>\r\n\r\n <mat-form-field id=\"last-name-field\" subscriptSizing=\"dynamic\">\r\n <mat-label>{{ 'management.lastName' | translate }}</mat-label>\r\n <input matInput [attr.aria-label]=\"'management.lastName' | translate\" [formField]=\"field().lastName\">\r\n </mat-form-field>\r\n <cauca-field-errors [field]=\"field().lastName\"/>\r\n\r\n <mat-form-field id=\"email-field\" subscriptSizing=\"dynamic\">\r\n <mat-label>{{ 'management.email' | translate }}</mat-label>\r\n <input matInput [attr.aria-label]=\"'management.email' | translate\" [formField]=\"field().email\">\r\n @if (isEmailReadOnly() && emailHint()) {\r\n <mat-hint>{{ emailHint() | translate }}</mat-hint>\r\n }\r\n </mat-form-field>\r\n <cauca-field-errors [field]=\"field().email\"/>\r\n\r\n <cauca-phone-number-input [formField]=\"field().phoneNumber\" [label]=\"'management.phoneNumber'\"/>\r\n\r\n <ng-content/>\r\n </div>\r\n</cauca-expandable-panel>\r\n", styles: [":host{display:block}.user-personal-information-fields{display:flex;flex-direction:column}.user-personal-information-fields mat-form-field:not(:first-child),.user-personal-information-fields cauca-phone-number-input{margin-top:1.25rem}\n"] }]
|
|
1996
1996
|
}], null, { field: [{ type: i0.Input, args: [{ isSignal: true, alias: "field", required: true }] }], isEmailReadOnly: [{ type: i0.Input, args: [{ isSignal: true, alias: "isEmailReadOnly", required: false }] }], emailHint: [{ type: i0.Input, args: [{ isSignal: true, alias: "emailHint", required: false }] }] }); })();
|
|
1997
1997
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserPersonalInformationFieldsComponent, { className: "UserPersonalInformationFieldsComponent", filePath: "lib/components/user-personal-information-fields/user-personal-information-fields.component.ts", lineNumber: 24 }); })();
|
|
1998
1998
|
|
|
@@ -2018,13 +2018,19 @@ class UserGroupsSelectorComponent {
|
|
|
2018
2018
|
...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
2019
2019
|
this.errors = input([], /* @ts-ignore */
|
|
2020
2020
|
...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
|
|
2021
|
+
this.assignedGroups = input([], /* @ts-ignore */
|
|
2022
|
+
...(ngDevMode ? [{ debugName: "assignedGroups" }] : /* istanbul ignore next */ []));
|
|
2021
2023
|
this.touch = output();
|
|
2022
2024
|
// `DropdownChipAutocompleteComponent` is a `ControlValueAccessor` and stays one per ADR-0005,
|
|
2023
2025
|
// so a reactive control is the only channel through which its selection can be read back.
|
|
2024
2026
|
this.selectedGroupIds = new FormControl([], { nonNullable: true });
|
|
2025
|
-
this.
|
|
2027
|
+
this.lockedGroups = computed(() => this.assignedGroups().filter((assigned) => !this.groups.value().some((group) => group.id === assigned.id)), /* @ts-ignore */
|
|
2028
|
+
...(ngDevMode ? [{ debugName: "lockedGroups" }] : /* istanbul ignore next */ []));
|
|
2029
|
+
this.lockedGroupIds = computed(() => this.lockedGroups().map((group) => group.id), /* @ts-ignore */
|
|
2030
|
+
...(ngDevMode ? [{ debugName: "lockedGroupIds" }] : /* istanbul ignore next */ []));
|
|
2031
|
+
this.options = computed(() => [...this.groups.value(), ...this.lockedGroups()], /* @ts-ignore */
|
|
2026
2032
|
...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
|
|
2027
|
-
this.isControlDisabled = computed(() => this.disabled() || this.readonly() || this.
|
|
2033
|
+
this.isControlDisabled = computed(() => this.disabled() || this.readonly() || this.groups.value().length === 0, /* @ts-ignore */
|
|
2028
2034
|
...(ngDevMode ? [{ debugName: "isControlDisabled" }] : /* istanbul ignore next */ []));
|
|
2029
2035
|
this.assignableGroupsService = inject(AssignableGroupsService);
|
|
2030
2036
|
this.groups = rxResource({
|
|
@@ -2062,7 +2068,7 @@ class UserGroupsSelectorComponent {
|
|
|
2062
2068
|
this.touch.emit();
|
|
2063
2069
|
}
|
|
2064
2070
|
static { this.ɵfac = function UserGroupsSelectorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || UserGroupsSelectorComponent)(); }; }
|
|
2065
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserGroupsSelectorComponent, selectors: [["cauca-user-groups-selector"]], inputs: { value: [1, "value"], label: [1, "label"], disabled: [1, "disabled"], readonly: [1, "readonly"], required: [1, "required"], invalid: [1, "invalid"], touched: [1, "touched"], name: [1, "name"], errors: [1, "errors"] }, outputs: { value: "valueChange", touch: "touch" }, decls: 6, vars:
|
|
2071
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: UserGroupsSelectorComponent, selectors: [["cauca-user-groups-selector"]], inputs: { value: [1, "value"], label: [1, "label"], disabled: [1, "disabled"], readonly: [1, "readonly"], required: [1, "required"], invalid: [1, "invalid"], touched: [1, "touched"], name: [1, "name"], errors: [1, "errors"], assignedGroups: [1, "assignedGroups"] }, outputs: { value: "valueChange", touch: "touch" }, decls: 6, vars: 15, consts: [["subscriptSizing", "dynamic", 1, "user-groups-selector-field"], ["caucaControlErrorState", "", "keyValue", "id", "displayValue", "name", 3, "touched", "errors", "formControl", "listAutoComplete", "lockedValues", "allowRemove", "canRemoveAll", "required"], [3, "touched", "errors"]], template: function UserGroupsSelectorComponent_Template(rf, ctx) { if (rf & 1) {
|
|
2066
2072
|
i0.ɵɵelementStart(0, "mat-form-field", 0)(1, "mat-label");
|
|
2067
2073
|
i0.ɵɵtext(2);
|
|
2068
2074
|
i0.ɵɵpipe(3, "translate");
|
|
@@ -2073,9 +2079,9 @@ class UserGroupsSelectorComponent {
|
|
|
2073
2079
|
i0.ɵɵelement(5, "cauca-control-field-errors", 2);
|
|
2074
2080
|
} if (rf & 2) {
|
|
2075
2081
|
i0.ɵɵadvance(2);
|
|
2076
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3,
|
|
2082
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 13, ctx.label()));
|
|
2077
2083
|
i0.ɵɵadvance(2);
|
|
2078
|
-
i0.ɵɵproperty("touched", ctx.touched())("errors", ctx.errors())("formControl", ctx.selectedGroupIds)("listAutoComplete", ctx.options())("allowRemove", !ctx.isControlDisabled())("canRemoveAll", !ctx.isControlDisabled())("required", ctx.required());
|
|
2084
|
+
i0.ɵɵproperty("touched", ctx.touched())("errors", ctx.errors())("formControl", ctx.selectedGroupIds)("listAutoComplete", ctx.options())("lockedValues", ctx.lockedGroupIds())("allowRemove", !ctx.isControlDisabled())("canRemoveAll", !ctx.isControlDisabled())("required", ctx.required());
|
|
2079
2085
|
i0.ɵɵattribute("aria-invalid", ctx.invalid())("name", ctx.name() || null);
|
|
2080
2086
|
i0.ɵɵcontrol();
|
|
2081
2087
|
i0.ɵɵadvance();
|
|
@@ -2094,8 +2100,8 @@ class UserGroupsSelectorComponent {
|
|
|
2094
2100
|
MatFormFieldModule,
|
|
2095
2101
|
ReactiveFormsModule,
|
|
2096
2102
|
TranslatePipe,
|
|
2097
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field class=\"user-groups-selector-field\" subscriptSizing=\"dynamic\">\n <mat-label>{{ label() | translate }}</mat-label>\n\n <cauca-dropdown-chip-autocomplete\n caucaControlErrorState [touched]=\"touched()\" [errors]=\"errors()\"\n [formControl]=\"selectedGroupIds\"\n [listAutoComplete]=\"options()\"\n keyValue=\"id\"\n displayValue=\"name\"\n [allowRemove]=\"!isControlDisabled()\"\n [canRemoveAll]=\"!isControlDisabled()\"\n [required]=\"required()\"\n [attr.aria-invalid]=\"invalid()\"\n [attr.name]=\"name() || null\"/>\n</mat-form-field>\n\n<cauca-control-field-errors [touched]=\"touched()\" [errors]=\"errors()\"/>\n", styles: [":host{display:block}.user-groups-selector-field{width:100%}\n"] }]
|
|
2098
|
-
}], () => [], { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }] }); })();
|
|
2103
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-form-field class=\"user-groups-selector-field\" subscriptSizing=\"dynamic\">\r\n <mat-label>{{ label() | translate }}</mat-label>\r\n\r\n <cauca-dropdown-chip-autocomplete\r\n caucaControlErrorState [touched]=\"touched()\" [errors]=\"errors()\"\r\n [formControl]=\"selectedGroupIds\"\r\n [listAutoComplete]=\"options()\"\r\n [lockedValues]=\"lockedGroupIds()\"\r\n keyValue=\"id\"\r\n displayValue=\"name\"\r\n [allowRemove]=\"!isControlDisabled()\"\r\n [canRemoveAll]=\"!isControlDisabled()\"\r\n [required]=\"required()\"\r\n [attr.aria-invalid]=\"invalid()\"\r\n [attr.name]=\"name() || null\"/>\r\n</mat-form-field>\r\n\r\n<cauca-control-field-errors [touched]=\"touched()\" [errors]=\"errors()\"/>\r\n", styles: [":host{display:block}.user-groups-selector-field{width:100%}\n"] }]
|
|
2104
|
+
}], () => [], { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }, { type: i0.Output, args: ["valueChange"] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], invalid: [{ type: i0.Input, args: [{ isSignal: true, alias: "invalid", required: false }] }], touched: [{ type: i0.Input, args: [{ isSignal: true, alias: "touched", required: false }] }], name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }], assignedGroups: [{ type: i0.Input, args: [{ isSignal: true, alias: "assignedGroups", required: false }] }], touch: [{ type: i0.Output, args: ["touch"] }] }); })();
|
|
2099
2105
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(UserGroupsSelectorComponent, { className: "UserGroupsSelectorComponent", filePath: "lib/components/user-groups-selector/user-groups-selector.component.ts", lineNumber: 29 }); })();
|
|
2100
2106
|
function haveSameIds(left, right) {
|
|
2101
2107
|
return left.length === right.length && left.every((id, index) => id === right[index]);
|