aril 1.2.10 → 1.2.11
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/esm2022/theme/layout/app/history/history.service.mjs +4 -3
- package/esm2022/theme/layout/app/site-map/site-map-sidebar.component.mjs +6 -5
- package/esm2022/theme/layout/app/static-sidebar/static-sidebar.component.mjs +17 -8
- package/esm2022/ui/autoComplete/src/auto-complete.component.mjs +13 -9
- package/esm2022/ui-business/rolePicker/src/role-picker.component.mjs +13 -9
- package/esm2022/util/sync-active-tab-route/src/sync-active-tab-route.directive.mjs +1 -1
- package/fesm2022/aril-theme-layout.mjs +23 -13
- package/fesm2022/aril-theme-layout.mjs.map +1 -1
- package/fesm2022/aril-ui-autoComplete.mjs +12 -8
- package/fesm2022/aril-ui-autoComplete.mjs.map +1 -1
- package/fesm2022/aril-ui-business-rolePicker.mjs +12 -8
- package/fesm2022/aril-ui-business-rolePicker.mjs.map +1 -1
- package/fesm2022/aril-util-sync-active-tab-route.mjs.map +1 -1
- package/package.json +187 -187
- package/theme/layout/app/history/history.service.ts +5 -2
- package/theme/layout/app/site-map/site-map-sidebar.component.html +121 -121
- package/theme/layout/app/site-map/site-map-sidebar.component.ts +3 -2
- package/theme/layout/app/static-sidebar/static-sidebar.component.d.ts +0 -1
- package/theme/layout/app/static-sidebar/static-sidebar.component.html +3 -3
- package/theme/layout/app/static-sidebar/static-sidebar.component.ts +14 -7
- package/ui/autoComplete/src/auto-complete.component.d.ts +3 -1
- package/ui-business/rolePicker/src/role-picker.component.d.ts +3 -1
|
@@ -1,121 +1,121 @@
|
|
|
1
|
-
<p-sidebar
|
|
2
|
-
[(visible)]="visible"
|
|
3
|
-
position="right"
|
|
4
|
-
[transitionOptions]="'.3s cubic-bezier(0, 0, 0.2, 1)'"
|
|
5
|
-
styleClass="layout-sitemap-sidebar w-full sm:w-30rem"
|
|
6
|
-
*transloco="let t; read: 'siteMap'">
|
|
7
|
-
<ng-template pTemplate="header">
|
|
8
|
-
<div class="flex align-items-center justify-content-between gap-2 w-full">
|
|
9
|
-
<div class="flex align-items-center gap-2">
|
|
10
|
-
<i class="pi pi-sitemap text-primary text-xl"></i>
|
|
11
|
-
<span class="font-bold text-lg">{{ t('siteMap') }}</span>
|
|
12
|
-
<span class="total-pages">{{ totalPages() }} {{ t('pages') }}</span>
|
|
13
|
-
</div>
|
|
14
|
-
</div>
|
|
15
|
-
</ng-template>
|
|
16
|
-
|
|
17
|
-
<div class="sitemap-content">
|
|
18
|
-
<div class="search-section grid p-fluid m-0">
|
|
19
|
-
<aril-text
|
|
20
|
-
[placeholder]="t('searchPages')"
|
|
21
|
-
[(ngModel)]="searchTerm"
|
|
22
|
-
(ngModelChange)="onSearchChange()"
|
|
23
|
-
class="col-10 m-0">
|
|
24
|
-
</aril-text>
|
|
25
|
-
@if (filteredNodes().length > 0) {
|
|
26
|
-
<div class="col-2 flex align-items-center m-0 p-0">
|
|
27
|
-
<fa-icon
|
|
28
|
-
[icon]="solidIcons.faAnglesDown"
|
|
29
|
-
size="xl"
|
|
30
|
-
style="color: var(--primary-color)"
|
|
31
|
-
class="col-1 cursor-pointer"
|
|
32
|
-
[pTooltip]="t('expandAll')"
|
|
33
|
-
tooltipPosition="top"
|
|
34
|
-
(click)="expandAll()">
|
|
35
|
-
</fa-icon>
|
|
36
|
-
<fa-icon
|
|
37
|
-
[icon]="solidIcons.faAnglesUp"
|
|
38
|
-
size="xl"
|
|
39
|
-
style="color: var(--red-500)"
|
|
40
|
-
class="col-1 ml-3 cursor-pointer"
|
|
41
|
-
[pTooltip]="t('collapseAll')"
|
|
42
|
-
tooltipPosition="top"
|
|
43
|
-
(click)="collapseAll()">
|
|
44
|
-
</fa-icon>
|
|
45
|
-
</div>
|
|
46
|
-
}
|
|
47
|
-
</div>
|
|
48
|
-
|
|
49
|
-
<!-- Site Map Tree -->
|
|
50
|
-
@if (filteredNodes().length > 0) {
|
|
51
|
-
<div class="sitemap-tree">
|
|
52
|
-
<p-scrollPanel [style]="{ width: '100%', height: '100%' }">
|
|
53
|
-
<div class="tree-container">
|
|
54
|
-
@for (node of filteredNodes(); track trackByKey($index, node)) {
|
|
55
|
-
<ng-container *ngTemplateOutlet="treeNodeTemplate; context: { $implicit: node, level: 0 }"></ng-container>
|
|
56
|
-
}
|
|
57
|
-
</div>
|
|
58
|
-
</p-scrollPanel>
|
|
59
|
-
</div>
|
|
60
|
-
} @else {
|
|
61
|
-
<div class="empty-state">
|
|
62
|
-
<div class="empty-content">
|
|
63
|
-
<i class="pi pi-sitemap empty-icon"></i>
|
|
64
|
-
<h3 class="empty-title">
|
|
65
|
-
{{ searchTerm() ? t('noSearchResults') : t('noPages') }}
|
|
66
|
-
</h3>
|
|
67
|
-
<p class="empty-message">
|
|
68
|
-
{{ searchTerm() ? t('tryDifferentKeywords') : '' }}
|
|
69
|
-
</p>
|
|
70
|
-
@if (searchTerm()) {
|
|
71
|
-
<aril-button
|
|
72
|
-
[label]="t('clearSearch')"
|
|
73
|
-
icon="TIMES"
|
|
74
|
-
color="secondary"
|
|
75
|
-
[outlined]="true"
|
|
76
|
-
size="sm"
|
|
77
|
-
(clickEvent)="searchTerm.set(''); onSearchChange()">
|
|
78
|
-
</aril-button>
|
|
79
|
-
}
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
<!-- Recursive Tree Node Template -->
|
|
85
|
-
<ng-template #treeNodeTemplate let-node let-level="level">
|
|
86
|
-
<div class="tree-node" [style.margin-left.px]="level * 20">
|
|
87
|
-
<div
|
|
88
|
-
class="node-item"
|
|
89
|
-
[class.has-children]="node.children && node.children.length > 0"
|
|
90
|
-
[class.is-page]="node.routerLink"
|
|
91
|
-
[routerLink]="node.routerLink"
|
|
92
|
-
(click)="!node.routerLink ? toggleNode(node) : (visible = false)">
|
|
93
|
-
<div class="node-content">
|
|
94
|
-
@if (node.children && node.children.length > 0) {
|
|
95
|
-
<div class="toggle-btn" (click)="$event.stopPropagation(); toggleNode(node)">
|
|
96
|
-
<i class="pi" [class.pi-chevron-right]="!node.expanded" [class.pi-chevron-down]="node.expanded"></i>
|
|
97
|
-
</div>
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
@if (node.icon) {
|
|
101
|
-
<i class="node-icon" [class]="node.icon"></i>
|
|
102
|
-
}
|
|
103
|
-
<span class="node-label">{{ node.label | translateJson }}</span>
|
|
104
|
-
|
|
105
|
-
@if (node.routerLink) {
|
|
106
|
-
<i class="external-icon pi pi-external-link"></i>
|
|
107
|
-
}
|
|
108
|
-
</div>
|
|
109
|
-
</div>
|
|
110
|
-
|
|
111
|
-
<!-- Recursive Children -->
|
|
112
|
-
@if (node.children && node.expanded) {
|
|
113
|
-
@for (child of node.children; track trackByKey($index, child)) {
|
|
114
|
-
<ng-container
|
|
115
|
-
*ngTemplateOutlet="treeNodeTemplate; context: { $implicit: child, level: level + 1 }"></ng-container>
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
</div>
|
|
119
|
-
</ng-template>
|
|
120
|
-
</div>
|
|
121
|
-
</p-sidebar>
|
|
1
|
+
<p-sidebar
|
|
2
|
+
[(visible)]="visible"
|
|
3
|
+
position="right"
|
|
4
|
+
[transitionOptions]="'.3s cubic-bezier(0, 0, 0.2, 1)'"
|
|
5
|
+
styleClass="layout-sitemap-sidebar w-full sm:w-30rem"
|
|
6
|
+
*transloco="let t; read: 'siteMap'">
|
|
7
|
+
<ng-template pTemplate="header">
|
|
8
|
+
<div class="flex align-items-center justify-content-between gap-2 w-full">
|
|
9
|
+
<div class="flex align-items-center gap-2">
|
|
10
|
+
<i class="pi pi-sitemap text-primary text-xl"></i>
|
|
11
|
+
<span class="font-bold text-lg">{{ t('siteMap') }}</span>
|
|
12
|
+
<span class="total-pages">{{ totalPages() }} {{ t('pages') }}</span>
|
|
13
|
+
</div>
|
|
14
|
+
</div>
|
|
15
|
+
</ng-template>
|
|
16
|
+
|
|
17
|
+
<div class="sitemap-content">
|
|
18
|
+
<div class="search-section grid p-fluid m-0">
|
|
19
|
+
<aril-text
|
|
20
|
+
[placeholder]="t('searchPages')"
|
|
21
|
+
[(ngModel)]="searchTerm"
|
|
22
|
+
(ngModelChange)="onSearchChange()"
|
|
23
|
+
class="col-10 m-0">
|
|
24
|
+
</aril-text>
|
|
25
|
+
@if (filteredNodes().length > 0) {
|
|
26
|
+
<div class="col-2 flex align-items-center m-0 p-0">
|
|
27
|
+
<fa-icon
|
|
28
|
+
[icon]="solidIcons.faAnglesDown"
|
|
29
|
+
size="xl"
|
|
30
|
+
style="color: var(--primary-color)"
|
|
31
|
+
class="col-1 cursor-pointer"
|
|
32
|
+
[pTooltip]="t('expandAll')"
|
|
33
|
+
tooltipPosition="top"
|
|
34
|
+
(click)="expandAll()">
|
|
35
|
+
</fa-icon>
|
|
36
|
+
<fa-icon
|
|
37
|
+
[icon]="solidIcons.faAnglesUp"
|
|
38
|
+
size="xl"
|
|
39
|
+
style="color: var(--red-500)"
|
|
40
|
+
class="col-1 ml-3 cursor-pointer"
|
|
41
|
+
[pTooltip]="t('collapseAll')"
|
|
42
|
+
tooltipPosition="top"
|
|
43
|
+
(click)="collapseAll()">
|
|
44
|
+
</fa-icon>
|
|
45
|
+
</div>
|
|
46
|
+
}
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<!-- Site Map Tree -->
|
|
50
|
+
@if (filteredNodes().length > 0) {
|
|
51
|
+
<div class="sitemap-tree">
|
|
52
|
+
<p-scrollPanel [style]="{ width: '100%', height: '100%' }">
|
|
53
|
+
<div class="tree-container">
|
|
54
|
+
@for (node of filteredNodes(); track trackByKey($index, node)) {
|
|
55
|
+
<ng-container *ngTemplateOutlet="treeNodeTemplate; context: { $implicit: node, level: 0 }"></ng-container>
|
|
56
|
+
}
|
|
57
|
+
</div>
|
|
58
|
+
</p-scrollPanel>
|
|
59
|
+
</div>
|
|
60
|
+
} @else {
|
|
61
|
+
<div class="empty-state">
|
|
62
|
+
<div class="empty-content">
|
|
63
|
+
<i class="pi pi-sitemap empty-icon"></i>
|
|
64
|
+
<h3 class="empty-title">
|
|
65
|
+
{{ searchTerm() ? t('noSearchResults') : t('noPages') }}
|
|
66
|
+
</h3>
|
|
67
|
+
<p class="empty-message">
|
|
68
|
+
{{ searchTerm() ? t('tryDifferentKeywords') : '' }}
|
|
69
|
+
</p>
|
|
70
|
+
@if (searchTerm()) {
|
|
71
|
+
<aril-button
|
|
72
|
+
[label]="t('clearSearch')"
|
|
73
|
+
icon="TIMES"
|
|
74
|
+
color="secondary"
|
|
75
|
+
[outlined]="true"
|
|
76
|
+
size="sm"
|
|
77
|
+
(clickEvent)="searchTerm.set(''); onSearchChange()">
|
|
78
|
+
</aril-button>
|
|
79
|
+
}
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
<!-- Recursive Tree Node Template -->
|
|
85
|
+
<ng-template #treeNodeTemplate let-node let-level="level">
|
|
86
|
+
<div class="tree-node" [style.margin-left.px]="level * 20">
|
|
87
|
+
<div
|
|
88
|
+
class="node-item"
|
|
89
|
+
[class.has-children]="node.children && node.children.length > 0"
|
|
90
|
+
[class.is-page]="node.routerLink"
|
|
91
|
+
[routerLink]="node.routerLink"
|
|
92
|
+
(click)="!node.routerLink ? toggleNode(node) : (visible = false)">
|
|
93
|
+
<div class="node-content">
|
|
94
|
+
@if (node.children && node.children.length > 0) {
|
|
95
|
+
<div class="toggle-btn" (click)="$event.stopPropagation(); toggleNode(node)">
|
|
96
|
+
<i class="pi" [class.pi-chevron-right]="!node.expanded" [class.pi-chevron-down]="node.expanded"></i>
|
|
97
|
+
</div>
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
@if (node.icon) {
|
|
101
|
+
<i class="node-icon" [class]="node.icon"></i>
|
|
102
|
+
}
|
|
103
|
+
<span class="node-label">{{ node.label | translateJson }}</span>
|
|
104
|
+
|
|
105
|
+
@if (node.routerLink) {
|
|
106
|
+
<i class="external-icon pi pi-external-link"></i>
|
|
107
|
+
}
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
<!-- Recursive Children -->
|
|
112
|
+
@if (node.children && node.expanded) {
|
|
113
|
+
@for (child of node.children; track trackByKey($index, child)) {
|
|
114
|
+
<ng-container
|
|
115
|
+
*ngTemplateOutlet="treeNodeTemplate; context: { $implicit: child, level: level + 1 }"></ng-container>
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
</div>
|
|
119
|
+
</ng-template>
|
|
120
|
+
</div>
|
|
121
|
+
</p-sidebar>
|
|
@@ -126,7 +126,8 @@ export class SiteMapSidebarComponent implements OnInit {
|
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
onSearchChange(): void {
|
|
129
|
-
const
|
|
129
|
+
const currentLang = this.translocoService.getActiveLang();
|
|
130
|
+
const searchTerm = this.searchTerm()?.toLocaleLowerCase(currentLang)?.trim();
|
|
130
131
|
if (!searchTerm) {
|
|
131
132
|
this.filteredNodes.set(this.siteMapNodes());
|
|
132
133
|
} else {
|
|
@@ -146,7 +147,7 @@ export class SiteMapSidebarComponent implements OnInit {
|
|
|
146
147
|
node.label
|
|
147
148
|
: (node.label as any)?.[currentLang] || (node.label as any)?.tr || (node.label as any)?.en || '';
|
|
148
149
|
|
|
149
|
-
const matches = labelText.
|
|
150
|
+
const matches = labelText.toLocaleLowerCase(currentLang).includes(searchTerm);
|
|
150
151
|
let filteredChildren: MenuNode[] = [];
|
|
151
152
|
|
|
152
153
|
if (node.children) {
|
|
@@ -51,7 +51,6 @@ export declare class StaticSidebarComponent implements OnInit, OnDestroy {
|
|
|
51
51
|
toggleNode(node: MenuNode, level?: number): void;
|
|
52
52
|
private closeOtherTopLevelNodes;
|
|
53
53
|
private closeAllChildNodes;
|
|
54
|
-
trackByKey(index: number, node: MenuNode): any;
|
|
55
54
|
onMenuItemClick(): void;
|
|
56
55
|
onActionItemClick(node: MenuNode, event: Event): void;
|
|
57
56
|
private buildSuccessRoute;
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
</div>
|
|
17
17
|
<p-scrollPanel [style]="{ width: '100%', height: 'calc(100vh - 130px)' }">
|
|
18
18
|
<div class="tree-container">
|
|
19
|
-
@for (node of filteredNodes(); track
|
|
19
|
+
@for (node of filteredNodes(); track node.key) {
|
|
20
20
|
<ng-container *ngTemplateOutlet="treeNodeTemplate; context: { $implicit: node, level: 0 }"></ng-container>
|
|
21
21
|
}
|
|
22
22
|
</div>
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
} @else {
|
|
25
25
|
<!-- Collapsed mode - only icons -->
|
|
26
26
|
<div class="collapsed-container">
|
|
27
|
-
@for (node of topLevelNodes; track
|
|
27
|
+
@for (node of topLevelNodes; track node.key) {
|
|
28
28
|
@if (node.action && (!node.children || node.children.length === 0)) {
|
|
29
29
|
<div
|
|
30
30
|
class="collapsed-item is-action"
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
<!-- Recursive Children -->
|
|
152
152
|
@if (node.children && node.expanded) {
|
|
153
153
|
<div class="children-container" [attr.data-level]="level">
|
|
154
|
-
@for (child of node.children; track
|
|
154
|
+
@for (child of node.children; track child.key) {
|
|
155
155
|
<ng-container
|
|
156
156
|
*ngTemplateOutlet="treeNodeTemplate; context: { $implicit: child, level: level + 1 }"></ng-container>
|
|
157
157
|
}
|
|
@@ -5,6 +5,7 @@ import { toSignal } from '@angular/core/rxjs-interop';
|
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
6
|
import { NavigationEnd, Router, RouterLink } from '@angular/router';
|
|
7
7
|
|
|
8
|
+
import { InputTextModule } from 'primeng/inputtext';
|
|
8
9
|
import { ScrollPanelModule } from 'primeng/scrollpanel';
|
|
9
10
|
import { TooltipModule } from 'primeng/tooltip';
|
|
10
11
|
|
|
@@ -32,7 +33,16 @@ interface MenuNode {
|
|
|
32
33
|
@Component({
|
|
33
34
|
standalone: true,
|
|
34
35
|
selector: 'app-static-sidebar',
|
|
35
|
-
imports: [
|
|
36
|
+
imports: [
|
|
37
|
+
RouterLink,
|
|
38
|
+
NgClass,
|
|
39
|
+
NgTemplateOutlet,
|
|
40
|
+
ScrollPanelModule,
|
|
41
|
+
TooltipModule,
|
|
42
|
+
FormsModule,
|
|
43
|
+
TranslocoModule,
|
|
44
|
+
InputTextModule
|
|
45
|
+
],
|
|
36
46
|
templateUrl: './static-sidebar.component.html',
|
|
37
47
|
styleUrl: './static-sidebar.component.scss',
|
|
38
48
|
providers: [TranslateJsonPipe]
|
|
@@ -212,10 +222,6 @@ export class StaticSidebarComponent implements OnInit, OnDestroy {
|
|
|
212
222
|
}
|
|
213
223
|
}
|
|
214
224
|
|
|
215
|
-
trackByKey(index: number, node: MenuNode): any {
|
|
216
|
-
return node.key;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
225
|
onMenuItemClick() {
|
|
220
226
|
if (this.isMobile()) {
|
|
221
227
|
this.layoutService.closeMobileMenu();
|
|
@@ -296,7 +302,8 @@ export class StaticSidebarComponent implements OnInit, OnDestroy {
|
|
|
296
302
|
}
|
|
297
303
|
|
|
298
304
|
onSearchChange(): void {
|
|
299
|
-
const
|
|
305
|
+
const currentLang = this.translocoService.getActiveLang();
|
|
306
|
+
const currentSearchTerm = this.searchTerm()?.toLocaleLowerCase(currentLang)?.trim();
|
|
300
307
|
if (!currentSearchTerm) {
|
|
301
308
|
this.filteredNodes.set(this.menuNodes() || []);
|
|
302
309
|
return;
|
|
@@ -315,7 +322,7 @@ export class StaticSidebarComponent implements OnInit, OnDestroy {
|
|
|
315
322
|
node.label
|
|
316
323
|
: (node.label as any)?.[currentLang] || (node.label as any)?.tr || (node.label as any)?.en || '';
|
|
317
324
|
|
|
318
|
-
const matches = labelText.
|
|
325
|
+
const matches = labelText.toLocaleLowerCase(currentLang).includes(searchTerm);
|
|
319
326
|
let filteredChildren: MenuNode[] = [];
|
|
320
327
|
|
|
321
328
|
if (node.children) {
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { AfterViewInit } from '@angular/core';
|
|
3
3
|
import { AutoComplete } from 'primeng/autocomplete';
|
|
4
|
+
import { TranslocoService } from '@ngneat/transloco';
|
|
4
5
|
import { BaseInputComponent } from 'aril/ui/lib';
|
|
5
6
|
import { ReferenceAsset, SuggestionsDTO } from './interfaces';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "aril/ui/lib";
|
|
8
9
|
export declare class AutoCompleteComponent extends BaseInputComponent implements AfterViewInit {
|
|
9
10
|
private http;
|
|
11
|
+
private translocoService;
|
|
10
12
|
autoCompleteRef: AutoComplete;
|
|
11
13
|
items: import("@angular/core").InputSignal<SuggestionsDTO[], SuggestionsDTO[]>;
|
|
12
14
|
referenceAsset: import("@angular/core").InputSignal<ReferenceAsset | null, ReferenceAsset | null>;
|
|
@@ -18,7 +20,7 @@ export declare class AutoCompleteComponent extends BaseInputComponent implements
|
|
|
18
20
|
optionLabel: import("@angular/core").InputSignal<keyof SuggestionsDTO, keyof SuggestionsDTO>;
|
|
19
21
|
selectionItems: SuggestionsDTO[];
|
|
20
22
|
filteredSelectionItems: SuggestionsDTO[];
|
|
21
|
-
constructor(http: HttpClient);
|
|
23
|
+
constructor(http: HttpClient, translocoService: TranslocoService);
|
|
22
24
|
ngAfterViewInit(): void;
|
|
23
25
|
getOptionValue(option: any): any;
|
|
24
26
|
search(event: any): void;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
|
2
2
|
import { EventEmitter } from '@angular/core';
|
|
3
|
+
import { TranslocoService } from '@ngneat/transloco';
|
|
3
4
|
import { BaseInputComponent } from 'aril/ui/lib';
|
|
4
5
|
import { SelectBoxItem } from './interface';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "aril/ui/lib";
|
|
7
8
|
export declare class RolePickerComponent extends BaseInputComponent {
|
|
8
9
|
private http;
|
|
10
|
+
private translocoService;
|
|
9
11
|
placeholder: import("@angular/core").InputSignal<string, string>;
|
|
10
12
|
forceSelection: import("@angular/core").InputSignal<boolean, boolean>;
|
|
11
13
|
multiple: import("@angular/core").InputSignal<boolean, boolean>;
|
|
@@ -16,7 +18,7 @@ export declare class RolePickerComponent extends BaseInputComponent {
|
|
|
16
18
|
roleItems: any;
|
|
17
19
|
selectionItems: string[];
|
|
18
20
|
SelectionChanged: EventEmitter<SelectBoxItem>;
|
|
19
|
-
constructor(http: HttpClient);
|
|
21
|
+
constructor(http: HttpClient, translocoService: TranslocoService);
|
|
20
22
|
getRoleItems(): Promise<string[]>;
|
|
21
23
|
completeMethod(event: any): void;
|
|
22
24
|
filterSelection(query: string, selectionItems: string[]): string[];
|