@netgrif/components-core 6.2.1 → 6.3.0-rc.1
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/commons/schema.d.ts +1 -0
- package/esm2020/assets/i18n/de.json +26 -8
- package/esm2020/assets/i18n/en.json +19 -1
- package/esm2020/assets/i18n/sk.json +19 -1
- package/esm2020/commons/schema.mjs +1 -1
- package/esm2020/lib/authentication/models/user.transformer.mjs +2 -2
- package/esm2020/lib/authentication/public-api.mjs +3 -1
- package/esm2020/lib/authorization/permission/access.service.mjs +2 -2
- package/esm2020/lib/authorization/permission/permission.service.mjs +2 -2
- package/esm2020/lib/authorization/role/role-guard.service.mjs +36 -11
- package/esm2020/lib/data-fields/file-field/abstract-file-field.component.mjs +6 -3
- package/esm2020/lib/data-fields/file-list-field/abstract-file-list-field.component.mjs +5 -2
- package/esm2020/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.mjs +3 -2
- package/esm2020/lib/filter/filter.repository.mjs +7 -1
- package/esm2020/lib/impersonation/models/user-impersonate-config-metadata.mjs +2 -0
- package/esm2020/lib/impersonation/models/user-impersonation-constants.mjs +11 -0
- package/esm2020/lib/impersonation/public-api.mjs +9 -0
- package/esm2020/lib/impersonation/services/impersonation-user-list.service.mjs +19 -0
- package/esm2020/lib/impersonation/services/impersonation-user-resource.service.mjs +25 -0
- package/esm2020/lib/impersonation/services/impersonation-user-select.service.mjs +85 -0
- package/esm2020/lib/impersonation/services/impersonation.service.mjs +90 -0
- package/esm2020/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.mjs +25 -9
- package/esm2020/lib/navigation/navigation-drawer/abstract-navigation-drawer.component.mjs +2 -2
- package/esm2020/lib/navigation/quick-panel/components/abstract-quick-panel.component.mjs +1 -1
- package/esm2020/lib/resources/engine-endpoint/task-resource.service.mjs +3 -3
- package/esm2020/lib/resources/interface/user-resource.mjs +1 -1
- package/esm2020/lib/search/models/category/case/case-dataset.mjs +7 -4
- package/esm2020/lib/search/search-operand-input-component/abstract-search-operand-input.component.mjs +3 -3
- package/esm2020/lib/side-menu/content-components/injection-tokens.mjs +3 -1
- package/esm2020/lib/side-menu/content-components/new-case/abstract-new-case.component.mjs +22 -11
- package/esm2020/lib/side-menu/content-components/public-api.mjs +3 -1
- package/esm2020/lib/side-menu/content-components/user-impersonate/abstract-user-impersonate.component.mjs +37 -0
- package/esm2020/lib/side-menu/content-components/user-impersonate/model/user-impersonate-injection-data.mjs +2 -0
- package/esm2020/lib/side-menu/models/side-menu-size.mjs +2 -1
- package/esm2020/lib/task-content/field-component-resolver/abstract-field-component-resolver.component.mjs +2 -3
- package/esm2020/lib/user/models/user.mjs +15 -2
- package/esm2020/lib/user/services/user-comparator.service.mjs +4 -3
- package/esm2020/lib/user/services/user.service.mjs +17 -12
- package/esm2020/lib/utility/tests/test-config.mjs +6 -1
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/netgrif-components-core.mjs +449 -72
- package/fesm2015/netgrif-components-core.mjs.map +1 -1
- package/fesm2020/netgrif-components-core.mjs +445 -72
- package/fesm2020/netgrif-components-core.mjs.map +1 -1
- package/lib/authentication/public-api.d.ts +2 -0
- package/lib/authorization/role/role-guard.service.d.ts +2 -1
- package/lib/data-fields/number-field/currency-number-field/abstract-currency-number-field.component.d.ts +1 -0
- package/lib/filter/filter.repository.d.ts +4 -0
- package/lib/impersonation/models/user-impersonate-config-metadata.d.ts +3 -0
- package/lib/impersonation/models/user-impersonation-constants.d.ts +9 -0
- package/lib/impersonation/public-api.d.ts +6 -0
- package/lib/impersonation/services/impersonation-user-list.service.d.ts +12 -0
- package/lib/impersonation/services/impersonation-user-resource.service.d.ts +17 -0
- package/lib/impersonation/services/impersonation-user-select.service.d.ts +25 -0
- package/lib/impersonation/services/impersonation.service.d.ts +37 -0
- package/lib/navigation/navigation-double-drawer/abstract-navigation-double-drawer.d.ts +10 -3
- package/lib/navigation/quick-panel/components/abstract-quick-panel.component.d.ts +1 -1
- package/lib/resources/engine-endpoint/task-resource.service.d.ts +2 -1
- package/lib/resources/interface/user-resource.d.ts +1 -0
- package/lib/search/search-operand-input-component/abstract-search-operand-input.component.d.ts +1 -1
- package/lib/side-menu/content-components/injection-tokens.d.ts +2 -0
- package/lib/side-menu/content-components/public-api.d.ts +2 -0
- package/lib/side-menu/content-components/user-impersonate/abstract-user-impersonate.component.d.ts +14 -0
- package/lib/side-menu/content-components/user-impersonate/model/user-impersonate-injection-data.d.ts +8 -0
- package/lib/side-menu/models/side-menu-size.d.ts +2 -1
- package/lib/user/models/user.d.ts +10 -1
- package/lib/user/services/user-comparator.service.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/assets/i18n/de.json +26 -8
- package/src/assets/i18n/en.json +19 -1
- package/src/assets/i18n/sk.json +19 -1
|
@@ -1152,6 +1152,17 @@ var publicView$2 = {
|
|
|
1152
1152
|
var dynamicNavigation$2 = {
|
|
1153
1153
|
couldNotResolveView: "An error has occurred during the view resolution process. The view could not be displayed"
|
|
1154
1154
|
};
|
|
1155
|
+
var impersonation$2 = {
|
|
1156
|
+
user: {
|
|
1157
|
+
successfullyRepresented: "User successfully represented",
|
|
1158
|
+
currentlyAlreadyRepresented: "User is already being represented by someone else",
|
|
1159
|
+
currentlyLogged: "User is currently logged in"
|
|
1160
|
+
},
|
|
1161
|
+
action: {
|
|
1162
|
+
failed: "Action failed",
|
|
1163
|
+
deactivated: "Representation was successfully deactivated"
|
|
1164
|
+
}
|
|
1165
|
+
};
|
|
1155
1166
|
var en = {
|
|
1156
1167
|
toolbar: toolbar$2,
|
|
1157
1168
|
tasks: tasks$2,
|
|
@@ -1187,7 +1198,8 @@ var en = {
|
|
|
1187
1198
|
errThird: "Color is required.",
|
|
1188
1199
|
noNets: "No allowed Nets",
|
|
1189
1200
|
createCase: "Successful create new case",
|
|
1190
|
-
defaultCaseName: "with default case name"
|
|
1201
|
+
defaultCaseName: "with default case name",
|
|
1202
|
+
createCaseError: "A new case was created, but an error occurred while executing actions"
|
|
1191
1203
|
},
|
|
1192
1204
|
user: {
|
|
1193
1205
|
assign: "User Assign",
|
|
@@ -1208,6 +1220,12 @@ var en = {
|
|
|
1208
1220
|
"option-selector": {
|
|
1209
1221
|
select: "Select",
|
|
1210
1222
|
"choose-one-option": "Choose one of the provided options"
|
|
1223
|
+
},
|
|
1224
|
+
impersonation: {
|
|
1225
|
+
title: "Impersonate user",
|
|
1226
|
+
submit: "Impersonate",
|
|
1227
|
+
cease: "Cancel impersonation",
|
|
1228
|
+
impersonating: "impersonating"
|
|
1211
1229
|
}
|
|
1212
1230
|
},
|
|
1213
1231
|
search: search$2,
|
|
@@ -1228,7 +1246,8 @@ var en = {
|
|
|
1228
1246
|
workflow: workflow$2,
|
|
1229
1247
|
legal: legal$2,
|
|
1230
1248
|
publicView: publicView$2,
|
|
1231
|
-
dynamicNavigation: dynamicNavigation$2
|
|
1249
|
+
dynamicNavigation: dynamicNavigation$2,
|
|
1250
|
+
impersonation: impersonation$2
|
|
1232
1251
|
};
|
|
1233
1252
|
|
|
1234
1253
|
var toolbar$1 = {
|
|
@@ -1630,6 +1649,17 @@ var publicView$1 = {
|
|
|
1630
1649
|
var dynamicNavigation$1 = {
|
|
1631
1650
|
couldNotResolveView: "Počas načítania zobrazenia sa vyskytla chyba. Zobrazenie nie je možné zobraziť"
|
|
1632
1651
|
};
|
|
1652
|
+
var impersonation$1 = {
|
|
1653
|
+
user: {
|
|
1654
|
+
successfullyRepresented: "Používateľ bol úspešne zastúpený",
|
|
1655
|
+
currentlyAlreadyRepresented: "Používateľ je momentálne zastupovaný",
|
|
1656
|
+
currentlyLogged: "Používateľ je momentálne prihlásený"
|
|
1657
|
+
},
|
|
1658
|
+
action: {
|
|
1659
|
+
failed: "Akciu sa nepodarilo vykonať",
|
|
1660
|
+
deactivated: "Zastupovanie bolo úspešne deaktivované"
|
|
1661
|
+
}
|
|
1662
|
+
};
|
|
1633
1663
|
var sk = {
|
|
1634
1664
|
toolbar: toolbar$1,
|
|
1635
1665
|
tasks: tasks$1,
|
|
@@ -1665,7 +1695,8 @@ var sk = {
|
|
|
1665
1695
|
errThird: "Farba je povinné pole.",
|
|
1666
1696
|
noNets: "Žiadne povolené siete",
|
|
1667
1697
|
createCase: "Úspešne vytvorený nový prípad",
|
|
1668
|
-
defaultCaseName: "s prednastaveným názvom prípadu"
|
|
1698
|
+
defaultCaseName: "s prednastaveným názvom prípadu",
|
|
1699
|
+
createCaseError: "Nový prípad vytvorený, nastala však chyba pri vykonávaní akcií"
|
|
1669
1700
|
},
|
|
1670
1701
|
user: {
|
|
1671
1702
|
assign: "Priradiť používateľa",
|
|
@@ -1686,6 +1717,12 @@ var sk = {
|
|
|
1686
1717
|
"option-selector": {
|
|
1687
1718
|
select: "Zvoliť",
|
|
1688
1719
|
"choose-one-option": "Vyberte jednu z možností"
|
|
1720
|
+
},
|
|
1721
|
+
impersonation: {
|
|
1722
|
+
title: "Zastúpenie používateľa",
|
|
1723
|
+
submit: "Zastúpiť",
|
|
1724
|
+
cease: "Zrušiť zastúpenie",
|
|
1725
|
+
impersonating: "v zastúpení"
|
|
1689
1726
|
}
|
|
1690
1727
|
},
|
|
1691
1728
|
search: search$1,
|
|
@@ -1706,7 +1743,8 @@ var sk = {
|
|
|
1706
1743
|
workflow: workflow$1,
|
|
1707
1744
|
legal: legal$1,
|
|
1708
1745
|
publicView: publicView$1,
|
|
1709
|
-
dynamicNavigation: dynamicNavigation$1
|
|
1746
|
+
dynamicNavigation: dynamicNavigation$1,
|
|
1747
|
+
impersonation: impersonation$1
|
|
1710
1748
|
};
|
|
1711
1749
|
|
|
1712
1750
|
var toolbar = {
|
|
@@ -1943,8 +1981,8 @@ var forms = {
|
|
|
1943
1981
|
enterEmail: "Ihre E-Mail Adresse eingeben"
|
|
1944
1982
|
},
|
|
1945
1983
|
login: {
|
|
1946
|
-
length: "Das
|
|
1947
|
-
login: "
|
|
1984
|
+
length: "Das Benutzername muss mindestens 4 Zeichen enthalten",
|
|
1985
|
+
login: "Benutzername",
|
|
1948
1986
|
wrongCredentials: "Falsche Anmeldeinformationen!",
|
|
1949
1987
|
loginButton: "Anmelden",
|
|
1950
1988
|
reset: "Kennwort wiederherstellen",
|
|
@@ -2108,6 +2146,17 @@ var publicView = {
|
|
|
2108
2146
|
var dynamicNavigation = {
|
|
2109
2147
|
couldNotResolveView: "Ein Fehler ist aufgetreten während des Ansichtauflösungsprocess. Der Ansicht kann nicht angezeigt werden"
|
|
2110
2148
|
};
|
|
2149
|
+
var impersonation = {
|
|
2150
|
+
user: {
|
|
2151
|
+
successfullyRepresented: "Benutzer wird jetzt vertreten",
|
|
2152
|
+
currentlyAlreadyRepresented: "Für den Benutzer existiert bereits eine Vertretung",
|
|
2153
|
+
currentlyLogged: "Benutzer ist bereits angemeldet"
|
|
2154
|
+
},
|
|
2155
|
+
action: {
|
|
2156
|
+
failed: "Aktion ist fehlgeschlagen",
|
|
2157
|
+
deactivated: "Vertretung wurde erfolgreich deaktiviert"
|
|
2158
|
+
}
|
|
2159
|
+
};
|
|
2111
2160
|
var de = {
|
|
2112
2161
|
toolbar: toolbar,
|
|
2113
2162
|
tasks: tasks,
|
|
@@ -2143,14 +2192,15 @@ var de = {
|
|
|
2143
2192
|
errThird: "Sie müssen eine Farbe auswählen.",
|
|
2144
2193
|
noNets: "Es gibt keine erlaubte Netze",
|
|
2145
2194
|
createCase: "Neuen Fall würde erfolgreich erzeugt",
|
|
2146
|
-
defaultCaseName: "mit einem Standardfallnamen"
|
|
2195
|
+
defaultCaseName: "mit einem Standardfallnamen",
|
|
2196
|
+
createCaseError: "Neuer Fall wurde erstellt, aber beim Ausführen von Aktionen ist ein Fehler aufgetreten"
|
|
2147
2197
|
},
|
|
2148
2198
|
user: {
|
|
2149
|
-
assign: "
|
|
2150
|
-
choose: "
|
|
2151
|
-
noUser: "Es gibt keine
|
|
2152
|
-
err: "Beim laden der
|
|
2153
|
-
showcase: "
|
|
2199
|
+
assign: "Benutzer zuweisen",
|
|
2200
|
+
choose: "Benutzer auswählen",
|
|
2201
|
+
noUser: "Es gibt keine Benutzer",
|
|
2202
|
+
err: "Beim laden der Benutzer ist eine Fehler aufgetreten",
|
|
2203
|
+
showcase: "Die Benutzeransicht ist nicht gesetzt!"
|
|
2154
2204
|
},
|
|
2155
2205
|
ldapGroup: {
|
|
2156
2206
|
choose: "LDAP-Gruppe suchen",
|
|
@@ -2164,6 +2214,12 @@ var de = {
|
|
|
2164
2214
|
"option-selector": {
|
|
2165
2215
|
select: "Auswählen",
|
|
2166
2216
|
"choose-one-option": "Wählen Sie eine Option aus"
|
|
2217
|
+
},
|
|
2218
|
+
impersonation: {
|
|
2219
|
+
title: "Benutzer vertreten",
|
|
2220
|
+
submit: "Vertreten",
|
|
2221
|
+
cease: "Vertretung abbrechen",
|
|
2222
|
+
impersonating: "in Vertretung als"
|
|
2167
2223
|
}
|
|
2168
2224
|
},
|
|
2169
2225
|
search: search,
|
|
@@ -2184,14 +2240,15 @@ var de = {
|
|
|
2184
2240
|
workflow: workflow,
|
|
2185
2241
|
legal: legal,
|
|
2186
2242
|
publicView: publicView,
|
|
2187
|
-
dynamicNavigation: dynamicNavigation
|
|
2243
|
+
dynamicNavigation: dynamicNavigation,
|
|
2244
|
+
impersonation: impersonation
|
|
2188
2245
|
};
|
|
2189
2246
|
|
|
2190
2247
|
/**
|
|
2191
2248
|
* The user object that is used by the frontend in its logic.
|
|
2192
2249
|
*/
|
|
2193
2250
|
class User {
|
|
2194
|
-
constructor(id, email, firstName, lastName, authorities, roles, groups, nextGroups) {
|
|
2251
|
+
constructor(id, email, firstName, lastName, authorities, roles, groups, nextGroups, impersonated) {
|
|
2195
2252
|
this.id = id;
|
|
2196
2253
|
this.email = email;
|
|
2197
2254
|
this.firstName = firstName;
|
|
@@ -2200,6 +2257,7 @@ class User {
|
|
|
2200
2257
|
this.roles = roles;
|
|
2201
2258
|
this.groups = groups;
|
|
2202
2259
|
this.nextGroups = nextGroups;
|
|
2260
|
+
this.impersonated = impersonated;
|
|
2203
2261
|
}
|
|
2204
2262
|
get fullName() {
|
|
2205
2263
|
return this.firstName + ' ' + this.lastName;
|
|
@@ -2222,6 +2280,18 @@ class User {
|
|
|
2222
2280
|
isEmpty() {
|
|
2223
2281
|
return this.id === '';
|
|
2224
2282
|
}
|
|
2283
|
+
/**
|
|
2284
|
+
* @returns self if no impersonated user is present, or impersonated user otherwise
|
|
2285
|
+
*/
|
|
2286
|
+
getSelfOrImpersonated() {
|
|
2287
|
+
return this.isImpersonating() ? this.impersonated : this;
|
|
2288
|
+
}
|
|
2289
|
+
/**
|
|
2290
|
+
* @returns true if user is impersonating another user
|
|
2291
|
+
*/
|
|
2292
|
+
isImpersonating() {
|
|
2293
|
+
return !!this.impersonated;
|
|
2294
|
+
}
|
|
2225
2295
|
}
|
|
2226
2296
|
|
|
2227
2297
|
class AuthenticationMethodService {
|
|
@@ -2404,7 +2474,7 @@ class UserTransformer {
|
|
|
2404
2474
|
}
|
|
2405
2475
|
transform(user) {
|
|
2406
2476
|
const groups = []; // TODO groups parsing
|
|
2407
|
-
return new User(user.id, user.email, user.name, user.surname, this.transformAuthorities(user.authorities), user.processRoles, groups, user.nextGroups);
|
|
2477
|
+
return new User(user.id, user.email, user.name, user.surname, this.transformAuthorities(user.authorities), user.processRoles, groups, user.nextGroups, user.impersonated ? this.transform(user.impersonated) : undefined);
|
|
2408
2478
|
}
|
|
2409
2479
|
}
|
|
2410
2480
|
UserTransformer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: UserTransformer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
@@ -3009,31 +3079,34 @@ class UserService {
|
|
|
3009
3079
|
* If calculated intersection isn't empty returns true, otherwise false.
|
|
3010
3080
|
*/
|
|
3011
3081
|
hasAuthority(authority) {
|
|
3012
|
-
|
|
3082
|
+
const user = this._user.getSelfOrImpersonated();
|
|
3083
|
+
if (!authority || !user.authorities) {
|
|
3013
3084
|
return false;
|
|
3014
3085
|
}
|
|
3015
3086
|
if (authority instanceof Array) {
|
|
3016
|
-
return authority.some(a =>
|
|
3087
|
+
return authority.some(a => user.authorities.some(u => u === a));
|
|
3017
3088
|
}
|
|
3018
3089
|
else {
|
|
3019
|
-
return
|
|
3090
|
+
return user.authorities.some(a => a === authority);
|
|
3020
3091
|
}
|
|
3021
3092
|
}
|
|
3022
3093
|
hasRole(role) {
|
|
3023
|
-
|
|
3094
|
+
const user = this._user.getSelfOrImpersonated();
|
|
3095
|
+
if (!role || !user.roles) {
|
|
3024
3096
|
return false;
|
|
3025
3097
|
}
|
|
3026
|
-
return
|
|
3098
|
+
return user.roles.some(r => r === role);
|
|
3027
3099
|
}
|
|
3028
3100
|
/**
|
|
3029
3101
|
* Checks whether the user has role with a specific stringId
|
|
3030
3102
|
* @param roleStringId ID of the role we want to check
|
|
3031
3103
|
*/
|
|
3032
3104
|
hasRoleById(roleStringId) {
|
|
3033
|
-
|
|
3105
|
+
const user = this._user.getSelfOrImpersonated();
|
|
3106
|
+
if (!roleStringId || !user.roles) {
|
|
3034
3107
|
return false;
|
|
3035
3108
|
}
|
|
3036
|
-
return
|
|
3109
|
+
return user.roles.some(r => r.stringId === roleStringId);
|
|
3037
3110
|
}
|
|
3038
3111
|
/**
|
|
3039
3112
|
* Checks whether the user has role with the specified identifier in a process with the specified identifier (any version)
|
|
@@ -3041,10 +3114,11 @@ class UserService {
|
|
|
3041
3114
|
* @param netIdentifier identifier (import ID) of the process the role is defined in
|
|
3042
3115
|
*/
|
|
3043
3116
|
hasRoleByIdentifier(roleIdentifier, netIdentifier) {
|
|
3044
|
-
|
|
3117
|
+
const user = this._user.getSelfOrImpersonated();
|
|
3118
|
+
if (!roleIdentifier || !netIdentifier || !user.roles) {
|
|
3045
3119
|
return false;
|
|
3046
3120
|
}
|
|
3047
|
-
return
|
|
3121
|
+
return user.roles.some(r => r.netImportId === netIdentifier && r.importId === roleIdentifier);
|
|
3048
3122
|
}
|
|
3049
3123
|
/**
|
|
3050
3124
|
* Checks whether the user has role with the specified name in a process with the specified identifier (any version)
|
|
@@ -3052,10 +3126,11 @@ class UserService {
|
|
|
3052
3126
|
* @param netIdentifier identifier (import ID) of the process the role is defined in
|
|
3053
3127
|
*/
|
|
3054
3128
|
hasRoleByName(roleName, netIdentifier) {
|
|
3055
|
-
|
|
3129
|
+
const user = this._user.getSelfOrImpersonated();
|
|
3130
|
+
if (!roleName || !netIdentifier || !user.roles) {
|
|
3056
3131
|
return false;
|
|
3057
3132
|
}
|
|
3058
|
-
return
|
|
3133
|
+
return user.roles.some(r => r.netImportId === netIdentifier && r.name === roleName);
|
|
3059
3134
|
}
|
|
3060
3135
|
login(credentials) {
|
|
3061
3136
|
this._loginCalled = true;
|
|
@@ -6284,9 +6359,9 @@ class TaskResourceService extends AbstractResourceService {
|
|
|
6284
6359
|
* Delete file from the task
|
|
6285
6360
|
* DELETE
|
|
6286
6361
|
*/
|
|
6287
|
-
deleteFile(taskId, fieldId, name) {
|
|
6362
|
+
deleteFile(taskId, fieldId, name, param) {
|
|
6288
6363
|
const url = !!name ? 'task/' + taskId + '/file/' + fieldId + '/' + name : 'task/' + taskId + '/file/' + fieldId;
|
|
6289
|
-
return this._resourceProvider.delete$(url, this.SERVER_URL).pipe(map(r => this.changeType(r, undefined)));
|
|
6364
|
+
return this._resourceProvider.delete$(url, this.SERVER_URL, param).pipe(map(r => this.changeType(r, undefined)));
|
|
6290
6365
|
}
|
|
6291
6366
|
/**
|
|
6292
6367
|
* Download task file preview for field value
|
|
@@ -6613,7 +6688,9 @@ class AbstractFileFieldComponent extends AbstractDataFieldComponent {
|
|
|
6613
6688
|
this._log.error('File cannot be deleted. No task is set to the field.');
|
|
6614
6689
|
return;
|
|
6615
6690
|
}
|
|
6616
|
-
|
|
6691
|
+
let param = new HttpParams();
|
|
6692
|
+
param = param.set("parentTaskId", this.resolveParentTaskId());
|
|
6693
|
+
this._taskResourceService.deleteFile(this.taskId, this.dataField.stringId, undefined, param).pipe(take(1)).subscribe(response => {
|
|
6617
6694
|
if (response.success) {
|
|
6618
6695
|
const filename = this.dataField.value.name;
|
|
6619
6696
|
this.dataField.value = {};
|
|
@@ -6697,7 +6774,7 @@ class AbstractFileFieldComponent extends AbstractDataFieldComponent {
|
|
|
6697
6774
|
if (!this.checkFileBeforeDownload()) {
|
|
6698
6775
|
return;
|
|
6699
6776
|
}
|
|
6700
|
-
this._taskResourceService.downloadFile(this.
|
|
6777
|
+
this._taskResourceService.downloadFile(this.resolveParentTaskId(), this.dataField.stringId).subscribe(response => {
|
|
6701
6778
|
if (!response.type || response.type !== ProgressType.DOWNLOAD) {
|
|
6702
6779
|
this._log.debug(`File [${this.dataField.stringId}] ${this.dataField.value.name} was successfully downloaded`);
|
|
6703
6780
|
this.initDownloadFile(response);
|
|
@@ -7004,7 +7081,9 @@ class AbstractFileListFieldComponent extends AbstractDataFieldComponent {
|
|
|
7004
7081
|
this._log.error('File cannot be deleted. No task is set to the field.');
|
|
7005
7082
|
return;
|
|
7006
7083
|
}
|
|
7007
|
-
|
|
7084
|
+
let param = new HttpParams();
|
|
7085
|
+
param = param.set("parentTaskId", this.resolveParentTaskId());
|
|
7086
|
+
this._taskResourceService.deleteFile(this.taskId, this.dataField.stringId, fileName, param).pipe(take(1)).subscribe((response) => {
|
|
7008
7087
|
if (response.success) {
|
|
7009
7088
|
const changedFieldsMap = this._eventService.parseChangedFieldsFromOutcomeTree(response.outcome);
|
|
7010
7089
|
this.dataField.emitChangedFields(changedFieldsMap);
|
|
@@ -7300,6 +7379,7 @@ class AbstractCurrencyNumberFieldComponent extends AbstractNumberErrorsComponent
|
|
|
7300
7379
|
this._currencyPipe = _currencyPipe;
|
|
7301
7380
|
this.NUMBER_TYPE = 'number';
|
|
7302
7381
|
this.TEXT_TYPE = 'text';
|
|
7382
|
+
this.WHITESPACE = ' ';
|
|
7303
7383
|
}
|
|
7304
7384
|
ngAfterViewInit() {
|
|
7305
7385
|
this.fieldType = this.TEXT_TYPE;
|
|
@@ -7307,7 +7387,7 @@ class AbstractCurrencyNumberFieldComponent extends AbstractNumberErrorsComponent
|
|
|
7307
7387
|
this.numberField.valueChanges().subscribe(value => {
|
|
7308
7388
|
if (value !== undefined) {
|
|
7309
7389
|
if (this.fieldType === this.TEXT_TYPE) {
|
|
7310
|
-
this.transformedValue = this.transformCurrency(value.toString());
|
|
7390
|
+
this.transformedValue = this.transformCurrency(value.toString()) + this.WHITESPACE;
|
|
7311
7391
|
}
|
|
7312
7392
|
}
|
|
7313
7393
|
else {
|
|
@@ -7602,6 +7682,7 @@ var SideMenuSize;
|
|
|
7602
7682
|
SideMenuSize["SMALL"] = "side-menu-width-small";
|
|
7603
7683
|
SideMenuSize["MEDIUM"] = "side-menu-width-medium";
|
|
7604
7684
|
SideMenuSize["LARGE"] = "side-menu-width-large";
|
|
7685
|
+
SideMenuSize["XL"] = "side-menu-width-xl";
|
|
7605
7686
|
})(SideMenuSize || (SideMenuSize = {}));
|
|
7606
7687
|
|
|
7607
7688
|
const NAE_SIDE_MENU_CONTROL = new InjectionToken('NaeSideMenuControl');
|
|
@@ -11084,14 +11165,17 @@ class CaseDataset extends Category {
|
|
|
11084
11165
|
return resolver.getIndex(datafield.fieldId, SearchIndex.BOOLEAN);
|
|
11085
11166
|
case 'file':
|
|
11086
11167
|
case 'fileList':
|
|
11087
|
-
return resolver.getIndex(datafield.fieldId, SearchIndex.FILE_NAME, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)
|
|
11168
|
+
return resolver.getIndex(datafield.fieldId, SearchIndex.FILE_NAME, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)
|
|
11169
|
+
|| this.isSelectedOperator(IsNull));
|
|
11088
11170
|
case 'user':
|
|
11089
11171
|
case 'userList':
|
|
11090
11172
|
return resolver.getIndex(datafield.fieldId, SearchIndex.USER_ID);
|
|
11091
11173
|
case 'i18n':
|
|
11092
|
-
return resolver.getIndex(datafield.fieldId, SearchIndex.TEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)
|
|
11174
|
+
return resolver.getIndex(datafield.fieldId, SearchIndex.TEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)
|
|
11175
|
+
|| this.isSelectedOperator(IsNull));
|
|
11093
11176
|
default:
|
|
11094
|
-
return resolver.getIndex(datafield.fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)
|
|
11177
|
+
return resolver.getIndex(datafield.fieldId, SearchIndex.FULLTEXT, this.isSelectedOperator(Equals) || this.isSelectedOperator(NotEquals) || this.isSelectedOperator(Substring)
|
|
11178
|
+
|| this.isSelectedOperator(IsNull));
|
|
11095
11179
|
}
|
|
11096
11180
|
}
|
|
11097
11181
|
get inputPlaceholder() {
|
|
@@ -13993,8 +14077,9 @@ class UserComparatorService {
|
|
|
13993
14077
|
constructor(_userService) {
|
|
13994
14078
|
this._userService = _userService;
|
|
13995
14079
|
}
|
|
13996
|
-
compareUsers(user) {
|
|
13997
|
-
|
|
14080
|
+
compareUsers(user, acceptImpersonator = true) {
|
|
14081
|
+
const loggedUser = acceptImpersonator ? this._userService.user.getSelfOrImpersonated() : this._userService.user;
|
|
14082
|
+
return user.email === loggedUser.email ||
|
|
13998
14083
|
user.email.includes('anonymous') && this._userService.user.email.includes('anonymous');
|
|
13999
14084
|
}
|
|
14000
14085
|
}
|
|
@@ -14877,6 +14962,8 @@ const NAE_NEW_CASE_COMPONENT = new InjectionToken('NaeNewCaseComponent');
|
|
|
14877
14962
|
const NAE_OPTION_SELECTOR_COMPONENT = new InjectionToken('NaeOptionSelectorComponent');
|
|
14878
14963
|
const NAE_SAVE_FILTER_COMPONENT = new InjectionToken('NaeSaveFilterComponent');
|
|
14879
14964
|
const NAE_LOAD_FILTER_COMPONENT = new InjectionToken('NaeLoadFilterComponent');
|
|
14965
|
+
const NAE_USER_IMPERSONATE_COMPONENT = new InjectionToken('NaeUserImpersonateComponent');
|
|
14966
|
+
const NAE_ADMIN_IMPERSONATE_COMPONENT = new InjectionToken('NaeAdminImpersonateComponent');
|
|
14880
14967
|
|
|
14881
14968
|
/**
|
|
14882
14969
|
* Holds the information that accompanies a page load request. These information are held outside of the
|
|
@@ -15159,7 +15246,7 @@ class PermissionService {
|
|
|
15159
15246
|
checkUserPerms(users, permission) {
|
|
15160
15247
|
let userPermValue;
|
|
15161
15248
|
if (!!users) {
|
|
15162
|
-
const loggedUserId = this._userService.user.id;
|
|
15249
|
+
const loggedUserId = this._userService.user.getSelfOrImpersonated().id;
|
|
15163
15250
|
Object.keys(users).forEach(user => {
|
|
15164
15251
|
if (user === loggedUserId && users[user][permission] !== undefined) {
|
|
15165
15252
|
userPermValue = userPermValue === undefined ?
|
|
@@ -20047,16 +20134,27 @@ class AbstractNewCaseComponent {
|
|
|
20047
20134
|
};
|
|
20048
20135
|
this._caseResourceService.createCase(newCase)
|
|
20049
20136
|
.subscribe((response) => {
|
|
20050
|
-
|
|
20051
|
-
|
|
20052
|
-
|
|
20053
|
-
|
|
20054
|
-
|
|
20055
|
-
|
|
20056
|
-
|
|
20057
|
-
|
|
20058
|
-
|
|
20059
|
-
|
|
20137
|
+
if (!!response.outcome) {
|
|
20138
|
+
this._snackBarService.openSuccessSnackBar(response.outcome.message === undefined
|
|
20139
|
+
? this._translate.instant('side-menu.new-case.createCase') + ' ' + newCase.title
|
|
20140
|
+
: response.outcome.message);
|
|
20141
|
+
this._sideMenuControl.close({
|
|
20142
|
+
opened: false,
|
|
20143
|
+
message: response.outcome.message === undefined
|
|
20144
|
+
? 'Confirm new case setup'
|
|
20145
|
+
: response.outcome.message,
|
|
20146
|
+
data: response.outcome.aCase
|
|
20147
|
+
});
|
|
20148
|
+
}
|
|
20149
|
+
else if (!!response.error) {
|
|
20150
|
+
this._snackBarService.openWarningSnackBar(this._translate.instant('side-menu.new-case.createCaseError') + ' ' + newCase.title);
|
|
20151
|
+
this._sideMenuControl.close({
|
|
20152
|
+
opened: false,
|
|
20153
|
+
message: response.error === undefined
|
|
20154
|
+
? 'Confirm new case setup'
|
|
20155
|
+
: response.error
|
|
20156
|
+
});
|
|
20157
|
+
}
|
|
20060
20158
|
}, error => this._snackBarService.openErrorSnackBar(error.message ? error.message : error));
|
|
20061
20159
|
}
|
|
20062
20160
|
}
|
|
@@ -20534,6 +20632,12 @@ class FilterRepository {
|
|
|
20534
20632
|
});
|
|
20535
20633
|
return result;
|
|
20536
20634
|
}
|
|
20635
|
+
/**
|
|
20636
|
+
* Removes all stored filters from the repository
|
|
20637
|
+
*/
|
|
20638
|
+
removeAllFilters() {
|
|
20639
|
+
this._filters = new Map();
|
|
20640
|
+
}
|
|
20537
20641
|
}
|
|
20538
20642
|
FilterRepository.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FilterRepository, deps: [{ token: ConfigurationService }, { token: LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
20539
20643
|
FilterRepository.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FilterRepository, providedIn: 'root' });
|
|
@@ -21361,6 +21465,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
21361
21465
|
args: [NAE_SIDE_MENU_CONTROL]
|
|
21362
21466
|
}] }, { type: LoggerService }, { type: CaseViewService }]; } });
|
|
21363
21467
|
|
|
21468
|
+
class AbstractUserImpersonateComponent extends AbstractCaseViewComponent {
|
|
21469
|
+
constructor(_sideMenuControl, caseViewService) {
|
|
21470
|
+
super(caseViewService);
|
|
21471
|
+
this._sideMenuControl = _sideMenuControl;
|
|
21472
|
+
if (this._sideMenuControl.data) {
|
|
21473
|
+
this._injectedData = this._sideMenuControl.data;
|
|
21474
|
+
}
|
|
21475
|
+
}
|
|
21476
|
+
handleCaseClick(clickedCase) {
|
|
21477
|
+
this._sideMenuControl.close({
|
|
21478
|
+
opened: false,
|
|
21479
|
+
message: 'User selected',
|
|
21480
|
+
data: {
|
|
21481
|
+
stringId: clickedCase.stringId
|
|
21482
|
+
}
|
|
21483
|
+
});
|
|
21484
|
+
}
|
|
21485
|
+
}
|
|
21486
|
+
AbstractUserImpersonateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractUserImpersonateComponent, deps: [{ token: NAE_SIDE_MENU_CONTROL }, { token: CaseViewService }], target: i0.ɵɵFactoryTarget.Component });
|
|
21487
|
+
AbstractUserImpersonateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractUserImpersonateComponent, selector: "ncc-abstract-user-impersonate", usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
21488
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractUserImpersonateComponent, decorators: [{
|
|
21489
|
+
type: Component,
|
|
21490
|
+
args: [{
|
|
21491
|
+
selector: 'ncc-abstract-user-impersonate',
|
|
21492
|
+
template: ''
|
|
21493
|
+
}]
|
|
21494
|
+
}], ctorParameters: function () { return [{ type: SideMenuControl, decorators: [{
|
|
21495
|
+
type: Inject,
|
|
21496
|
+
args: [NAE_SIDE_MENU_CONTROL]
|
|
21497
|
+
}] }, { type: CaseViewService }]; } });
|
|
21498
|
+
|
|
21364
21499
|
/* COMPONENTS */
|
|
21365
21500
|
|
|
21366
21501
|
class AbstractSideMenuContainerComponent {
|
|
@@ -23410,16 +23545,35 @@ class RoleGuardService {
|
|
|
23410
23545
|
return this.canAccessView(view, state.url.toString());
|
|
23411
23546
|
}
|
|
23412
23547
|
canAccessView(view, url) {
|
|
23413
|
-
if (typeof view.access !== 'string' && view.access.hasOwnProperty('role')) {
|
|
23414
|
-
|
|
23415
|
-
|
|
23416
|
-
|
|
23417
|
-
|
|
23548
|
+
if (typeof view.access !== 'string' && (view.access.hasOwnProperty('role') || view.access.hasOwnProperty('bannedRole'))) {
|
|
23549
|
+
if (view.access.hasOwnProperty('role') && view.access.hasOwnProperty('bannedRole')) {
|
|
23550
|
+
const bannedRoles = this.parseRoleConstraints(view.access.bannedRole, url);
|
|
23551
|
+
const allowedRoles = this.parseRoleConstraints(view.access.role, url);
|
|
23552
|
+
if (bannedRoles.some(role => this.decideAccessByRole(role))) {
|
|
23553
|
+
return false;
|
|
23418
23554
|
}
|
|
23419
|
-
|
|
23420
|
-
|
|
23555
|
+
if (allowedRoles.length === 0) {
|
|
23556
|
+
this._log.warn(`View at '${url}' defines role access constraint with an empty array!`
|
|
23557
|
+
+ ` No users will be allowed to enter this view!`);
|
|
23421
23558
|
}
|
|
23422
|
-
|
|
23559
|
+
return allowedRoles.some(role => this.decideAccessByRole(role)); // user was not denied access by a banned role, they need at least one allowed role
|
|
23560
|
+
}
|
|
23561
|
+
if (view.access.hasOwnProperty('bannedRole')) {
|
|
23562
|
+
const bannedRoles = this.parseRoleConstraints(view.access.bannedRole, url);
|
|
23563
|
+
return !bannedRoles.some(constraint => {
|
|
23564
|
+
return this.decideAccessByRole(constraint);
|
|
23565
|
+
});
|
|
23566
|
+
}
|
|
23567
|
+
if (view.access.hasOwnProperty('role')) {
|
|
23568
|
+
const allowedRoles = this.parseRoleConstraints(view.access.role, url);
|
|
23569
|
+
if (allowedRoles.length === 0) {
|
|
23570
|
+
this._log.warn(`View at '${url}' defines role access constraint with an empty array!`
|
|
23571
|
+
+ ` No users will be allowed to enter this view!`);
|
|
23572
|
+
}
|
|
23573
|
+
return allowedRoles.some(constraint => {
|
|
23574
|
+
return this.decideAccessByRole(constraint);
|
|
23575
|
+
});
|
|
23576
|
+
}
|
|
23423
23577
|
}
|
|
23424
23578
|
throw new Error('Role guard is declared for a view with no role guard configuration!'
|
|
23425
23579
|
+ ` Add role guard configuration for view at ${url}, or remove the guard.`);
|
|
@@ -23430,8 +23584,6 @@ class RoleGuardService {
|
|
|
23430
23584
|
}
|
|
23431
23585
|
if (Array.isArray(roleConstrains)) {
|
|
23432
23586
|
if (roleConstrains.length === 0) {
|
|
23433
|
-
this._log.warn(`View at '${viewUrl}' defines role access constraint with an empty array!`
|
|
23434
|
-
+ ` No users will be allowed to enter this view!`);
|
|
23435
23587
|
return [];
|
|
23436
23588
|
}
|
|
23437
23589
|
if (typeof roleConstrains[0] === 'string') {
|
|
@@ -23469,6 +23621,14 @@ class RoleGuardService {
|
|
|
23469
23621
|
return { processIdentifier: constraint.processId, roleIdentifier: constraint.roleId };
|
|
23470
23622
|
});
|
|
23471
23623
|
}
|
|
23624
|
+
decideAccessByRole(constraint) {
|
|
23625
|
+
if (constraint.roleIdentifier) {
|
|
23626
|
+
return this._userService.hasRoleByIdentifier(constraint.roleIdentifier, constraint.processIdentifier);
|
|
23627
|
+
}
|
|
23628
|
+
else {
|
|
23629
|
+
return this._userService.hasRoleByName(constraint.roleName, constraint.processIdentifier);
|
|
23630
|
+
}
|
|
23631
|
+
}
|
|
23472
23632
|
}
|
|
23473
23633
|
RoleGuardService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RoleGuardService, deps: [{ token: RedirectService }, { token: UserService }, { token: ConfigurationService }, { token: LoggerService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23474
23634
|
RoleGuardService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: RoleGuardService, providedIn: AuthenticationModule });
|
|
@@ -23676,7 +23836,7 @@ class AccessService {
|
|
|
23676
23836
|
* @returns whether the user passes the role guard condition for accessing the specified view
|
|
23677
23837
|
*/
|
|
23678
23838
|
passesRoleGuard(view, url) {
|
|
23679
|
-
return !view.access.hasOwnProperty('role') || this._roleGuard.canAccessView(view, url);
|
|
23839
|
+
return (!view.access.hasOwnProperty('role') && !view.access.hasOwnProperty('bannedRole')) || this._roleGuard.canAccessView(view, url);
|
|
23680
23840
|
}
|
|
23681
23841
|
/**
|
|
23682
23842
|
* @param view the view whose access permissions we want to check
|
|
@@ -24144,7 +24304,7 @@ class AbstractNavigationDrawerComponent {
|
|
|
24144
24304
|
this.openedChange = new EventEmitter();
|
|
24145
24305
|
this._fixed = true;
|
|
24146
24306
|
this.opened = true;
|
|
24147
|
-
this.quickPanelItems = ['language', 'settings', 'logout'];
|
|
24307
|
+
this.quickPanelItems = ['language', 'settings', 'logout', 'impersonation'];
|
|
24148
24308
|
if (this.userPreferenceService.drawerWidth !== undefined) {
|
|
24149
24309
|
this.contentWidth = new BehaviorSubject(this.userPreferenceService.drawerWidth);
|
|
24150
24310
|
}
|
|
@@ -24885,6 +25045,168 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
24885
25045
|
}]
|
|
24886
25046
|
}], ctorParameters: function () { return [{ type: LoggerService }, { type: UriResourceService }, { type: CaseResourceService }, { type: ActiveGroupService }]; } });
|
|
24887
25047
|
|
|
25048
|
+
/**
|
|
25049
|
+
* Holds all identifiers of the Impersonation config process in an accessible manner
|
|
25050
|
+
*/
|
|
25051
|
+
var UserImpersonationConstants;
|
|
25052
|
+
(function (UserImpersonationConstants) {
|
|
25053
|
+
UserImpersonationConstants["IMPERSONATION_CONFIG_NET_IDENTIFIER"] = "impersonation_config";
|
|
25054
|
+
UserImpersonationConstants["IMPERSONATION_CONFIG_FIELD_IMPERSONATED"] = "impersonated";
|
|
25055
|
+
UserImpersonationConstants["IMPERSONATION_CONFIG_FIELD_ROLES"] = "impersonated_roles";
|
|
25056
|
+
UserImpersonationConstants["IMPERSONATION_CONFIG_FIELD_AUTHS"] = "impersonated_authorities";
|
|
25057
|
+
})(UserImpersonationConstants || (UserImpersonationConstants = {}));
|
|
25058
|
+
|
|
25059
|
+
class ImpersonationService extends AbstractResourceService {
|
|
25060
|
+
constructor(provider, _router, _configService, _userService, _snackbar, _filter, _log, _translate) {
|
|
25061
|
+
super('impersonation', provider, _configService);
|
|
25062
|
+
this.provider = provider;
|
|
25063
|
+
this._router = _router;
|
|
25064
|
+
this._configService = _configService;
|
|
25065
|
+
this._userService = _userService;
|
|
25066
|
+
this._snackbar = _snackbar;
|
|
25067
|
+
this._filter = _filter;
|
|
25068
|
+
this._log = _log;
|
|
25069
|
+
this._translate = _translate;
|
|
25070
|
+
this._impersonating$ = new Subject();
|
|
25071
|
+
this._sub = this._userService.user$.subscribe(user => this._resolveUserChange(user));
|
|
25072
|
+
}
|
|
25073
|
+
get impersonating$() {
|
|
25074
|
+
return this._impersonating$.asObservable();
|
|
25075
|
+
}
|
|
25076
|
+
impersonateUser(userId) {
|
|
25077
|
+
this.provider.post$('impersonate/user/' + userId, this.SERVER_URL, {}).subscribe((user) => {
|
|
25078
|
+
this._resolveSuccess(user);
|
|
25079
|
+
}, (response => {
|
|
25080
|
+
this._resolveError(response);
|
|
25081
|
+
}));
|
|
25082
|
+
}
|
|
25083
|
+
impersonateByConfig(configId) {
|
|
25084
|
+
this.provider.post$('impersonate/config/' + configId, this.SERVER_URL, {}).subscribe((user) => {
|
|
25085
|
+
this._resolveSuccess(user);
|
|
25086
|
+
}, (response => {
|
|
25087
|
+
this._resolveError(response);
|
|
25088
|
+
}));
|
|
25089
|
+
}
|
|
25090
|
+
cease() {
|
|
25091
|
+
this.provider.post$('impersonate/clear', this.SERVER_URL, {}).subscribe(user => {
|
|
25092
|
+
this._snackbar.openSuccessSnackBar(this._translate.instant('impersonation.action.deactivated'));
|
|
25093
|
+
return this._triggerReload();
|
|
25094
|
+
}, (error => {
|
|
25095
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.action.failed'));
|
|
25096
|
+
}));
|
|
25097
|
+
}
|
|
25098
|
+
_resolveSuccess(user) {
|
|
25099
|
+
this._snackbar.openSuccessSnackBar(this._translate.instant('impersonation.user.successfullyRepresented'));
|
|
25100
|
+
this._triggerReload();
|
|
25101
|
+
}
|
|
25102
|
+
_resolveError(response) {
|
|
25103
|
+
if (response.status === 400) {
|
|
25104
|
+
response.error.alreadyImpersonated ?
|
|
25105
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.user.currentlyAlreadyRepresented')) :
|
|
25106
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.user.currentlyLogged'));
|
|
25107
|
+
}
|
|
25108
|
+
else {
|
|
25109
|
+
this._snackbar.openErrorSnackBar(this._translate.instant('impersonation.action.failed'));
|
|
25110
|
+
}
|
|
25111
|
+
}
|
|
25112
|
+
_triggerReload() {
|
|
25113
|
+
this._userService.reload();
|
|
25114
|
+
}
|
|
25115
|
+
_resolveUserChange(user) {
|
|
25116
|
+
if (this._lastUser && this._lastUser.isImpersonating() != user.isImpersonating()) {
|
|
25117
|
+
this._filter.removeAllFilters();
|
|
25118
|
+
this._impersonating$.next(user.isImpersonating());
|
|
25119
|
+
}
|
|
25120
|
+
this._lastUser = user;
|
|
25121
|
+
}
|
|
25122
|
+
ngOnDestroy() {
|
|
25123
|
+
if (this._sub) {
|
|
25124
|
+
this._sub.unsubscribe();
|
|
25125
|
+
}
|
|
25126
|
+
}
|
|
25127
|
+
}
|
|
25128
|
+
ImpersonationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationService, deps: [{ token: ResourceProvider }, { token: i2$3.Router }, { token: ConfigurationService }, { token: UserService }, { token: SnackBarService }, { token: FilterRepository }, { token: LoggerService }, { token: i1$2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25129
|
+
ImpersonationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationService, providedIn: 'root' });
|
|
25130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationService, decorators: [{
|
|
25131
|
+
type: Injectable,
|
|
25132
|
+
args: [{
|
|
25133
|
+
providedIn: 'root'
|
|
25134
|
+
}]
|
|
25135
|
+
}], ctorParameters: function () { return [{ type: ResourceProvider }, { type: i2$3.Router }, { type: ConfigurationService }, { type: UserService }, { type: SnackBarService }, { type: FilterRepository }, { type: LoggerService }, { type: i1$2.TranslateService }]; } });
|
|
25136
|
+
|
|
25137
|
+
class ImpersonationUserSelectService {
|
|
25138
|
+
constructor(_log, _sideMenuService, _snackBar, _impersonation, _user, _userImpersonateComponent, _adminImpersonateComponent) {
|
|
25139
|
+
this._log = _log;
|
|
25140
|
+
this._sideMenuService = _sideMenuService;
|
|
25141
|
+
this._snackBar = _snackBar;
|
|
25142
|
+
this._impersonation = _impersonation;
|
|
25143
|
+
this._user = _user;
|
|
25144
|
+
this._userImpersonateComponent = _userImpersonateComponent;
|
|
25145
|
+
this._adminImpersonateComponent = _adminImpersonateComponent;
|
|
25146
|
+
}
|
|
25147
|
+
/**
|
|
25148
|
+
* Opens side menu with users who can be impersonated by logged user
|
|
25149
|
+
*/
|
|
25150
|
+
selectImpersonate() {
|
|
25151
|
+
if (this.isAdmin()) {
|
|
25152
|
+
this._sideMenuService.open(this._adminImpersonateComponent, SideMenuSize.LARGE, this.injectedData()).onClose.subscribe(event => {
|
|
25153
|
+
this._log.debug('Impersonable user select :' + event);
|
|
25154
|
+
if (event.data === undefined) {
|
|
25155
|
+
return;
|
|
25156
|
+
}
|
|
25157
|
+
this._impersonation.impersonateUser(event.data._id);
|
|
25158
|
+
});
|
|
25159
|
+
}
|
|
25160
|
+
else {
|
|
25161
|
+
this._sideMenuService.open(this._userImpersonateComponent, SideMenuSize.XL, this.injectedData()).onClose.subscribe(event => {
|
|
25162
|
+
this._log.debug('Impersonable config select :' + event);
|
|
25163
|
+
if (event.data === undefined) {
|
|
25164
|
+
return;
|
|
25165
|
+
}
|
|
25166
|
+
this._impersonation.impersonateByConfig(event.data.stringId);
|
|
25167
|
+
});
|
|
25168
|
+
}
|
|
25169
|
+
}
|
|
25170
|
+
injectedData() {
|
|
25171
|
+
const currentTime = moment();
|
|
25172
|
+
let filterCasesFilter = SimpleFilter.fromCaseQuery({
|
|
25173
|
+
process: {
|
|
25174
|
+
identifier: UserImpersonationConstants.IMPERSONATION_CONFIG_NET_IDENTIFIER
|
|
25175
|
+
},
|
|
25176
|
+
query: `
|
|
25177
|
+
(dataSet.impersonators.keyValue:${this._user.user.id}) AND
|
|
25178
|
+
(dataSet.is_active.booleanValue:true) AND
|
|
25179
|
+
((!(_exists_:dataSet.valid_from.timestampValue)) OR (dataSet.valid_from.timestampValue:<` + currentTime.valueOf() + `)) AND
|
|
25180
|
+
((!(_exists_:dataSet.valid_to.timestampValue)) OR (dataSet.valid_to.timestampValue:>${currentTime.valueOf()}))
|
|
25181
|
+
`
|
|
25182
|
+
});
|
|
25183
|
+
return {
|
|
25184
|
+
filter: filterCasesFilter
|
|
25185
|
+
};
|
|
25186
|
+
}
|
|
25187
|
+
isAdmin() {
|
|
25188
|
+
return this._user.hasAuthority('ROLE_ADMIN');
|
|
25189
|
+
}
|
|
25190
|
+
}
|
|
25191
|
+
ImpersonationUserSelectService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserSelectService, deps: [{ token: LoggerService }, { token: SideMenuService }, { token: SnackBarService }, { token: ImpersonationService }, { token: UserService }, { token: NAE_USER_IMPERSONATE_COMPONENT, optional: true }, { token: NAE_ADMIN_IMPERSONATE_COMPONENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25192
|
+
ImpersonationUserSelectService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserSelectService, providedIn: 'root' });
|
|
25193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserSelectService, decorators: [{
|
|
25194
|
+
type: Injectable,
|
|
25195
|
+
args: [{
|
|
25196
|
+
providedIn: 'root'
|
|
25197
|
+
}]
|
|
25198
|
+
}], ctorParameters: function () { return [{ type: LoggerService }, { type: SideMenuService }, { type: SnackBarService }, { type: ImpersonationService }, { type: UserService }, { type: undefined, decorators: [{
|
|
25199
|
+
type: Optional
|
|
25200
|
+
}, {
|
|
25201
|
+
type: Inject,
|
|
25202
|
+
args: [NAE_USER_IMPERSONATE_COMPONENT]
|
|
25203
|
+
}] }, { type: undefined, decorators: [{
|
|
25204
|
+
type: Optional
|
|
25205
|
+
}, {
|
|
25206
|
+
type: Inject,
|
|
25207
|
+
args: [NAE_ADMIN_IMPERSONATE_COMPONENT]
|
|
25208
|
+
}] }]; } });
|
|
25209
|
+
|
|
24888
25210
|
const FILTER_IDENTIFIERS = [
|
|
24889
25211
|
"preference_filter_item"
|
|
24890
25212
|
];
|
|
@@ -24894,7 +25216,7 @@ const RIGHT_DRAWER_DEFAULT_WIDTH = 240;
|
|
|
24894
25216
|
const RIGHT_DRAWER_DEFAULT_MIN_WIDTH = 180;
|
|
24895
25217
|
const RIGHT_DRAWER_MAX_WIDTH = 460;
|
|
24896
25218
|
class AbstractNavigationDoubleDrawerComponent {
|
|
24897
|
-
constructor(_router, _activatedRoute, _breakpoint, _languageService, _userService, _accessService, _log, _config, _uriService, _dynamicRoutingService) {
|
|
25219
|
+
constructor(_router, _activatedRoute, _breakpoint, _languageService, _userService, _accessService, _log, _config, _uriService, _impersonationUserSelect, _impersonation, _dynamicRoutingService) {
|
|
24898
25220
|
this._router = _router;
|
|
24899
25221
|
this._activatedRoute = _activatedRoute;
|
|
24900
25222
|
this._breakpoint = _breakpoint;
|
|
@@ -24904,6 +25226,8 @@ class AbstractNavigationDoubleDrawerComponent {
|
|
|
24904
25226
|
this._log = _log;
|
|
24905
25227
|
this._config = _config;
|
|
24906
25228
|
this._uriService = _uriService;
|
|
25229
|
+
this._impersonationUserSelect = _impersonationUserSelect;
|
|
25230
|
+
this._impersonation = _impersonation;
|
|
24907
25231
|
this._dynamicRoutingService = _dynamicRoutingService;
|
|
24908
25232
|
this.imageRouterLink = "/";
|
|
24909
25233
|
this.imageAlt = "Logo";
|
|
@@ -24911,6 +25235,7 @@ class AbstractNavigationDoubleDrawerComponent {
|
|
|
24911
25235
|
this.includeUser = true;
|
|
24912
25236
|
this.includeLanguage = true;
|
|
24913
25237
|
this.includeMoreMenu = true;
|
|
25238
|
+
this.includeImpersonation = true;
|
|
24914
25239
|
this.allClosable = true;
|
|
24915
25240
|
this.folderIcon = "folder";
|
|
24916
25241
|
this.openedFolderIcon = "folder_open";
|
|
@@ -25068,6 +25393,12 @@ class AbstractNavigationDoubleDrawerComponent {
|
|
|
25068
25393
|
}
|
|
25069
25394
|
});
|
|
25070
25395
|
}
|
|
25396
|
+
impersonate() {
|
|
25397
|
+
this._impersonationUserSelect.selectImpersonate();
|
|
25398
|
+
}
|
|
25399
|
+
stopImpersonating() {
|
|
25400
|
+
this._impersonation.cease();
|
|
25401
|
+
}
|
|
25071
25402
|
get user() {
|
|
25072
25403
|
return this._userService.user;
|
|
25073
25404
|
}
|
|
@@ -25146,15 +25477,18 @@ class AbstractNavigationDoubleDrawerComponent {
|
|
|
25146
25477
|
id: filter.stringId,
|
|
25147
25478
|
resource: filter
|
|
25148
25479
|
};
|
|
25149
|
-
const resolvedRoles = this.resolveAccessRoles(filter);
|
|
25480
|
+
const resolvedRoles = this.resolveAccessRoles(filter, 'allowed_roles');
|
|
25481
|
+
const resolvedBannedRoles = this.resolveAccessRoles(filter, 'banned_roles');
|
|
25150
25482
|
if (!!resolvedRoles)
|
|
25151
25483
|
item.access['role'] = resolvedRoles;
|
|
25484
|
+
if (!!resolvedBannedRoles)
|
|
25485
|
+
item.access['bannedRole'] = resolvedBannedRoles;
|
|
25152
25486
|
if (!this._accessService.canAccessView(item, item.routingPath))
|
|
25153
25487
|
return;
|
|
25154
25488
|
return item;
|
|
25155
25489
|
}
|
|
25156
|
-
resolveAccessRoles(filter) {
|
|
25157
|
-
const allowedRoles = filter.immediateData.find(f => f.stringId ===
|
|
25490
|
+
resolveAccessRoles(filter, roleType) {
|
|
25491
|
+
const allowedRoles = filter.immediateData.find(f => f.stringId === roleType)?.options;
|
|
25158
25492
|
if (!allowedRoles || Object.keys(allowedRoles).length === 0)
|
|
25159
25493
|
return undefined;
|
|
25160
25494
|
const roles = [];
|
|
@@ -25216,15 +25550,15 @@ class AbstractNavigationDoubleDrawerComponent {
|
|
|
25216
25550
|
// this.contentWidth.next(this.width);
|
|
25217
25551
|
}
|
|
25218
25552
|
}
|
|
25219
|
-
AbstractNavigationDoubleDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractNavigationDoubleDrawerComponent, deps: [{ token: i2$3.Router }, { token: i2$3.ActivatedRoute }, { token: i1$7.BreakpointObserver }, { token: LanguageService }, { token: UserService }, { token: AccessService }, { token: LoggerService }, { token: ConfigurationService }, { token: UriService }, { token: DynamicNavigationRouteProviderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25220
|
-
AbstractNavigationDoubleDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractNavigationDoubleDrawerComponent, selector: "ncc-abstract-navigation-double-drawer", inputs: { portalLeftMenu: "portalLeftMenu", portalRightMenu: "portalRightMenu", imageRouterLink: "imageRouterLink", imageAlt: "imageAlt", image: "image", profileRouterLink: "profileRouterLink", includeUser: "includeUser", includeLanguage: "includeLanguage", includeMoreMenu: "includeMoreMenu", allClosable: "allClosable", folderIcon: "folderIcon", openedFolderIcon: "openedFolderIcon", filterIcon: "filterIcon", foldersCategoryName: "foldersCategoryName", viewsCategoryName: "viewsCategoryName" }, ngImport: i0, template: '', isInline: true });
|
|
25553
|
+
AbstractNavigationDoubleDrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractNavigationDoubleDrawerComponent, deps: [{ token: i2$3.Router }, { token: i2$3.ActivatedRoute }, { token: i1$7.BreakpointObserver }, { token: LanguageService }, { token: UserService }, { token: AccessService }, { token: LoggerService }, { token: ConfigurationService }, { token: UriService }, { token: ImpersonationUserSelectService }, { token: ImpersonationService }, { token: DynamicNavigationRouteProviderService }], target: i0.ɵɵFactoryTarget.Component });
|
|
25554
|
+
AbstractNavigationDoubleDrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AbstractNavigationDoubleDrawerComponent, selector: "ncc-abstract-navigation-double-drawer", inputs: { portalLeftMenu: "portalLeftMenu", portalRightMenu: "portalRightMenu", imageRouterLink: "imageRouterLink", imageAlt: "imageAlt", image: "image", profileRouterLink: "profileRouterLink", includeUser: "includeUser", includeLanguage: "includeLanguage", includeMoreMenu: "includeMoreMenu", includeImpersonation: "includeImpersonation", allClosable: "allClosable", folderIcon: "folderIcon", openedFolderIcon: "openedFolderIcon", filterIcon: "filterIcon", foldersCategoryName: "foldersCategoryName", viewsCategoryName: "viewsCategoryName" }, ngImport: i0, template: '', isInline: true });
|
|
25221
25555
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AbstractNavigationDoubleDrawerComponent, decorators: [{
|
|
25222
25556
|
type: Component,
|
|
25223
25557
|
args: [{
|
|
25224
25558
|
selector: 'ncc-abstract-navigation-double-drawer',
|
|
25225
25559
|
template: '',
|
|
25226
25560
|
}]
|
|
25227
|
-
}], ctorParameters: function () { return [{ type: i2$3.Router }, { type: i2$3.ActivatedRoute }, { type: i1$7.BreakpointObserver }, { type: LanguageService }, { type: UserService }, { type: AccessService }, { type: LoggerService }, { type: ConfigurationService }, { type: UriService }, { type: DynamicNavigationRouteProviderService }]; }, propDecorators: { portalLeftMenu: [{
|
|
25561
|
+
}], ctorParameters: function () { return [{ type: i2$3.Router }, { type: i2$3.ActivatedRoute }, { type: i1$7.BreakpointObserver }, { type: LanguageService }, { type: UserService }, { type: AccessService }, { type: LoggerService }, { type: ConfigurationService }, { type: UriService }, { type: ImpersonationUserSelectService }, { type: ImpersonationService }, { type: DynamicNavigationRouteProviderService }]; }, propDecorators: { portalLeftMenu: [{
|
|
25228
25562
|
type: Input
|
|
25229
25563
|
}], portalRightMenu: [{
|
|
25230
25564
|
type: Input
|
|
@@ -25242,6 +25576,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
25242
25576
|
type: Input
|
|
25243
25577
|
}], includeMoreMenu: [{
|
|
25244
25578
|
type: Input
|
|
25579
|
+
}], includeImpersonation: [{
|
|
25580
|
+
type: Input
|
|
25245
25581
|
}], allClosable: [{
|
|
25246
25582
|
type: Input
|
|
25247
25583
|
}], folderIcon: [{
|
|
@@ -28426,7 +28762,7 @@ class AbstractSearchOperandInputComponent {
|
|
|
28426
28762
|
}
|
|
28427
28763
|
return this._filteredOptions$;
|
|
28428
28764
|
}
|
|
28429
|
-
|
|
28765
|
+
isInputFilled() {
|
|
28430
28766
|
if (!this._inputConfirmed) {
|
|
28431
28767
|
return false;
|
|
28432
28768
|
}
|
|
@@ -28439,7 +28775,7 @@ class AbstractSearchOperandInputComponent {
|
|
|
28439
28775
|
return;
|
|
28440
28776
|
}
|
|
28441
28777
|
this._initialExpansion = false;
|
|
28442
|
-
if (!this.isInputFilled) {
|
|
28778
|
+
if (!this.isInputFilled()) {
|
|
28443
28779
|
setTimeout(() => {
|
|
28444
28780
|
input.nativeElement.focus();
|
|
28445
28781
|
});
|
|
@@ -30043,6 +30379,11 @@ class TestConfigurationService extends ConfigurationService {
|
|
|
30043
30379
|
name: 'dashboard',
|
|
30044
30380
|
address: 'http://localhost:8080/api/',
|
|
30045
30381
|
format: 'json'
|
|
30382
|
+
},
|
|
30383
|
+
{
|
|
30384
|
+
name: 'impersonation',
|
|
30385
|
+
address: 'http://localhost:8080/api/',
|
|
30386
|
+
format: 'json'
|
|
30046
30387
|
}
|
|
30047
30388
|
]
|
|
30048
30389
|
},
|
|
@@ -31559,8 +31900,7 @@ class AbstractFieldComponentResolverComponent {
|
|
|
31559
31900
|
return this.gridElement.item;
|
|
31560
31901
|
}
|
|
31561
31902
|
getTaskId() {
|
|
31562
|
-
|
|
31563
|
-
return referencedTaskId ?? this.taskContentService.task.stringId;
|
|
31903
|
+
return this.taskContentService.task.stringId;
|
|
31564
31904
|
}
|
|
31565
31905
|
isField() {
|
|
31566
31906
|
return this.gridElement.type !== TaskElementType.BLANK && this.gridElement.type !== TaskElementType.DATA_GROUP_TITLE;
|
|
@@ -31875,6 +32215,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
31875
32215
|
|
|
31876
32216
|
/* EVENT OUTCOMES */
|
|
31877
32217
|
|
|
32218
|
+
class ImpersonationUserResourceService extends UserResourceService {
|
|
32219
|
+
constructor(provider, configService) {
|
|
32220
|
+
super(provider, configService);
|
|
32221
|
+
this._IMPERSONATION_SERVER_URL = this.getResourceAddress('impersonation');
|
|
32222
|
+
}
|
|
32223
|
+
search(body, params) {
|
|
32224
|
+
return this._resourceProvider.post$('/impersonate/search', this._IMPERSONATION_SERVER_URL, { query: body.fulltext }, params)
|
|
32225
|
+
.pipe(map((r) => this.getResourcePage(r, 'users')));
|
|
32226
|
+
}
|
|
32227
|
+
}
|
|
32228
|
+
ImpersonationUserResourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserResourceService, deps: [{ token: ResourceProvider }, { token: ConfigurationService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32229
|
+
ImpersonationUserResourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserResourceService, providedIn: 'root' });
|
|
32230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserResourceService, decorators: [{
|
|
32231
|
+
type: Injectable,
|
|
32232
|
+
args: [{
|
|
32233
|
+
providedIn: 'root'
|
|
32234
|
+
}]
|
|
32235
|
+
}], ctorParameters: function () { return [{ type: ResourceProvider }, { type: ConfigurationService }]; } });
|
|
32236
|
+
|
|
32237
|
+
class ImpersonationUserListService extends UserListService {
|
|
32238
|
+
constructor(_resources, _logService, _snackbar, _translate) {
|
|
32239
|
+
super(_resources, _logService, _snackbar, _translate);
|
|
32240
|
+
this._logService = _logService;
|
|
32241
|
+
}
|
|
32242
|
+
}
|
|
32243
|
+
ImpersonationUserListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserListService, deps: [{ token: ImpersonationUserResourceService }, { token: LoggerService }, { token: SnackBarService }, { token: i1$2.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
32244
|
+
ImpersonationUserListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserListService });
|
|
32245
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ImpersonationUserListService, decorators: [{
|
|
32246
|
+
type: Injectable
|
|
32247
|
+
}], ctorParameters: function () { return [{ type: ImpersonationUserResourceService }, { type: LoggerService }, { type: SnackBarService }, { type: i1$2.TranslateService }]; } });
|
|
32248
|
+
|
|
32249
|
+
/* MODELS */
|
|
32250
|
+
|
|
31878
32251
|
/*
|
|
31879
32252
|
* Public API Surface of netgrif-components-core
|
|
31880
32253
|
*/
|
|
@@ -31883,5 +32256,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
31883
32256
|
* Generated bundle index. Do not edit.
|
|
31884
32257
|
*/
|
|
31885
32258
|
|
|
31886
|
-
export { AbstractAddChildNodeComponent, AbstractAdvancedSearchComponent, AbstractAuthenticationOverlayComponent, AbstractBooleanFieldComponent, AbstractBreadcrumbsComponent, AbstractButtonFieldComponent, AbstractCaseListComponent, AbstractCaseListPaginatorComponent, AbstractCasePanelComponent, AbstractCaseViewComponent, AbstractCountCardComponent, AbstractCurrencyNumberFieldComponent, AbstractCustomCardComponent, AbstractDashboardContentComponent, AbstractDataFieldTemplateComponent, AbstractDateFieldComponent, AbstractDateTimeFieldComponent, AbstractDefaultNumberFieldComponent, AbstractEditModeComponent, AbstractEmailSubmissionFormComponent, AbstractEnumerationAutocompleteDynamicFieldComponent, AbstractEnumerationAutocompleteSelectFieldComponent, AbstractEnumerationFieldComponent, AbstractEnumerationIconFieldComponent, AbstractEnumerationListFieldComponent, AbstractEnumerationSelectFieldComponent, AbstractEnumerationStepperFieldComponent, AbstractFieldComponentResolverComponent, AbstractFileFieldComponent, AbstractFileListFieldComponent, AbstractFilterFieldComponent, AbstractFilterFieldContentComponent, AbstractFilterSelectorComponent, AbstractFilterSelectorListItemComponent, AbstractForgottenPasswordComponent, AbstractFulltextSearchComponent, AbstractGroupNavigationComponentResolverComponent, AbstractHeaderComponent, AbstractHeaderService, AbstractHtmlTextareaFieldComponent, AbstractI18nDividerFieldComponent, AbstractI18nErrorsComponent, AbstractI18nFieldComponent, AbstractI18nTextFieldComponent, AbstractIframeCardComponent, AbstractImmediateFilterTextComponent, AbstractImmediateFilterTextContentComponent, AbstractImportNetComponent, AbstractInternalLinkComponent, AbstractLanguageSelectorComponent, AbstractLdapGroupRoleAssignmentComponent, AbstractLegalNoticeComponent, AbstractLoadFilterComponent, AbstractLoadingModeComponent, AbstractLoggerService, AbstractLoginFormComponent, AbstractLogoutShortcutComponent, AbstractMultichoiceAutocompleteFieldComponentComponent, AbstractMultichoiceFieldComponent, AbstractMultichoiceListFieldComponent, AbstractMultichoiceSelectFieldComponent, AbstractNavigationDoubleDrawerComponent, AbstractNavigationDrawerComponent, AbstractNavigationRailComponent, AbstractNavigationTreeComponent, AbstractNewCaseComponent, AbstractNumberErrorsComponent, AbstractNumberFieldComponent, AbstractOptionSelectorComponent, AbstractPanelComponent, AbstractPanelItemComponent, AbstractPasswordTextFieldComponent, AbstractProfileComponent, AbstractQuickPanelComponent, AbstractRegistrationComponent, AbstractRegistrationFormComponent, AbstractRemoveNodeComponent, AbstractResourceProvider, AbstractResourceService, AbstractRichTextareaFieldComponent, AbstractRoleAssignmentComponent, AbstractSaveFilterComponent, AbstractSearchClauseComponent, AbstractSearchComponent, AbstractSearchConfigurationInputComponent, AbstractSearchModeComponent, AbstractSearchOperandInputComponent, AbstractSearchPredicateComponent, AbstractSideMenuContainerComponent, AbstractSimpleTextFieldComponent, AbstractSingleTaskComponent, AbstractSingleTaskViewComponent, AbstractSortModeComponent, AbstractSortableViewComponent, AbstractTabCreationDetectorComponent, AbstractTabViewComponent, AbstractTabbedCaseViewComponent, AbstractTabbedTaskViewComponent, AbstractTaskContentComponent, AbstractTaskListComponent, AbstractTaskListPaginationComponent, AbstractTaskPanelComponent, AbstractTaskViewComponent, AbstractTextErrorsComponent, AbstractTextFieldComponent, AbstractTextareaFieldComponent, AbstractToolbarComponent, AbstractTreeComponent, AbstractTreeTaskContentComponent, AbstractUserAssignComponent, AbstractUserAssignItemComponent, AbstractUserAssignListComponent, AbstractUserCardComponent, AbstractUserFieldComponent, AbstractUserInviteComponent, AbstractUserListFieldComponent, AbstractViewWithHeadersComponent, AbstractWorkflowPanelComponent, AbstractWorkflowViewComponent, AccessService, ActiveGroupService, AdvancedSearchComponentInitializationService, AfterAction, AlertDialogComponent, AlertDialogModule, AllowedNetsService, AllowedNetsServiceFactory, AnonymousService, AssignPolicy, AssignPolicyService, AssignTaskService, AuthenticationGuardService, AuthenticationMethodService, AuthenticationModule, AuthenticationService, AuthorityGuardService, AutocompleteCategory, BOOLEAN_VALUE_LABEL_ENABLED, BaseAllowedNetsService, BasicAuthenticationService, BooleanField, BooleanFieldValidation, BooleanOperator, ButtonField, ButtonFieldValidation, CallChainService, CancelTaskService, CaseAuthor, CaseCreationDate, CaseCreationDateTime, CaseDataset, CaseHeaderService, CaseListFontColorService, CaseMetaField, CaseNetAttributeAutocompleteCategory, CaseProcess, CaseResourceService, CaseRole, CaseSearch, CaseSimpleDataset, CaseStringId, CaseTask, CaseTitle, CaseTreeNode, CaseTreeService, CaseViewService, CaseVisualId, Categories, Category, CategoryFactory, CategoryResolverService, ChangedFieldsService, ClausePredicate, ConfigParams, ConfigurationInput, ConfigurationService, ConfirmDialogComponent, ConfirmDialogModule, ConsoleLogPublisher, CovalentModule, CurrencyModule, CustomDateAdapter, DATE_FORMAT, DATE_FORMAT_STRING, DATE_TIME_FORMAT, DATE_TIME_FORMAT_STRING, DEFAULT_LANGUAGE_CODE, DashboardCardTypes, DashboardMultiData, DashboardResourceService, DashboardSingleData, DataField, DataFieldsModule, DataFocusPolicy, DataFocusPolicyService, DataGroupAlignment, DatafieldMapKey, DateField, DateTimeField, DefaultSearchCategoriesModule, DelegateTaskService, DialogModule, DialogService, DynamicEnumerationField, DynamicNavigationRouteProviderService, EditableClausePredicate, EditableClausePredicateWithGenerators, EditableElementaryPredicate, EditablePredicate, EditablePredicateWithGenerator, ElementaryPredicate, EnumerationField, EnumerationFieldValidation, Equals, EqualsDate, ErrorSnackBarComponent, EventConstants, EventQueueService, EventService, FILTER_IDENTIFIERS, FILTER_VIEW_TASK_TRANSITION_ID, FieldAlignment, FieldConverterService, FieldTypeResource, FileField, FileListField, FileListFieldValidation, FilePreviewType, FileUploadMIMEType, FileUploadModel, Filter, FilterExtractionService, FilterField, FilterRepository, FilterType, FinishPolicy, FinishPolicyService, FinishTaskService, GenericSnackBarComponent, GroupGuardService, GroupNavigationComponentResolverService, GroupNavigationConstants, HeaderColumn, HeaderColumnType, HeaderMode, HeaderSearchService, HeaderType, HttpLoaderFactory, I18nField, I18nFieldValidation, InRange, InRangeDate, IncrementingCounter, IsNull, LanguageIconsService, LanguageService, LdapGroupListService, LdapGroupResourceService, LessThan, LessThanDate, LessThanDateTime, Like, LoadingEmitter, LoadingWithFilterEmitter, LocalStorageLogPublisher, LogEntry, LogLevel, LogPublisher, LogPublisherService, LoggerService, MaterialAppearance, MaterialModule, MergeOperator, MergedFilter, MockAuthenticationMethodService, MockAuthenticationService, MockEndpoint, MockSignUpService, MockUserPreferenceService, MockUserResourceService, MoreThan, MoreThanDate, MoreThanDateTime, MultichoiceField, NAE_ASYNC_RENDERING_CONFIGURATION, NAE_AUTOSWITCH_TAB_TOKEN, NAE_BASE_FILTER, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_HEADERS, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, NAE_FILES_UPLOAD_COMPONENT, NAE_FILTERS_FILTER, NAE_FILTER_FIELD, NAE_FILTER_TEXT, NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, NAE_INFORM_ABOUT_INVALID_DATA, NAE_LOAD_FILTER_COMPONENT, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_NET_ALL_VERSIONS, NAE_NET_VERSION_VISIBLE, NAE_NEW_CASE_COMPONENT, NAE_NEW_CASE_CONFIGURATION, NAE_NEW_CASE_CREATION_CONFIGURATION_DATA, NAE_OPEN_EXISTING_TAB, NAE_OPTION_SELECTOR_COMPONENT, NAE_PREFERRED_TASK_ENDPOINT, NAE_ROUTING_CONFIGURATION_PATH, NAE_SAVE_FILTER_COMPONENT, NAE_SEARCH_CATEGORIES, NAE_SEARCH_COMPONENT_CONFIGURATION, NAE_SIDE_MENU_CONTROL, NAE_SNACKBAR_HORIZONTAL_POSITION, NAE_SNACKBAR_VERTICAL_POSITION, NAE_TAB_DATA, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, NAE_TASK_VIEW_CONFIGURATION, NAE_TREE_CASE_VIEW_CONFIGURATION, NAE_USER_ASSIGN_COMPONENT, NAE_VIEW_ID, NAE_VIEW_ID_SEGMENT, NAE_WORKFLOW_SERVICE_CONFIRM_DELETE, NAE_WORKFLOW_SERVICE_FILTER, Net, NetAttributeAutocompleteCategory, NextGroupService, NoConfigurationAutocompleteCategory, NoConfigurationCategory, NoConfigurationUserAutocompleteCategory, NotEquals, NotEqualsDate, NotEqualsDateTime, NullAuthenticationService, NullTaskOperations, NumberField, NumberFieldValidation, OpenedTab, Operator, OperatorResolverService, OperatorService, OperatorTemplatePart, OperatorTemplatePartType, Operators, OrganizationListService, OverflowService, PUBLISHERS, PageLoadRequestContext, PaginationParams, PaginationSort, PaperViewService, PermissionService, PermissionType, PetriNetResourceService, Predicate, PredicateWithGenerator, ProcessList, ProcessService, ProgressType, PromptDialogComponent, PromptDialogModule, PublicCaseResourceService, PublicPetriNetResourceService, PublicProcessService, PublicTaskLoadingService, PublicTaskResourceService, PublicUrlResolverService, Query, QueuedEvent, RedirectService, ResourceProvider, ResultWithAfterActions, RoleAssignmentLdapGroupService, RoleAssignmentService, RoleGuardService, RoutingBuilderService, SearchIndex, SearchIndexResolverService, SearchInputType, SearchMode, SearchService, SelectedCaseService, SessionService, SideMenuControl, SideMenuRef, SideMenuService, SideMenuSize, SignUpModule, SignUpService, SimpleFilter, SingleTaskContentService, SnackBarComponent, SnackBarHorizontalPosition, SnackBarModule, SnackBarService, SnackBarVerticalPosition, SpinnerOverlayService, Subgrid, SubjectTaskOperations, Substring, SuccessSnackBarComponent, TabLabelStream, TabView, TabbedVirtualScrollComponent, TaskAssignee, TaskConst, TaskContentService, TaskDataService, TaskElementType, TaskEndpoint, TaskEvent, TaskEventService, TaskHandlingService, TaskHeaderService, TaskMetaField, TaskNetAttributeAutocompleteCategory, TaskProcess, TaskRefField, TaskRequestStateService, TaskResourceService, TaskRole, TaskTask, TaskViewService, TemplateAppearance, TestCaseBaseFilterProvider, TestCaseViewAllowedNetsFactory, TestConfigurationService, TestMockDependenciesModule, TestNoAllowedNetsFactory, TestTaskBaseFilterProvider, TestTaskViewAllowedNetsFactory, TestViewService, TextAreaField, TextAreaHeight, TextField, TextFieldValidation, TranslateLibModule, TreeCaseViewService, TreePetriflowIdentifiers, TreeTaskContentService, UnlimitedTaskContentService, UriContentType, UriResourceService, UriService, User, UserAutocomplete, UserComparatorService, UserField, UserFilterConstants, UserFiltersService, UserInviteService, UserListField, UserListService, UserPreferenceService, UserResourceService, UserService, UserTransformer, UserValue, ViewIdService, ViewService, WarningSnackBarComponent, WorkflowHeaderService, WorkflowMetaField, WorkflowViewService, WrappedBoolean, arrayToObservable, authenticationServiceFactory, clearTimeInformation, configureCategory, createMockCase, createMockCaseOutcome, createMockDataGroup, createMockDependencies, createMockField, createMockGetDataOutcome, createMockImmediateData, createMockNet, createMockPage, createMockPetriNetOutcome, createMockSetDataOutcome, createMockTask, createMockTaskOutcome, createSortParam, createTaskEventNotification, defaultCaseSearchCategoriesFactory, defaultTaskSearchCategoriesFactory, destroySubscription, extractFilterFieldFromData, extractFilterFromData, extractFilterFromFilterField, extractIconAndTitle, extractRoles, getField, getFieldFromDataGroups, getFieldIndex, getFieldIndexFromDataGroups, getImmediateData, getNetAndCreateCase, groupNavigationViewIdSegmentFactory, hasContent, loadAllPages, mockUserAutocompleteValue, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskCategoryFactory, navigationItemTaskFilterFactory, ofVoid, processMessageResponse, publicBaseFilterFactory, publicFactoryResolver, refreshTree, tabbedAllowedNetsServiceFactory, tabbedTaskViewConfigurationFactory, toMoment };
|
|
32259
|
+
export { AbstractAddChildNodeComponent, AbstractAdvancedSearchComponent, AbstractAuthenticationOverlayComponent, AbstractBooleanFieldComponent, AbstractBreadcrumbsComponent, AbstractButtonFieldComponent, AbstractCaseListComponent, AbstractCaseListPaginatorComponent, AbstractCasePanelComponent, AbstractCaseViewComponent, AbstractCountCardComponent, AbstractCurrencyNumberFieldComponent, AbstractCustomCardComponent, AbstractDashboardContentComponent, AbstractDataFieldTemplateComponent, AbstractDateFieldComponent, AbstractDateTimeFieldComponent, AbstractDefaultNumberFieldComponent, AbstractEditModeComponent, AbstractEmailSubmissionFormComponent, AbstractEnumerationAutocompleteDynamicFieldComponent, AbstractEnumerationAutocompleteSelectFieldComponent, AbstractEnumerationFieldComponent, AbstractEnumerationIconFieldComponent, AbstractEnumerationListFieldComponent, AbstractEnumerationSelectFieldComponent, AbstractEnumerationStepperFieldComponent, AbstractFieldComponentResolverComponent, AbstractFileFieldComponent, AbstractFileListFieldComponent, AbstractFilterFieldComponent, AbstractFilterFieldContentComponent, AbstractFilterSelectorComponent, AbstractFilterSelectorListItemComponent, AbstractForgottenPasswordComponent, AbstractFulltextSearchComponent, AbstractGroupNavigationComponentResolverComponent, AbstractHeaderComponent, AbstractHeaderService, AbstractHtmlTextareaFieldComponent, AbstractI18nDividerFieldComponent, AbstractI18nErrorsComponent, AbstractI18nFieldComponent, AbstractI18nTextFieldComponent, AbstractIframeCardComponent, AbstractImmediateFilterTextComponent, AbstractImmediateFilterTextContentComponent, AbstractImportNetComponent, AbstractInternalLinkComponent, AbstractLanguageSelectorComponent, AbstractLdapGroupRoleAssignmentComponent, AbstractLegalNoticeComponent, AbstractLoadFilterComponent, AbstractLoadingModeComponent, AbstractLoggerService, AbstractLoginFormComponent, AbstractLogoutShortcutComponent, AbstractMultichoiceAutocompleteFieldComponentComponent, AbstractMultichoiceFieldComponent, AbstractMultichoiceListFieldComponent, AbstractMultichoiceSelectFieldComponent, AbstractNavigationDoubleDrawerComponent, AbstractNavigationDrawerComponent, AbstractNavigationRailComponent, AbstractNavigationTreeComponent, AbstractNewCaseComponent, AbstractNumberErrorsComponent, AbstractNumberFieldComponent, AbstractOptionSelectorComponent, AbstractPanelComponent, AbstractPanelItemComponent, AbstractPasswordTextFieldComponent, AbstractProfileComponent, AbstractQuickPanelComponent, AbstractRegistrationComponent, AbstractRegistrationFormComponent, AbstractRemoveNodeComponent, AbstractResourceProvider, AbstractResourceService, AbstractRichTextareaFieldComponent, AbstractRoleAssignmentComponent, AbstractSaveFilterComponent, AbstractSearchClauseComponent, AbstractSearchComponent, AbstractSearchConfigurationInputComponent, AbstractSearchModeComponent, AbstractSearchOperandInputComponent, AbstractSearchPredicateComponent, AbstractSideMenuContainerComponent, AbstractSimpleTextFieldComponent, AbstractSingleTaskComponent, AbstractSingleTaskViewComponent, AbstractSortModeComponent, AbstractSortableViewComponent, AbstractTabCreationDetectorComponent, AbstractTabViewComponent, AbstractTabbedCaseViewComponent, AbstractTabbedTaskViewComponent, AbstractTaskContentComponent, AbstractTaskListComponent, AbstractTaskListPaginationComponent, AbstractTaskPanelComponent, AbstractTaskViewComponent, AbstractTextErrorsComponent, AbstractTextFieldComponent, AbstractTextareaFieldComponent, AbstractToolbarComponent, AbstractTreeComponent, AbstractTreeTaskContentComponent, AbstractUserAssignComponent, AbstractUserAssignItemComponent, AbstractUserAssignListComponent, AbstractUserCardComponent, AbstractUserFieldComponent, AbstractUserImpersonateComponent, AbstractUserInviteComponent, AbstractUserListFieldComponent, AbstractViewWithHeadersComponent, AbstractWorkflowPanelComponent, AbstractWorkflowViewComponent, AccessService, ActiveGroupService, AdvancedSearchComponentInitializationService, AfterAction, AlertDialogComponent, AlertDialogModule, AllowedNetsService, AllowedNetsServiceFactory, AnonymousAuthenticationInterceptor, AnonymousService, AssignPolicy, AssignPolicyService, AssignTaskService, AuthenticationGuardService, AuthenticationInterceptor, AuthenticationMethodService, AuthenticationModule, AuthenticationService, AuthorityGuardService, AutocompleteCategory, BOOLEAN_VALUE_LABEL_ENABLED, BaseAllowedNetsService, BasicAuthenticationService, BooleanField, BooleanFieldValidation, BooleanOperator, ButtonField, ButtonFieldValidation, CallChainService, CancelTaskService, CaseAuthor, CaseCreationDate, CaseCreationDateTime, CaseDataset, CaseHeaderService, CaseListFontColorService, CaseMetaField, CaseNetAttributeAutocompleteCategory, CaseProcess, CaseResourceService, CaseRole, CaseSearch, CaseSimpleDataset, CaseStringId, CaseTask, CaseTitle, CaseTreeNode, CaseTreeService, CaseViewService, CaseVisualId, Categories, Category, CategoryFactory, CategoryResolverService, ChangedFieldsService, ClausePredicate, ConfigParams, ConfigurationInput, ConfigurationService, ConfirmDialogComponent, ConfirmDialogModule, ConsoleLogPublisher, CovalentModule, CurrencyModule, CustomDateAdapter, DATE_FORMAT, DATE_FORMAT_STRING, DATE_TIME_FORMAT, DATE_TIME_FORMAT_STRING, DEFAULT_LANGUAGE_CODE, DashboardCardTypes, DashboardMultiData, DashboardResourceService, DashboardSingleData, DataField, DataFieldsModule, DataFocusPolicy, DataFocusPolicyService, DataGroupAlignment, DatafieldMapKey, DateField, DateTimeField, DefaultSearchCategoriesModule, DelegateTaskService, DialogModule, DialogService, DynamicEnumerationField, DynamicNavigationRouteProviderService, EditableClausePredicate, EditableClausePredicateWithGenerators, EditableElementaryPredicate, EditablePredicate, EditablePredicateWithGenerator, ElementaryPredicate, EnumerationField, EnumerationFieldValidation, Equals, EqualsDate, ErrorSnackBarComponent, EventConstants, EventQueueService, EventService, FILTER_IDENTIFIERS, FILTER_VIEW_TASK_TRANSITION_ID, FieldAlignment, FieldConverterService, FieldTypeResource, FileField, FileListField, FileListFieldValidation, FilePreviewType, FileUploadMIMEType, FileUploadModel, Filter, FilterExtractionService, FilterField, FilterRepository, FilterType, FinishPolicy, FinishPolicyService, FinishTaskService, GenericSnackBarComponent, GroupGuardService, GroupNavigationComponentResolverService, GroupNavigationConstants, HeaderColumn, HeaderColumnType, HeaderMode, HeaderSearchService, HeaderType, HttpLoaderFactory, I18nField, I18nFieldValidation, ImpersonationService, ImpersonationUserListService, ImpersonationUserResourceService, ImpersonationUserSelectService, InRange, InRangeDate, IncrementingCounter, IsNull, LanguageIconsService, LanguageService, LdapGroupListService, LdapGroupResourceService, LessThan, LessThanDate, LessThanDateTime, Like, LoadingEmitter, LoadingWithFilterEmitter, LocalStorageLogPublisher, LogEntry, LogLevel, LogPublisher, LogPublisherService, LoggerService, MaterialAppearance, MaterialModule, MergeOperator, MergedFilter, MockAuthenticationMethodService, MockAuthenticationService, MockEndpoint, MockSignUpService, MockUserPreferenceService, MockUserResourceService, MoreThan, MoreThanDate, MoreThanDateTime, MultichoiceField, NAE_ADMIN_IMPERSONATE_COMPONENT, NAE_ASYNC_RENDERING_CONFIGURATION, NAE_AUTOSWITCH_TAB_TOKEN, NAE_BASE_FILTER, NAE_DEFAULT_CASE_SEARCH_CATEGORIES, NAE_DEFAULT_HEADERS, NAE_DEFAULT_TASK_SEARCH_CATEGORIES, NAE_FILES_UPLOAD_COMPONENT, NAE_FILTERS_FILTER, NAE_FILTER_FIELD, NAE_FILTER_TEXT, NAE_GROUP_NAVIGATION_COMPONENT_RESOLVER_COMPONENT, NAE_INFORM_ABOUT_INVALID_DATA, NAE_LOAD_FILTER_COMPONENT, NAE_NAVIGATION_ITEM_TASK_DATA, NAE_NET_ALL_VERSIONS, NAE_NET_VERSION_VISIBLE, NAE_NEW_CASE_COMPONENT, NAE_NEW_CASE_CONFIGURATION, NAE_NEW_CASE_CREATION_CONFIGURATION_DATA, NAE_OPEN_EXISTING_TAB, NAE_OPTION_SELECTOR_COMPONENT, NAE_PREFERRED_TASK_ENDPOINT, NAE_ROUTING_CONFIGURATION_PATH, NAE_SAVE_FILTER_COMPONENT, NAE_SEARCH_CATEGORIES, NAE_SEARCH_COMPONENT_CONFIGURATION, NAE_SIDE_MENU_CONTROL, NAE_SNACKBAR_HORIZONTAL_POSITION, NAE_SNACKBAR_VERTICAL_POSITION, NAE_TAB_DATA, NAE_TASK_OPERATIONS, NAE_TASK_PANEL_DISABLE_BUTTON_FUNCTIONS, NAE_TASK_VIEW_CONFIGURATION, NAE_TREE_CASE_VIEW_CONFIGURATION, NAE_USER_ASSIGN_COMPONENT, NAE_USER_IMPERSONATE_COMPONENT, NAE_VIEW_ID, NAE_VIEW_ID_SEGMENT, NAE_WORKFLOW_SERVICE_CONFIRM_DELETE, NAE_WORKFLOW_SERVICE_FILTER, Net, NetAttributeAutocompleteCategory, NextGroupService, NoConfigurationAutocompleteCategory, NoConfigurationCategory, NoConfigurationUserAutocompleteCategory, NotEquals, NotEqualsDate, NotEqualsDateTime, NullAuthenticationService, NullTaskOperations, NumberField, NumberFieldValidation, OpenedTab, Operator, OperatorResolverService, OperatorService, OperatorTemplatePart, OperatorTemplatePartType, Operators, OrganizationListService, OverflowService, PUBLISHERS, PageLoadRequestContext, PaginationParams, PaginationSort, PaperViewService, PermissionService, PermissionType, PetriNetResourceService, Predicate, PredicateWithGenerator, ProcessList, ProcessService, ProgressType, PromptDialogComponent, PromptDialogModule, PublicCaseResourceService, PublicPetriNetResourceService, PublicProcessService, PublicTaskLoadingService, PublicTaskResourceService, PublicUrlResolverService, Query, QueuedEvent, RedirectService, ResourceProvider, ResultWithAfterActions, RoleAssignmentLdapGroupService, RoleAssignmentService, RoleGuardService, RoutingBuilderService, SearchIndex, SearchIndexResolverService, SearchInputType, SearchMode, SearchService, SelectedCaseService, SessionService, SideMenuControl, SideMenuRef, SideMenuService, SideMenuSize, SignUpModule, SignUpService, SimpleFilter, SingleTaskContentService, SnackBarComponent, SnackBarHorizontalPosition, SnackBarModule, SnackBarService, SnackBarVerticalPosition, SpinnerOverlayService, Subgrid, SubjectTaskOperations, Substring, SuccessSnackBarComponent, TabLabelStream, TabView, TabbedVirtualScrollComponent, TaskAssignee, TaskConst, TaskContentService, TaskDataService, TaskElementType, TaskEndpoint, TaskEvent, TaskEventService, TaskHandlingService, TaskHeaderService, TaskMetaField, TaskNetAttributeAutocompleteCategory, TaskProcess, TaskRefField, TaskRequestStateService, TaskResourceService, TaskRole, TaskTask, TaskViewService, TemplateAppearance, TestCaseBaseFilterProvider, TestCaseViewAllowedNetsFactory, TestConfigurationService, TestMockDependenciesModule, TestNoAllowedNetsFactory, TestTaskBaseFilterProvider, TestTaskViewAllowedNetsFactory, TestViewService, TextAreaField, TextAreaHeight, TextField, TextFieldValidation, TranslateLibModule, TreeCaseViewService, TreePetriflowIdentifiers, TreeTaskContentService, UnlimitedTaskContentService, UriContentType, UriResourceService, UriService, User, UserAutocomplete, UserComparatorService, UserField, UserFilterConstants, UserFiltersService, UserImpersonationConstants, UserInviteService, UserListField, UserListService, UserPreferenceService, UserResourceService, UserService, UserTransformer, UserValue, ViewIdService, ViewService, WarningSnackBarComponent, WorkflowHeaderService, WorkflowMetaField, WorkflowViewService, WrappedBoolean, arrayToObservable, authenticationServiceFactory, clearTimeInformation, configureCategory, createMockCase, createMockCaseOutcome, createMockDataGroup, createMockDependencies, createMockField, createMockGetDataOutcome, createMockImmediateData, createMockNet, createMockPage, createMockPetriNetOutcome, createMockSetDataOutcome, createMockTask, createMockTaskOutcome, createSortParam, createTaskEventNotification, defaultCaseSearchCategoriesFactory, defaultTaskSearchCategoriesFactory, destroySubscription, extractFilterFieldFromData, extractFilterFromData, extractFilterFromFilterField, extractIconAndTitle, extractRoles, getField, getFieldFromDataGroups, getFieldIndex, getFieldIndexFromDataGroups, getImmediateData, getNetAndCreateCase, groupNavigationViewIdSegmentFactory, hasContent, loadAllPages, mockUserAutocompleteValue, navigationItemTaskAllowedNetsServiceFactory, navigationItemTaskCategoryFactory, navigationItemTaskFilterFactory, ofVoid, processMessageResponse, publicBaseFilterFactory, publicFactoryResolver, refreshTree, tabbedAllowedNetsServiceFactory, tabbedTaskViewConfigurationFactory, toMoment };
|
|
31887
32260
|
//# sourceMappingURL=netgrif-components-core.mjs.map
|