verben-authentication-ui 0.4.2 → 0.4.4
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/lib/components/role-control/role-control.component.mjs +131 -14
- package/esm2022/lib/components/sign-in/sign-in.component.mjs +40 -27
- package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +22 -22
- package/esm2022/lib/components/user-request/user-request.component.mjs +4 -4
- package/esm2022/lib/models/ApplicationRoleAction.mjs +2 -0
- package/esm2022/lib/models/ApplicationRoleContext.mjs +2 -0
- package/esm2022/lib/models/OAuthParam.mjs +2 -0
- package/esm2022/lib/models/OAuthType.mjs +9 -0
- package/esm2022/lib/models/Role.mjs +1 -1
- package/esm2022/lib/models/RoleAction.mjs +1 -1
- package/esm2022/lib/models/RoleContext.mjs +1 -1
- package/esm2022/lib/models/SearchOperator.mjs +6 -0
- package/esm2022/lib/models/SearchPropertySign.mjs +11 -0
- package/esm2022/lib/models/SearchPropertyValue.mjs +2 -0
- package/esm2022/lib/models/SearchPropertyValueType.mjs +11 -0
- package/esm2022/lib/models/TenantConfig.mjs +2 -0
- package/esm2022/lib/models/log-in.mjs +1 -1
- package/esm2022/lib/models/resend-otp-data.mjs +1 -1
- package/esm2022/lib/services/authorization.service.mjs +6 -4
- package/esm2022/lib/services/environment.service.mjs +1 -1
- package/fesm2022/verben-authentication-ui.mjs +208 -62
- package/fesm2022/verben-authentication-ui.mjs.map +1 -1
- package/lib/components/role-control/role-control.component.d.ts +16 -3
- package/lib/components/sign-in/sign-in.component.d.ts +4 -1
- package/lib/models/ApplicationRoleAction.d.ts +9 -0
- package/lib/models/ApplicationRoleContext.d.ts +9 -0
- package/lib/models/OAuthParam.d.ts +9 -0
- package/lib/models/OAuthType.d.ts +7 -0
- package/lib/models/Role.d.ts +1 -0
- package/lib/models/RoleAction.d.ts +2 -0
- package/lib/models/RoleContext.d.ts +2 -0
- package/lib/models/SearchOperator.d.ts +4 -0
- package/lib/models/SearchPropertySign.d.ts +9 -0
- package/lib/models/SearchPropertyValue.d.ts +10 -0
- package/lib/models/SearchPropertyValueType.d.ts +9 -0
- package/lib/models/TenantConfig.d.ts +18 -0
- package/lib/models/log-in.d.ts +1 -1
- package/lib/models/resend-otp-data.d.ts +1 -1
- package/lib/services/authorization.service.d.ts +1 -1
- package/lib/services/environment.service.d.ts +1 -0
- package/package.json +2 -3
|
@@ -464,7 +464,7 @@ class UserRequestComponent {
|
|
|
464
464
|
this.utilService = utilService;
|
|
465
465
|
this.envSvc = envSvc;
|
|
466
466
|
this.route = route;
|
|
467
|
-
this.apiKey = this.envSvc.environment.
|
|
467
|
+
this.apiKey = this.envSvc.environment.Tenant;
|
|
468
468
|
this.userRequestForm = this.fb.group({
|
|
469
469
|
Code: new FormControl('', { nonNullable: true }),
|
|
470
470
|
FirstName: new FormControl('', {
|
|
@@ -527,7 +527,7 @@ class UserRequestComponent {
|
|
|
527
527
|
}
|
|
528
528
|
async ngOnInit() {
|
|
529
529
|
await this.getTenantConfig();
|
|
530
|
-
this.route.queryParams.subscribe(params => {
|
|
530
|
+
this.route.queryParams.subscribe((params) => {
|
|
531
531
|
this.code = params['code'];
|
|
532
532
|
this.type = params['type'];
|
|
533
533
|
if (this.code) {
|
|
@@ -601,7 +601,7 @@ class UserRequestComponent {
|
|
|
601
601
|
const data = this.AuthMechanisms.find((item) => item.AuthMechanism.includes(this.type));
|
|
602
602
|
const payload = {
|
|
603
603
|
AuthCode: this.code,
|
|
604
|
-
|
|
604
|
+
Tenant: this.apiKey,
|
|
605
605
|
AuthMechanism: data.AuthMechanism,
|
|
606
606
|
};
|
|
607
607
|
this.utilService.sendBI(true);
|
|
@@ -1192,6 +1192,7 @@ class SignInComponent {
|
|
|
1192
1192
|
onSubmitEnd = new EventEmitter();
|
|
1193
1193
|
onGoogleAuthResponse = new EventEmitter();
|
|
1194
1194
|
onSubmitGoogleAuth = new EventEmitter();
|
|
1195
|
+
tenantConfigLoaded = new EventEmitter();
|
|
1195
1196
|
googleClick = new EventEmitter();
|
|
1196
1197
|
microsoftClick = new EventEmitter();
|
|
1197
1198
|
appleClick = new EventEmitter();
|
|
@@ -1209,8 +1210,9 @@ class SignInComponent {
|
|
|
1209
1210
|
AccessToken: '',
|
|
1210
1211
|
Email: '',
|
|
1211
1212
|
FirstName: '',
|
|
1212
|
-
LastName: ''
|
|
1213
|
+
LastName: '',
|
|
1213
1214
|
};
|
|
1215
|
+
configData = null;
|
|
1214
1216
|
constructor(fb, server, utilService, envSvc, route) {
|
|
1215
1217
|
this.fb = fb;
|
|
1216
1218
|
this.server = server;
|
|
@@ -1227,12 +1229,12 @@ class SignInComponent {
|
|
|
1227
1229
|
Validators.minLength(5),
|
|
1228
1230
|
]),
|
|
1229
1231
|
});
|
|
1230
|
-
this.apiKey = this.envSvc.environment.
|
|
1232
|
+
this.apiKey = this.envSvc.environment.Tenant;
|
|
1231
1233
|
this.secret = this.envSvc.environment.Secret;
|
|
1232
1234
|
}
|
|
1233
1235
|
async ngOnInit() {
|
|
1234
1236
|
await this.getTenantConfig();
|
|
1235
|
-
this.route.queryParams.subscribe(params => {
|
|
1237
|
+
this.route.queryParams.subscribe((params) => {
|
|
1236
1238
|
this.code = params['code'];
|
|
1237
1239
|
this.type = params['type'];
|
|
1238
1240
|
if (this.code) {
|
|
@@ -1241,14 +1243,23 @@ class SignInComponent {
|
|
|
1241
1243
|
});
|
|
1242
1244
|
}
|
|
1243
1245
|
async getTenantConfig() {
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
this.
|
|
1246
|
+
try {
|
|
1247
|
+
const res = await this.server.get(`Tenant/GetTenantConfigByKey/${this.apiKey}`);
|
|
1248
|
+
this.tenantDetails = res;
|
|
1249
|
+
this.configData = res;
|
|
1250
|
+
this.AuthMechanisms = this.tenantDetails?.AuthMechanisms;
|
|
1251
|
+
if (!this.tenantDetails?.AuthMechanism &&
|
|
1252
|
+
this.tenantDetails?.AuthMechanism !== MechanismType.InApp) {
|
|
1253
|
+
this.showform = false;
|
|
1254
|
+
}
|
|
1255
|
+
else {
|
|
1256
|
+
this.showform = true;
|
|
1257
|
+
}
|
|
1258
|
+
this.tenantConfigLoaded.emit(this.configData);
|
|
1249
1259
|
}
|
|
1250
|
-
|
|
1251
|
-
|
|
1260
|
+
catch (err) {
|
|
1261
|
+
const msg = err;
|
|
1262
|
+
this.tenantConfigLoaded.emit(null);
|
|
1252
1263
|
}
|
|
1253
1264
|
}
|
|
1254
1265
|
checkForm() {
|
|
@@ -1256,11 +1267,11 @@ class SignInComponent {
|
|
|
1256
1267
|
}
|
|
1257
1268
|
async verifyUserDetails() {
|
|
1258
1269
|
if (this.AuthMechanisms !== null && this.apiKey) {
|
|
1259
|
-
const data = this.AuthMechanisms.find(item => item.AuthMechanism.includes(this.type));
|
|
1270
|
+
const data = this.AuthMechanisms.find((item) => item.AuthMechanism.includes(this.type));
|
|
1260
1271
|
const payload = {
|
|
1261
1272
|
AuthCode: this.code,
|
|
1262
|
-
|
|
1263
|
-
AuthMechanism: data.AuthMechanism
|
|
1273
|
+
Tenant: this.apiKey,
|
|
1274
|
+
AuthMechanism: data.AuthMechanism,
|
|
1264
1275
|
};
|
|
1265
1276
|
this.utilService.sendBI(true);
|
|
1266
1277
|
const res = await this.server.post(`Authentication/GetUserDetails`, payload);
|
|
@@ -1274,7 +1285,7 @@ class SignInComponent {
|
|
|
1274
1285
|
AccessToken: result?.AccessToken,
|
|
1275
1286
|
Email: result?.Email,
|
|
1276
1287
|
FirstName: result?.FirstName,
|
|
1277
|
-
LastName: result?.LastName
|
|
1288
|
+
LastName: result?.LastName,
|
|
1278
1289
|
};
|
|
1279
1290
|
this.submit(data.AuthMechanism);
|
|
1280
1291
|
}
|
|
@@ -1288,9 +1299,9 @@ class SignInComponent {
|
|
|
1288
1299
|
MailAddress: '',
|
|
1289
1300
|
Password: '',
|
|
1290
1301
|
LoginType: type,
|
|
1291
|
-
|
|
1302
|
+
Tenant: this.apiKey,
|
|
1292
1303
|
Secrete: this.secret,
|
|
1293
|
-
Token: ''
|
|
1304
|
+
Token: '',
|
|
1294
1305
|
};
|
|
1295
1306
|
switch (type) {
|
|
1296
1307
|
case MechanismType.InApp:
|
|
@@ -1301,7 +1312,7 @@ class SignInComponent {
|
|
|
1301
1312
|
data = {
|
|
1302
1313
|
...data,
|
|
1303
1314
|
MailAddress: this.loginForm.controls['Email'].value,
|
|
1304
|
-
Password: this.loginForm.controls['Password'].value
|
|
1315
|
+
Password: this.loginForm.controls['Password'].value,
|
|
1305
1316
|
};
|
|
1306
1317
|
}
|
|
1307
1318
|
break;
|
|
@@ -1309,14 +1320,14 @@ class SignInComponent {
|
|
|
1309
1320
|
data = {
|
|
1310
1321
|
...data,
|
|
1311
1322
|
MailAddress: this.OauthData?.Email,
|
|
1312
|
-
Token: this.OauthData?.AccessToken
|
|
1323
|
+
Token: this.OauthData?.AccessToken,
|
|
1313
1324
|
};
|
|
1314
1325
|
break;
|
|
1315
1326
|
case MechanismType.MicrosoftAD:
|
|
1316
1327
|
data = {
|
|
1317
1328
|
...data,
|
|
1318
1329
|
MailAddress: this.OauthData?.Email,
|
|
1319
|
-
Token: this.OauthData?.AccessToken
|
|
1330
|
+
Token: this.OauthData?.AccessToken,
|
|
1320
1331
|
};
|
|
1321
1332
|
break;
|
|
1322
1333
|
default:
|
|
@@ -1352,18 +1363,18 @@ class SignInComponent {
|
|
|
1352
1363
|
return {
|
|
1353
1364
|
'background-color': this.bgColor,
|
|
1354
1365
|
'box-shadow': this.boxShadow,
|
|
1355
|
-
|
|
1366
|
+
border: this.border,
|
|
1356
1367
|
'border-radius': this.borderRadius,
|
|
1357
|
-
|
|
1358
|
-
|
|
1368
|
+
color: this.textColor,
|
|
1369
|
+
width: this.width,
|
|
1359
1370
|
'max-width': this.maxWidth,
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1371
|
+
margin: this.margin,
|
|
1372
|
+
height: this.height,
|
|
1373
|
+
padding: this.pd,
|
|
1363
1374
|
};
|
|
1364
1375
|
}
|
|
1365
1376
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInComponent, deps: [{ token: i1$1.FormBuilder }, { token: HttpWebRequestService }, { token: UtilService }, { token: EnvironmentService }, { token: i1$2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
1366
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SignInComponent, selector: "verben-sign-in", inputs: { headlingText: "headlingText", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", customClass: "customClass", headlingClass: "headlingClass", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height", forgetPasswordClass: "forgetPasswordClass", requestAccessClass: "requestAccessClass", createAccountClass: "createAccountClass", createAccountLinkClass: "createAccountLinkClass", forgetPasswordLink: "forgetPasswordLink", createAccountLink: "createAccountLink", requestAccessLink: "requestAccessLink", btnClass: "btnClass", btnBgColor: "btnBgColor", btnColor: "btnColor", btnBorder: "btnBorder", btnBorderRadius: "btnBorderRadius", btnPd: "btnPd", btnText: "btnText", inputLabelColor: "inputLabelColor", inputBgColor: "inputBgColor", inputBorder: "inputBorder", inputBorderRadius: "inputBorderRadius", termsErrorText: "termsErrorText" }, outputs: { formSubmit: "formSubmit", onSubmitEnd: "onSubmitEnd", onGoogleAuthResponse: "onGoogleAuthResponse", onSubmitGoogleAuth: "onSubmitGoogleAuth", googleClick: "googleClick", microsoftClick: "microsoftClick", appleClick: "appleClick" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h2 class=\"{{headlingClass}}\">{{headlingText}}</h2>\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"submit('InApp')\" class=\"flexWrapper\"> \n <div class=\"formWrapper\" *ngIf=\"showform\"> \n <verbena-input\n [label]=\"'Email'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"Email\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div> \n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Password\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n [passwordToggle]=\"true\"\n [passLength]=\"5\"\n [customErrorMessages]=\"{\n password:'Password is required'\n }\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div class=\"pwdWrapper\"> \n <p clas=\"mb-0\"> <a [routerLink]=\"forgetPasswordLink\" class=\"{{forgetPasswordClass}}\">Forgot password</a></p>\n </div>\n </div>\n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n type=\"submit\" \n [disabled]=\"!this.checkForm()\"\n ></lib-button>\n </div>\n <div> \n <p *ngIf=\"requestAccessLink\">\n <a [routerLink]=\"requestAccessLink\" class=\"{{requestAccessClass}}\">Click here to request user access</a>\n </p>\n <div> \n <div *ngIf=\"AuthMechanisms !== null\"> \n <verben-o-auth \n [authMechanisms]=\"AuthMechanisms\"\n ></verben-o-auth>\n </div>\n <p class=\"{{createAccountClass}}\" *ngIf=\"createAccountLink\">\n Don't have an account?\n <a [routerLink]=\"createAccountLink\" class=\"{{createAccountLinkClass}}\">Create an account</a>\n </p>\n </div>\n </div>\n </form>\n </section>\n ", styles: ["a{text-decoration:underline}.flexWrapper{display:flex;flex-direction:column;gap:20px;margin-top:12px}.formWrapper{display:flex;flex-direction:column;gap:20px}.pwdWrapper{display:flex;justify-content:flex-end;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i3.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: OAuthComponent, selector: "verben-o-auth", inputs: ["authMechanisms"], outputs: ["emitMechanismFn"] }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["text", "color", "border", "borderRadius", "bgColor", "width", "pd", "buttonClass", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
1377
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SignInComponent, selector: "verben-sign-in", inputs: { headlingText: "headlingText", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", customClass: "customClass", headlingClass: "headlingClass", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height", forgetPasswordClass: "forgetPasswordClass", requestAccessClass: "requestAccessClass", createAccountClass: "createAccountClass", createAccountLinkClass: "createAccountLinkClass", forgetPasswordLink: "forgetPasswordLink", createAccountLink: "createAccountLink", requestAccessLink: "requestAccessLink", btnClass: "btnClass", btnBgColor: "btnBgColor", btnColor: "btnColor", btnBorder: "btnBorder", btnBorderRadius: "btnBorderRadius", btnPd: "btnPd", btnText: "btnText", inputLabelColor: "inputLabelColor", inputBgColor: "inputBgColor", inputBorder: "inputBorder", inputBorderRadius: "inputBorderRadius", termsErrorText: "termsErrorText" }, outputs: { formSubmit: "formSubmit", onSubmitEnd: "onSubmitEnd", onGoogleAuthResponse: "onGoogleAuthResponse", onSubmitGoogleAuth: "onSubmitGoogleAuth", tenantConfigLoaded: "tenantConfigLoaded", googleClick: "googleClick", microsoftClick: "microsoftClick", appleClick: "appleClick" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h2 class=\"{{headlingClass}}\">{{headlingText}}</h2>\n <form [formGroup]=\"loginForm\" (ngSubmit)=\"submit('InApp')\" class=\"flexWrapper\"> \n <div class=\"formWrapper\" *ngIf=\"showform\"> \n <verbena-input\n [label]=\"'Email'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'email'\"\n formControlName=\"Email\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div> \n <verbena-input\n [label]=\"'Password'\"\n [labelColor]=\"inputLabelColor\"\n [placeHolder]=\"''\"\n [required]=\"true\"\n [type]=\"'password'\"\n formControlName=\"Password\"\n [showBorder]=\"true\"\n [bgColor]=\"inputBgColor\"\n [border]=\"inputBorder\"\n [borderRadius]=\"inputBorderRadius\"\n [showErrorMessage]=\"true\"\n [errorMessageColor]=\"'red'\"\n [errorBorderColor]=\"'red'\"\n [errorPosition]=\"'bottom'\"\n [passwordToggle]=\"true\"\n [passLength]=\"5\"\n [customErrorMessages]=\"{\n password:'Password is required'\n }\"\n class=\"outline-none focus-none\"\n ></verbena-input>\n <div class=\"pwdWrapper\"> \n <p clas=\"mb-0\"> <a [routerLink]=\"forgetPasswordLink\" class=\"{{forgetPasswordClass}}\">Forgot password</a></p>\n </div>\n </div>\n <lib-button \n [buttonClass]=\"btnClass\"\n [color]=\"btnColor\"\n [border]=\"btnBorder\"\n [borderRadius]=\"btnBorderRadius\"\n [bgColor]=\"btnBgColor\"\n [pd]=\"btnPd\"\n [text]=\"btnText\" \n type=\"submit\" \n [disabled]=\"!this.checkForm()\"\n ></lib-button>\n </div>\n <div> \n <p *ngIf=\"requestAccessLink\">\n <a [routerLink]=\"requestAccessLink\" class=\"{{requestAccessClass}}\">Click here to request user access</a>\n </p>\n <div> \n <div *ngIf=\"AuthMechanisms !== null\"> \n <verben-o-auth \n [authMechanisms]=\"AuthMechanisms\"\n ></verben-o-auth>\n </div>\n <p class=\"{{createAccountClass}}\" *ngIf=\"createAccountLink\">\n Don't have an account?\n <a [routerLink]=\"createAccountLink\" class=\"{{createAccountLinkClass}}\">Create an account</a>\n </p>\n </div>\n </div>\n </form>\n </section>\n ", styles: ["a{text-decoration:underline}.flexWrapper{display:flex;flex-direction:column;gap:20px;margin-top:12px}.formWrapper{display:flex;flex-direction:column;gap:20px}.pwdWrapper{display:flex;justify-content:flex-end;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "component", type: i3.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i1$2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: OAuthComponent, selector: "verben-o-auth", inputs: ["authMechanisms"], outputs: ["emitMechanismFn"] }, { kind: "component", type: ButtonComponent, selector: "lib-button", inputs: ["text", "color", "border", "borderRadius", "bgColor", "width", "pd", "buttonClass", "disabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
1367
1378
|
}
|
|
1368
1379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SignInComponent, decorators: [{
|
|
1369
1380
|
type: Component,
|
|
@@ -1440,6 +1451,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
1440
1451
|
type: Output
|
|
1441
1452
|
}], onSubmitGoogleAuth: [{
|
|
1442
1453
|
type: Output
|
|
1454
|
+
}], tenantConfigLoaded: [{
|
|
1455
|
+
type: Output
|
|
1443
1456
|
}], googleClick: [{
|
|
1444
1457
|
type: Output
|
|
1445
1458
|
}], microsoftClick: [{
|
|
@@ -1565,12 +1578,12 @@ class TwoFactorAuthOtpComponent {
|
|
|
1565
1578
|
length = 6;
|
|
1566
1579
|
otpClass = '';
|
|
1567
1580
|
resendOtpData = {
|
|
1568
|
-
MailAddress:
|
|
1569
|
-
Password:
|
|
1570
|
-
LoginType:
|
|
1571
|
-
|
|
1572
|
-
Secrete:
|
|
1573
|
-
RedirectUri:
|
|
1581
|
+
MailAddress: 'verbena@gmail.com',
|
|
1582
|
+
Password: 'Default',
|
|
1583
|
+
LoginType: 'InApp',
|
|
1584
|
+
Tenant: 'PDLTC6',
|
|
1585
|
+
Secrete: '$White360$',
|
|
1586
|
+
RedirectUri: '/auth/otp',
|
|
1574
1587
|
};
|
|
1575
1588
|
User = {
|
|
1576
1589
|
Code: '024',
|
|
@@ -1585,15 +1598,15 @@ class TwoFactorAuthOtpComponent {
|
|
|
1585
1598
|
Role: [],
|
|
1586
1599
|
Tags: [
|
|
1587
1600
|
{
|
|
1588
|
-
Name:
|
|
1589
|
-
IsOptional: true
|
|
1590
|
-
}
|
|
1601
|
+
Name: 'tester',
|
|
1602
|
+
IsOptional: true,
|
|
1603
|
+
},
|
|
1591
1604
|
],
|
|
1592
1605
|
Password: 'Default',
|
|
1593
1606
|
Status: 'Active',
|
|
1594
1607
|
CreatedAt: new Date(),
|
|
1595
1608
|
UpdatedAt: new Date(),
|
|
1596
|
-
DataState: ObjectState.New
|
|
1609
|
+
DataState: ObjectState.New,
|
|
1597
1610
|
};
|
|
1598
1611
|
OtpData = {
|
|
1599
1612
|
User: this.User,
|
|
@@ -1601,7 +1614,7 @@ class TwoFactorAuthOtpComponent {
|
|
|
1601
1614
|
ValidateUrl: '',
|
|
1602
1615
|
Secret: '',
|
|
1603
1616
|
OTP: '',
|
|
1604
|
-
Info: ''
|
|
1617
|
+
Info: '',
|
|
1605
1618
|
};
|
|
1606
1619
|
btnClass = '';
|
|
1607
1620
|
btnBgColor = '#FFE681';
|
|
@@ -1623,7 +1636,7 @@ class TwoFactorAuthOtpComponent {
|
|
|
1623
1636
|
}
|
|
1624
1637
|
ngOnInit() {
|
|
1625
1638
|
this.otpForm = this.fb.group({
|
|
1626
|
-
otpValue: ['', [Validators.required, Validators.minLength(6)]]
|
|
1639
|
+
otpValue: ['', [Validators.required, Validators.minLength(6)]],
|
|
1627
1640
|
});
|
|
1628
1641
|
}
|
|
1629
1642
|
onOtpChange(value) {
|
|
@@ -1634,7 +1647,7 @@ class TwoFactorAuthOtpComponent {
|
|
|
1634
1647
|
async submitData() {
|
|
1635
1648
|
const data = {
|
|
1636
1649
|
User: {
|
|
1637
|
-
...this.User
|
|
1650
|
+
...this.User,
|
|
1638
1651
|
},
|
|
1639
1652
|
Token: this.OtpData.Token,
|
|
1640
1653
|
ValidateUrl: this.OtpData.ValidateUrl,
|
|
@@ -1661,9 +1674,9 @@ class TwoFactorAuthOtpComponent {
|
|
|
1661
1674
|
MailAddress: this.resendOtpData?.MailAddress,
|
|
1662
1675
|
Password: this.resendOtpData?.Password,
|
|
1663
1676
|
LoginType: this.resendOtpData?.LoginType,
|
|
1664
|
-
|
|
1677
|
+
Tenant: this.resendOtpData?.Tenant,
|
|
1665
1678
|
Secrete: this.resendOtpData?.Secrete,
|
|
1666
|
-
RedirectUri: this.resendOtpData?.RedirectUri
|
|
1679
|
+
RedirectUri: this.resendOtpData?.RedirectUri,
|
|
1667
1680
|
};
|
|
1668
1681
|
this.utilService.sendBI(true);
|
|
1669
1682
|
const res = await this.server.post(`Authentication/ResendOTP`, data);
|
|
@@ -1680,14 +1693,14 @@ class TwoFactorAuthOtpComponent {
|
|
|
1680
1693
|
return {
|
|
1681
1694
|
'background-color': this.bgColor,
|
|
1682
1695
|
'box-shadow': this.boxShadow,
|
|
1683
|
-
|
|
1696
|
+
border: this.border,
|
|
1684
1697
|
'border-radius': this.borderRadius,
|
|
1685
|
-
|
|
1686
|
-
|
|
1698
|
+
color: this.textColor,
|
|
1699
|
+
width: this.width,
|
|
1687
1700
|
'max-width': this.maxWidth,
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1701
|
+
margin: this.margin,
|
|
1702
|
+
height: this.height,
|
|
1703
|
+
padding: this.pd,
|
|
1691
1704
|
};
|
|
1692
1705
|
}
|
|
1693
1706
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TwoFactorAuthOtpComponent, deps: [{ token: i1$1.FormBuilder }, { token: HttpWebRequestService }, { token: UtilService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -4024,9 +4037,9 @@ class AuthorizationService {
|
|
|
4024
4037
|
this.auth = auth;
|
|
4025
4038
|
}
|
|
4026
4039
|
get authorizationConfig() {
|
|
4027
|
-
return this.auth;
|
|
4040
|
+
return this.auth ? this.auth : [];
|
|
4028
4041
|
}
|
|
4029
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthorizationService, deps: [{ token: AUTHORIZATION_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4042
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthorizationService, deps: [{ token: AUTHORIZATION_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
4030
4043
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthorizationService, providedIn: 'root' });
|
|
4031
4044
|
}
|
|
4032
4045
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthorizationService, decorators: [{
|
|
@@ -4035,6 +4048,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4035
4048
|
providedIn: 'root',
|
|
4036
4049
|
}]
|
|
4037
4050
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
4051
|
+
type: Optional
|
|
4052
|
+
}, {
|
|
4038
4053
|
type: Inject,
|
|
4039
4054
|
args: [AUTHORIZATION_CONFIG]
|
|
4040
4055
|
}] }] });
|
|
@@ -4145,6 +4160,23 @@ var ChildrenType;
|
|
|
4145
4160
|
ChildrenType["Action"] = "Action";
|
|
4146
4161
|
})(ChildrenType || (ChildrenType = {}));
|
|
4147
4162
|
|
|
4163
|
+
var SearchOperator;
|
|
4164
|
+
(function (SearchOperator) {
|
|
4165
|
+
SearchOperator["And"] = "And";
|
|
4166
|
+
SearchOperator["Or"] = "Or";
|
|
4167
|
+
})(SearchOperator || (SearchOperator = {}));
|
|
4168
|
+
|
|
4169
|
+
var SearchPropertySign;
|
|
4170
|
+
(function (SearchPropertySign) {
|
|
4171
|
+
SearchPropertySign["EQ"] = "EQ";
|
|
4172
|
+
SearchPropertySign["NEQ"] = "NEQ";
|
|
4173
|
+
SearchPropertySign["GT"] = "GT";
|
|
4174
|
+
SearchPropertySign["GTE"] = "GTE";
|
|
4175
|
+
SearchPropertySign["LT"] = "LT";
|
|
4176
|
+
SearchPropertySign["LTE"] = "LTE";
|
|
4177
|
+
SearchPropertySign["LIKE"] = "LIKE";
|
|
4178
|
+
})(SearchPropertySign || (SearchPropertySign = {}));
|
|
4179
|
+
|
|
4148
4180
|
class RoleControlService {
|
|
4149
4181
|
constructor() { }
|
|
4150
4182
|
get roleColumns() {
|
|
@@ -4202,6 +4234,7 @@ class RoleControlComponent {
|
|
|
4202
4234
|
server;
|
|
4203
4235
|
cdr;
|
|
4204
4236
|
fb;
|
|
4237
|
+
envSvc;
|
|
4205
4238
|
visibleColumnDef = [];
|
|
4206
4239
|
styles = baseStyle;
|
|
4207
4240
|
data = [];
|
|
@@ -4213,6 +4246,10 @@ class RoleControlComponent {
|
|
|
4213
4246
|
cardContextHistoryData = [];
|
|
4214
4247
|
cardDataView;
|
|
4215
4248
|
dataView;
|
|
4249
|
+
isGlobal = true;
|
|
4250
|
+
serviceName = null;
|
|
4251
|
+
application = null;
|
|
4252
|
+
sourceData = [];
|
|
4216
4253
|
visibleColumns = [];
|
|
4217
4254
|
filterArray = [
|
|
4218
4255
|
{
|
|
@@ -4240,13 +4277,16 @@ class RoleControlComponent {
|
|
|
4240
4277
|
];
|
|
4241
4278
|
// form: FormGroup;
|
|
4242
4279
|
childPermissionRef = ChildrenType.Permission;
|
|
4243
|
-
|
|
4280
|
+
roleContextsStore = [];
|
|
4281
|
+
roleActionsStore = [];
|
|
4282
|
+
constructor(authService, roleControlSvc, utilService, server, cdr, fb, envSvc) {
|
|
4244
4283
|
this.authService = authService;
|
|
4245
4284
|
this.roleControlSvc = roleControlSvc;
|
|
4246
4285
|
this.utilService = utilService;
|
|
4247
4286
|
this.server = server;
|
|
4248
4287
|
this.cdr = cdr;
|
|
4249
4288
|
this.fb = fb;
|
|
4289
|
+
this.envSvc = envSvc;
|
|
4250
4290
|
this.visibleColumnDef = roleControlSvc.roleColumns;
|
|
4251
4291
|
this.visibleColumns = roleControlSvc.roleColumns.map((col) => ({
|
|
4252
4292
|
checked: true,
|
|
@@ -4260,14 +4300,70 @@ class RoleControlComponent {
|
|
|
4260
4300
|
async ngOnInit() {
|
|
4261
4301
|
const mockData = this.getMockRoles();
|
|
4262
4302
|
const roles = await this.getAllRoles();
|
|
4303
|
+
if (this.isGlobal) {
|
|
4304
|
+
const contextsRes = await this.getSavedContexts();
|
|
4305
|
+
if (contextsRes) {
|
|
4306
|
+
this.roleContextsStore = contextsRes;
|
|
4307
|
+
this.roleActionsStore = contextsRes.flatMap((x) => x.RoleActions);
|
|
4308
|
+
const authConfig = contextsRes.map((x) => {
|
|
4309
|
+
return {
|
|
4310
|
+
Name: x.Name,
|
|
4311
|
+
Actions: x.RoleActions.map((y) => {
|
|
4312
|
+
return y.Name;
|
|
4313
|
+
}),
|
|
4314
|
+
};
|
|
4315
|
+
});
|
|
4316
|
+
this.sourceData = authConfig;
|
|
4317
|
+
}
|
|
4318
|
+
}
|
|
4319
|
+
else {
|
|
4320
|
+
this.sourceData = this.authService.authorizationConfig;
|
|
4321
|
+
}
|
|
4263
4322
|
if (roles) {
|
|
4264
4323
|
this.setUpMappedData(roles);
|
|
4265
4324
|
this.setUpCardData();
|
|
4266
4325
|
}
|
|
4267
4326
|
}
|
|
4327
|
+
async getSavedContexts() {
|
|
4328
|
+
if (!this.isGlobal || !this.serviceName) {
|
|
4329
|
+
return undefined;
|
|
4330
|
+
}
|
|
4331
|
+
var payload = [
|
|
4332
|
+
{
|
|
4333
|
+
PropertyName: 'ServiceName',
|
|
4334
|
+
EntityValue: this.serviceName,
|
|
4335
|
+
Operator: SearchOperator.And,
|
|
4336
|
+
Sign: SearchPropertySign.EQ,
|
|
4337
|
+
},
|
|
4338
|
+
{
|
|
4339
|
+
PropertyName: 'APIKey',
|
|
4340
|
+
EntityValue: this.envSvc.environment.APIKey,
|
|
4341
|
+
Operator: SearchOperator.And,
|
|
4342
|
+
Sign: SearchPropertySign.EQ,
|
|
4343
|
+
},
|
|
4344
|
+
];
|
|
4345
|
+
this.utilService.sendBI(true);
|
|
4346
|
+
const res = await this.server.post(`Application/SearchApplicationRoleContexts/0/0`, payload);
|
|
4347
|
+
this.utilService.sendBI(false);
|
|
4348
|
+
if (res instanceof ErrorResponse) {
|
|
4349
|
+
return undefined;
|
|
4350
|
+
}
|
|
4351
|
+
else {
|
|
4352
|
+
var result = res.Result;
|
|
4353
|
+
return result;
|
|
4354
|
+
}
|
|
4355
|
+
}
|
|
4268
4356
|
async getAllRoles() {
|
|
4357
|
+
// var payload: SearchPropertyValue[] = [
|
|
4358
|
+
// {
|
|
4359
|
+
// PropertyName: 'APIKey',
|
|
4360
|
+
// EntityValue: this.envSvc.environment.APIKey,
|
|
4361
|
+
// Operator: SearchOperator.And,
|
|
4362
|
+
// Sign: SearchPropertySign.EQ
|
|
4363
|
+
// }
|
|
4364
|
+
// ]
|
|
4269
4365
|
this.utilService.sendBI(true);
|
|
4270
|
-
const res = await this.server.get(`Role/
|
|
4366
|
+
const res = await this.server.get(`Role/GetRolesWithParam/${this.envSvc.environment.APIKey}/0/0`);
|
|
4271
4367
|
this.utilService.sendBI(false);
|
|
4272
4368
|
if (res instanceof ErrorResponse) {
|
|
4273
4369
|
return undefined;
|
|
@@ -4277,6 +4373,14 @@ class RoleControlComponent {
|
|
|
4277
4373
|
return result;
|
|
4278
4374
|
}
|
|
4279
4375
|
}
|
|
4376
|
+
getApplicationContextCode(name) {
|
|
4377
|
+
const item = this.roleContextsStore.find((x) => x.Name == name);
|
|
4378
|
+
return item ? item.Code : '';
|
|
4379
|
+
}
|
|
4380
|
+
getApplicationActionCode(name) {
|
|
4381
|
+
const item = this.roleActionsStore.find((x) => x.Name == name);
|
|
4382
|
+
return item ? item.Code : '';
|
|
4383
|
+
}
|
|
4280
4384
|
findParent(cardData, target) {
|
|
4281
4385
|
for (const item of cardData) {
|
|
4282
4386
|
if (item.children.includes(target)) {
|
|
@@ -4307,7 +4411,7 @@ class RoleControlComponent {
|
|
|
4307
4411
|
...x,
|
|
4308
4412
|
id: x.Id,
|
|
4309
4413
|
ChildrenType: ChildrenType.Permission,
|
|
4310
|
-
RoleContexts: this.
|
|
4414
|
+
RoleContexts: this.sourceData.map((config) => {
|
|
4311
4415
|
const existingId = x.RoleContexts.findIndex((y) => y.Name == config.Name);
|
|
4312
4416
|
var context = {
|
|
4313
4417
|
ChildrenType: ChildrenType.Action,
|
|
@@ -4339,6 +4443,11 @@ class RoleControlComponent {
|
|
|
4339
4443
|
? x.RoleContexts[existingId].RoleActions[existingAction]
|
|
4340
4444
|
.ServiceName
|
|
4341
4445
|
: '',
|
|
4446
|
+
APIKey: existingAction > -1
|
|
4447
|
+
? x.RoleContexts[existingId].RoleActions[existingAction]
|
|
4448
|
+
.APIKey
|
|
4449
|
+
: this.envSvc.environment.APIKey,
|
|
4450
|
+
ApplicationRoleAction: this.getApplicationActionCode(action),
|
|
4342
4451
|
};
|
|
4343
4452
|
return act;
|
|
4344
4453
|
}),
|
|
@@ -4352,6 +4461,10 @@ class RoleControlComponent {
|
|
|
4352
4461
|
TenantId: x.TenantId,
|
|
4353
4462
|
Code: existingId > -1 ? x.RoleContexts[existingId].Code : '',
|
|
4354
4463
|
ServiceName: existingId > -1 ? x.RoleContexts[existingId].ServiceName : '',
|
|
4464
|
+
APIKey: existingId > -1
|
|
4465
|
+
? x.RoleContexts[existingId].APIKey
|
|
4466
|
+
: this.envSvc.environment.APIKey,
|
|
4467
|
+
ApplicationRoleContext: this.getApplicationContextCode(config.Name),
|
|
4355
4468
|
};
|
|
4356
4469
|
return context;
|
|
4357
4470
|
}),
|
|
@@ -4481,7 +4594,7 @@ class RoleControlComponent {
|
|
|
4481
4594
|
var mappedRoleSave = {
|
|
4482
4595
|
...roleResult,
|
|
4483
4596
|
ChildrenType: ChildrenType.Permission,
|
|
4484
|
-
RoleContexts: this.
|
|
4597
|
+
RoleContexts: this.sourceData.map((config) => {
|
|
4485
4598
|
const existingId = roleResult.RoleContexts.findIndex((y) => y.Name == config.Name);
|
|
4486
4599
|
var context = {
|
|
4487
4600
|
ChildrenType: ChildrenType.Action,
|
|
@@ -4511,6 +4624,10 @@ class RoleControlComponent {
|
|
|
4511
4624
|
ServiceName: existingAction > -1
|
|
4512
4625
|
? roleResult.RoleContexts[existingId].RoleActions[existingAction].ServiceName
|
|
4513
4626
|
: '',
|
|
4627
|
+
APIKey: existingAction > -1
|
|
4628
|
+
? roleResult.RoleContexts[existingId].RoleActions[existingAction].APIKey
|
|
4629
|
+
: this.envSvc.environment.APIKey,
|
|
4630
|
+
ApplicationRoleAction: this.getApplicationActionCode(action),
|
|
4514
4631
|
};
|
|
4515
4632
|
return act;
|
|
4516
4633
|
}),
|
|
@@ -4528,6 +4645,10 @@ class RoleControlComponent {
|
|
|
4528
4645
|
ServiceName: existingId > -1
|
|
4529
4646
|
? roleResult.RoleContexts[existingId].ServiceName
|
|
4530
4647
|
: '',
|
|
4648
|
+
APIKey: existingId > -1
|
|
4649
|
+
? roleResult.RoleContexts[existingId].APIKey
|
|
4650
|
+
: this.envSvc.environment.APIKey,
|
|
4651
|
+
ApplicationRoleContext: this.getApplicationContextCode(config.Name),
|
|
4531
4652
|
};
|
|
4532
4653
|
return context;
|
|
4533
4654
|
}),
|
|
@@ -4625,7 +4746,7 @@ class RoleControlComponent {
|
|
|
4625
4746
|
var mappedRoleSave = {
|
|
4626
4747
|
...roleResult,
|
|
4627
4748
|
ChildrenType: ChildrenType.Permission,
|
|
4628
|
-
RoleContexts: this.
|
|
4749
|
+
RoleContexts: this.sourceData.map((config) => {
|
|
4629
4750
|
const existingId = roleResult.RoleContexts.findIndex((y) => y.Name == config.Name);
|
|
4630
4751
|
var context = {
|
|
4631
4752
|
ChildrenType: ChildrenType.Action,
|
|
@@ -4655,6 +4776,10 @@ class RoleControlComponent {
|
|
|
4655
4776
|
ServiceName: existingAction > -1
|
|
4656
4777
|
? roleResult.RoleContexts[existingId].RoleActions[existingAction].ServiceName
|
|
4657
4778
|
: '',
|
|
4779
|
+
APIKey: existingAction > -1
|
|
4780
|
+
? roleResult.RoleContexts[existingId].RoleActions[existingAction].APIKey
|
|
4781
|
+
: this.envSvc.environment.APIKey,
|
|
4782
|
+
ApplicationRoleAction: this.getApplicationActionCode(action),
|
|
4658
4783
|
};
|
|
4659
4784
|
return act;
|
|
4660
4785
|
}),
|
|
@@ -4670,6 +4795,10 @@ class RoleControlComponent {
|
|
|
4670
4795
|
ServiceName: existingId > -1
|
|
4671
4796
|
? roleResult.RoleContexts[existingId].ServiceName
|
|
4672
4797
|
: '',
|
|
4798
|
+
APIKey: existingId > -1
|
|
4799
|
+
? roleResult.RoleContexts[existingId].APIKey
|
|
4800
|
+
: this.envSvc.environment.APIKey,
|
|
4801
|
+
ApplicationRoleContext: this.getApplicationContextCode(config.Name),
|
|
4673
4802
|
};
|
|
4674
4803
|
return context;
|
|
4675
4804
|
}),
|
|
@@ -4751,7 +4880,7 @@ class RoleControlComponent {
|
|
|
4751
4880
|
switch (event.key) {
|
|
4752
4881
|
case 'create':
|
|
4753
4882
|
var newMappedRole = {
|
|
4754
|
-
RoleContexts: this.
|
|
4883
|
+
RoleContexts: this.sourceData.map((config) => {
|
|
4755
4884
|
var context = {
|
|
4756
4885
|
ChildrenType: ChildrenType.Action,
|
|
4757
4886
|
Selected: false,
|
|
@@ -4769,6 +4898,8 @@ class RoleControlComponent {
|
|
|
4769
4898
|
TenantId: '',
|
|
4770
4899
|
Code: '',
|
|
4771
4900
|
ServiceName: '',
|
|
4901
|
+
APIKey: this.envSvc.environment.APIKey,
|
|
4902
|
+
ApplicationRoleAction: this.getApplicationActionCode(action),
|
|
4772
4903
|
};
|
|
4773
4904
|
return act;
|
|
4774
4905
|
}),
|
|
@@ -4782,6 +4913,8 @@ class RoleControlComponent {
|
|
|
4782
4913
|
TenantId: '',
|
|
4783
4914
|
Code: '',
|
|
4784
4915
|
ServiceName: '',
|
|
4916
|
+
APIKey: this.envSvc.environment.APIKey,
|
|
4917
|
+
ApplicationRoleContext: this.getApplicationContextCode(config.Name),
|
|
4785
4918
|
};
|
|
4786
4919
|
return context;
|
|
4787
4920
|
}),
|
|
@@ -4795,6 +4928,8 @@ class RoleControlComponent {
|
|
|
4795
4928
|
TenantId: '',
|
|
4796
4929
|
Code: '',
|
|
4797
4930
|
ServiceName: '',
|
|
4931
|
+
Application: this.application ? this.application : undefined,
|
|
4932
|
+
APIKey: this.envSvc.environment.APIKey,
|
|
4798
4933
|
};
|
|
4799
4934
|
const cardData = {
|
|
4800
4935
|
selected: false,
|
|
@@ -4876,6 +5011,7 @@ class RoleControlComponent {
|
|
|
4876
5011
|
TenantId: `Tenant${id + i}`,
|
|
4877
5012
|
Code: '',
|
|
4878
5013
|
ServiceName: '',
|
|
5014
|
+
APIKey: '',
|
|
4879
5015
|
}));
|
|
4880
5016
|
}
|
|
4881
5017
|
mockNames = [
|
|
@@ -4915,6 +5051,8 @@ class RoleControlComponent {
|
|
|
4915
5051
|
TenantId: `Tenant${'context' + i}`,
|
|
4916
5052
|
Code: '',
|
|
4917
5053
|
ServiceName: '',
|
|
5054
|
+
APIKey: '',
|
|
5055
|
+
ApplicationRoleContext: '',
|
|
4918
5056
|
});
|
|
4919
5057
|
usedList.push(randomIndex);
|
|
4920
5058
|
}
|
|
@@ -4941,6 +5079,8 @@ class RoleControlComponent {
|
|
|
4941
5079
|
TenantId: `Tenant${'action' + i}`,
|
|
4942
5080
|
Code: '',
|
|
4943
5081
|
ServiceName: '',
|
|
5082
|
+
APIKey: '',
|
|
5083
|
+
ApplicationRoleAction: '',
|
|
4944
5084
|
});
|
|
4945
5085
|
usedList.push(randomIndex);
|
|
4946
5086
|
}
|
|
@@ -4957,18 +5097,24 @@ class RoleControlComponent {
|
|
|
4957
5097
|
// }
|
|
4958
5098
|
}
|
|
4959
5099
|
}
|
|
4960
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlComponent, deps: [{ token: AuthorizationService }, { token: RoleControlService }, { token: UtilService }, { token: HttpWebRequestService }, { token: i0.ChangeDetectorRef }, { token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
4961
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleControlComponent, selector: "lib-role-control", viewQueries: [{ propertyName: "cardDataView", first: true, predicate: ["vdcv"], descendants: true }, { propertyName: "dataView", first: true, predicate: ["vdv"], descendants: true }], ngImport: i0, template: "<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n <div *ngIf=\"this.cardContextHistory.length > 0\"\n class=\"context-banner py-3 px-4 rounded-xl flex item-center justify-space-between gap-3\">\n <div class=\"flex gap-2 flex-1 context-banner-content\">\n <div class=\"context-content items-center flex gap-2\" *ngFor=\"let context of this.cardContextHistory; index as i\">\n <div class=\"context-main-content-container flex gap-4\">\n <span class=\"context-caption font-bold text-[#404040]\">{{context.data.ChildrenType &&\n context.data.ChildrenType == childPermissionRef? context.data.Name: context.title}}</span>\n <span *ngIf=\"i == this.cardContextHistory.length -1\"\n class=\"context-subcaption\">{{this.getCardSubCaption(context)}}</span>\n </div>\n <div *ngIf=\"i < this.cardContextHistory.length -1\">/</div>\n </div>\n </div>\n <div class=\"flex justify-end\">\n <verben-svg (click)=\"closeDetails()\" class=\"cursor-pointer\" icon=\"close-circle-full\" [width]=\"20\"\n [height]=\"20\"></verben-svg>\n </div>\n </div>\n <verben-data-view #vdv [viewState]=\"{\n isSearch: this.cardContextHistory.length == 0,\n isColumn: this.cardContextHistory.length == 0,\n isFilter: this.cardContextHistory.length == 0,\n isSort: this.cardContextHistory.length == 0,\n isExport: this.cardContextHistory.length == 0,\n isSelect: this.cardContextHistory.length == 0,\n isCreate: this.cardContextHistory.length == 0,\n isToggle:this.cardContextHistory.length == 0,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [isTableView]=\"this.cardContextHistory.length == 0\"\n [selectedColumnCount]=\"0\" [selectedSortCount]=\"0\" [selectedFilterTableCount]=\"0\" (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\">\n <div class=\"mt-2\" table-content>\n <lib-data-table [data]=\"data\" [columns]=\"visibleColumnDef\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value>\n <div class=\"flex gap-4 items-center\">\n <verben-svg (click)=\"editValue(value)\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <span (click)=\"viewDetailsFromTable(value)\" class=\"view-links view-details\">view details</span>\n <span class=\"view-links view-users\">view users</span>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" #vdcv dataId=\"Id\" border=\"5px\" [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\" mg=\"0px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData\">\n <ng-template #card let-item>\n <div (click)=\"roleCardClicked(item)\"\n *ngIf=\"item.data.ChildrenType && item.data.ChildrenType == childPermissionRef\"\n class=\"flex cursor-pointer h-[max-content]\">\n <verben-svg [width]=\"15\" [height]=\"15\" (click)=\"toggleChildren(item); $event.stopPropagation()\"\n [ngClass]=\"item.children && item.children.length?'visible':'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\" [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 h-[100%]\">\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.data.Name\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item); $event.stopPropagation()\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!item.data.ChildrenType || item.data.ChildrenType !== childPermissionRef\"\n class=\"flex h-[max-content]\">\n <verben-svg [ngClass]=\"item.children && item.children.length?'visible':'invisible'\" [width]=\"15\"\n [height]=\"15\" (click)=\"toggleChildren(item)\" class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #cardChild let-item>\n <div class=\"flex h-[max-content]\">\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetailsChild(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n <verben-right-card-data-view *ngIf=\"this.cardContextHistory.length == 0\">\n <ng-template #parent>\n <div *ngIf=\"this.currentData\"\n class=\"flex flex-col px-6 pt-6 pb-9 rounded-xl h-full w-full justify-between relative space-y-4\">\n <verbena-input name=\"Name\" label=\"Name\" (ngModelChange)=\"updateTable()\"\n [(ngModel)]=\"this.currentData.data.Name\" />\n\n <!-- buttons -->\n <div class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"this.saveRole()\" text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\"\n border=\"1px solid #FFE681\"></verbena-button>\n </div>\n </div>\n </div>\n\n </ng-template>\n </verben-right-card-data-view>\n <!-- <verben-right-card-data-view>\n yeshhhhhh\n </verben-right-card-data-view> -->\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2\">\n <!-- <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span> -->\n <button class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column (columnsUpdated)=\"onColumnsUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter [border]=\"'1px solid rgba(212, 160, 7, 1)'\" borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table (selectedOptions)=\"onSortUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n</div>", styles: [".view-links{font-size:14px!important;color:#00f;font-weight:600;cursor:pointer}.view-links:hover{text-decoration:underline;text-underline-offset:3px}.context-banner{background-color:#d4a00773}::ng-deep .childrenPadding{max-height:300px;overflow-y:auto}::ng-deep .toolbar{margin-bottom:15px}::ng-deep .master-only-container{margin:0!important;padding:0!important}::ng-deep .master-detail-container{margin:0!important;padding:0!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowDelete", "selectionChange"] }, { kind: "directive", type: i3.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i3.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "exportCustomClass", "selectCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "columnTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "showColumnChild", "showSortChild", "showFilterChild", "showExportChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i3.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "onItemClick", "onCardChildClick"], outputs: ["loadMoreClick"] }, { kind: "component", type: i3.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "dataId"] }, { kind: "component", type: i3.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i3.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i3.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i3.SortTableComponent, selector: "verben-sort-table", inputs: ["enableDragAndDrop", "sortOptions", "resetText", "displayedOptions", "propertyText", "showMoreText", "sortButtonText", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "containerHeight"], outputs: ["selectedOptions"] }, { kind: "component", type: i3.VisibleColumnComponent, selector: "verben-visible-column", inputs: ["columns", "items", "enableDragAndDrop", "displayedColumns", "showMore", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "closeColumn"], outputs: ["columnsUpdated"] }, { kind: "component", type: i3.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied"] }, { kind: "component", type: i3.DataExportComponent, selector: "lib-data-export", inputs: ["data"], outputs: ["exportDataEvent"] }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i3.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
|
|
5100
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlComponent, deps: [{ token: AuthorizationService }, { token: RoleControlService }, { token: UtilService }, { token: HttpWebRequestService }, { token: i0.ChangeDetectorRef }, { token: i1$1.FormBuilder }, { token: EnvironmentService }], target: i0.ɵɵFactoryTarget.Component });
|
|
5101
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: RoleControlComponent, selector: "lib-role-control", inputs: { isGlobal: "isGlobal", serviceName: "serviceName", application: "application" }, viewQueries: [{ propertyName: "cardDataView", first: true, predicate: ["vdcv"], descendants: true }, { propertyName: "dataView", first: true, predicate: ["vdv"], descendants: true }], ngImport: i0, template: "<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n <div *ngIf=\"this.cardContextHistory.length > 0\"\n class=\"context-banner py-3 px-4 rounded-xl flex item-center justify-space-between gap-3\">\n <div class=\"flex gap-2 flex-1 context-banner-content\">\n <div class=\"context-content items-center flex gap-2\" *ngFor=\"let context of this.cardContextHistory; index as i\">\n <div class=\"context-main-content-container flex gap-4\">\n <span class=\"context-caption font-bold text-[#404040]\">{{context.data.ChildrenType &&\n context.data.ChildrenType == childPermissionRef? context.data.Name: context.title}}</span>\n <span *ngIf=\"i == this.cardContextHistory.length -1\"\n class=\"context-subcaption\">{{this.getCardSubCaption(context)}}</span>\n </div>\n <div *ngIf=\"i < this.cardContextHistory.length -1\">/</div>\n </div>\n </div>\n <div class=\"flex justify-end\">\n <verben-svg (click)=\"closeDetails()\" class=\"cursor-pointer\" icon=\"close-circle-full\" [width]=\"20\"\n [height]=\"20\"></verben-svg>\n </div>\n </div>\n <verben-data-view #vdv [viewState]=\"{\n isSearch: this.cardContextHistory.length == 0,\n isColumn: this.cardContextHistory.length == 0,\n isFilter: this.cardContextHistory.length == 0,\n isSort: this.cardContextHistory.length == 0,\n isExport: this.cardContextHistory.length == 0,\n isSelect: this.cardContextHistory.length == 0,\n isCreate: this.cardContextHistory.length == 0,\n isToggle:this.cardContextHistory.length == 0,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [isTableView]=\"this.cardContextHistory.length == 0\"\n [selectedColumnCount]=\"0\" [selectedSortCount]=\"0\" [selectedFilterTableCount]=\"0\" (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\">\n <div class=\"mt-2\" table-content>\n <lib-data-table [data]=\"data\" [columns]=\"visibleColumnDef\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value>\n <div class=\"flex gap-4 items-center\">\n <verben-svg (click)=\"editValue(value)\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <span (click)=\"viewDetailsFromTable(value)\" class=\"view-links view-details\">view details</span>\n <span class=\"view-links view-users\">view users</span>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" #vdcv dataId=\"Id\" border=\"5px\" [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\" mg=\"0px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData\">\n <ng-template #card let-item>\n <div (click)=\"roleCardClicked(item)\"\n *ngIf=\"item.data.ChildrenType && item.data.ChildrenType == childPermissionRef\"\n class=\"flex cursor-pointer h-[max-content]\">\n <verben-svg [width]=\"15\" [height]=\"15\" (click)=\"toggleChildren(item); $event.stopPropagation()\"\n [ngClass]=\"item.children && item.children.length?'visible':'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\" [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 h-[100%]\">\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.data.Name\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item); $event.stopPropagation()\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!item.data.ChildrenType || item.data.ChildrenType !== childPermissionRef\"\n class=\"flex h-[max-content]\">\n <verben-svg [ngClass]=\"item.children && item.children.length?'visible':'invisible'\" [width]=\"15\"\n [height]=\"15\" (click)=\"toggleChildren(item)\" class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #cardChild let-item>\n <div class=\"flex h-[max-content]\">\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetailsChild(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n <verben-right-card-data-view *ngIf=\"this.cardContextHistory.length == 0\">\n <ng-template #parent>\n <div *ngIf=\"this.currentData\"\n class=\"flex flex-col px-6 pt-6 pb-9 rounded-xl h-full w-full justify-between relative space-y-4\">\n <verbena-input name=\"Name\" label=\"Name\" (ngModelChange)=\"updateTable()\"\n [(ngModel)]=\"this.currentData.data.Name\" />\n\n <!-- buttons -->\n <div class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"this.saveRole()\" text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\"\n border=\"1px solid #FFE681\"></verbena-button>\n </div>\n </div>\n </div>\n\n </ng-template>\n </verben-right-card-data-view>\n <!-- <verben-right-card-data-view>\n yeshhhhhh\n </verben-right-card-data-view> -->\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2\">\n <!-- <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span> -->\n <button class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column (columnsUpdated)=\"onColumnsUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter [border]=\"'1px solid rgba(212, 160, 7, 1)'\" borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table (selectedOptions)=\"onSortUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n</div>", styles: [".view-links{font-size:14px!important;color:#00f;font-weight:600;cursor:pointer}.view-links:hover{text-decoration:underline;text-underline-offset:3px}.context-banner{background-color:#d4a00773}::ng-deep .childrenPadding{max-height:300px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DataTableComponent, selector: "lib-data-table", inputs: ["data", "columns", "styleConfig"], outputs: ["rowEdit", "rowSave", "rowDelete", "selectionChange"] }, { kind: "directive", type: i3.ColumnDirective, selector: "[libColumn]", inputs: ["libColumn"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i3.DataViewComponent, selector: "verben-data-view", inputs: ["buttonClass", "iconClass", "activeIconClass", "columnCustomClass", "filterCustomClass", "sortCustomClass", "exportCustomClass", "selectCustomClass", "zIndex", "createCustomClass", "tableIcon", "cardIcon", "cardClass", "tableClass", "searchKey", "searchValue", "viewState", "searchTemplate", "columnTemplate", "filterTemplate", "sortTemplate", "children", "exportTemplate", "createTemplate", "selectedColumnCount", "selectedSortCount", "selectedFilterTableCount", "inputWidth", "showColumnChild", "showSortChild", "showFilterChild", "showExportChild", "create", "showSelected", "isTableView"], outputs: ["viewChange", "stateChange", "onSearchChange"] }, { kind: "component", type: i3.CardDataViewComponent, selector: "verben-card-data-view", inputs: ["pd", "mg", "lHeight", "rHeight", "rWidth", "lWidth", "textColor", "lbgColor", "rbgColor", "border", "display", "borderRadius", "activeCss", "inActiveCss", "displayAsRow", "cardDataList", "dataId", "totalRecords", "footer", "noOfVisibleChildren", "onItemClick", "onCardChildClick"], outputs: ["loadMoreClick"] }, { kind: "component", type: i3.LeftCardDataComponent, selector: "verben-left-card-data", inputs: ["pd", "mg", "height", "weight", "activeCss", "inActiveCss", "cardDataList", "iconCollapse", "iconExpanded", "parent", "dataId"] }, { kind: "component", type: i3.LeftCardDataViewComponent, selector: "verben-left-card-data-view", inputs: ["cardDataList"] }, { kind: "component", type: i3.RightCardDataViewComponent, selector: "verben-right-card-data-view", inputs: ["parentData", "chilData", "meth"] }, { kind: "component", type: i3.CardDataViewFooterComponent, selector: "verben-card-data-view-footer" }, { kind: "component", type: i3.SortTableComponent, selector: "verben-sort-table", inputs: ["enableDragAndDrop", "sortOptions", "resetText", "displayedOptions", "propertyText", "showMoreText", "sortButtonText", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "containerHeight"], outputs: ["selectedOptions"] }, { kind: "component", type: i3.VisibleColumnComponent, selector: "verben-visible-column", inputs: ["columns", "items", "enableDragAndDrop", "displayedColumns", "showMore", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "closeColumn"], outputs: ["columnsUpdated"] }, { kind: "component", type: i3.TableFilterComponent, selector: "verben-table-filter", inputs: ["filterOptions", "pd", "mg", "height", "width", "bgColor", "boxShadow", "textColor", "primaryColor", "secondaryColor", "tertiaryColor", "border", "borderRadius", "selectWidth", "maxFilterLength", "tooltip"], outputs: ["filtersApplied"] }, { kind: "component", type: i3.DataExportComponent, selector: "lib-data-export", inputs: ["data"], outputs: ["exportDataEvent"] }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i3.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
|
|
4962
5102
|
}
|
|
4963
5103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RoleControlComponent, decorators: [{
|
|
4964
5104
|
type: Component,
|
|
4965
|
-
args: [{ selector: 'lib-role-control', template: "<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n <div *ngIf=\"this.cardContextHistory.length > 0\"\n class=\"context-banner py-3 px-4 rounded-xl flex item-center justify-space-between gap-3\">\n <div class=\"flex gap-2 flex-1 context-banner-content\">\n <div class=\"context-content items-center flex gap-2\" *ngFor=\"let context of this.cardContextHistory; index as i\">\n <div class=\"context-main-content-container flex gap-4\">\n <span class=\"context-caption font-bold text-[#404040]\">{{context.data.ChildrenType &&\n context.data.ChildrenType == childPermissionRef? context.data.Name: context.title}}</span>\n <span *ngIf=\"i == this.cardContextHistory.length -1\"\n class=\"context-subcaption\">{{this.getCardSubCaption(context)}}</span>\n </div>\n <div *ngIf=\"i < this.cardContextHistory.length -1\">/</div>\n </div>\n </div>\n <div class=\"flex justify-end\">\n <verben-svg (click)=\"closeDetails()\" class=\"cursor-pointer\" icon=\"close-circle-full\" [width]=\"20\"\n [height]=\"20\"></verben-svg>\n </div>\n </div>\n <verben-data-view #vdv [viewState]=\"{\n isSearch: this.cardContextHistory.length == 0,\n isColumn: this.cardContextHistory.length == 0,\n isFilter: this.cardContextHistory.length == 0,\n isSort: this.cardContextHistory.length == 0,\n isExport: this.cardContextHistory.length == 0,\n isSelect: this.cardContextHistory.length == 0,\n isCreate: this.cardContextHistory.length == 0,\n isToggle:this.cardContextHistory.length == 0,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [isTableView]=\"this.cardContextHistory.length == 0\"\n [selectedColumnCount]=\"0\" [selectedSortCount]=\"0\" [selectedFilterTableCount]=\"0\" (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\">\n <div class=\"mt-2\" table-content>\n <lib-data-table [data]=\"data\" [columns]=\"visibleColumnDef\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value>\n <div class=\"flex gap-4 items-center\">\n <verben-svg (click)=\"editValue(value)\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <span (click)=\"viewDetailsFromTable(value)\" class=\"view-links view-details\">view details</span>\n <span class=\"view-links view-users\">view users</span>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" #vdcv dataId=\"Id\" border=\"5px\" [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\" mg=\"0px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData\">\n <ng-template #card let-item>\n <div (click)=\"roleCardClicked(item)\"\n *ngIf=\"item.data.ChildrenType && item.data.ChildrenType == childPermissionRef\"\n class=\"flex cursor-pointer h-[max-content]\">\n <verben-svg [width]=\"15\" [height]=\"15\" (click)=\"toggleChildren(item); $event.stopPropagation()\"\n [ngClass]=\"item.children && item.children.length?'visible':'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\" [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 h-[100%]\">\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.data.Name\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item); $event.stopPropagation()\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!item.data.ChildrenType || item.data.ChildrenType !== childPermissionRef\"\n class=\"flex h-[max-content]\">\n <verben-svg [ngClass]=\"item.children && item.children.length?'visible':'invisible'\" [width]=\"15\"\n [height]=\"15\" (click)=\"toggleChildren(item)\" class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #cardChild let-item>\n <div class=\"flex h-[max-content]\">\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetailsChild(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n <verben-right-card-data-view *ngIf=\"this.cardContextHistory.length == 0\">\n <ng-template #parent>\n <div *ngIf=\"this.currentData\"\n class=\"flex flex-col px-6 pt-6 pb-9 rounded-xl h-full w-full justify-between relative space-y-4\">\n <verbena-input name=\"Name\" label=\"Name\" (ngModelChange)=\"updateTable()\"\n [(ngModel)]=\"this.currentData.data.Name\" />\n\n <!-- buttons -->\n <div class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"this.saveRole()\" text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\"\n border=\"1px solid #FFE681\"></verbena-button>\n </div>\n </div>\n </div>\n\n </ng-template>\n </verben-right-card-data-view>\n <!-- <verben-right-card-data-view>\n yeshhhhhh\n </verben-right-card-data-view> -->\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2\">\n <!-- <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span> -->\n <button class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column (columnsUpdated)=\"onColumnsUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter [border]=\"'1px solid rgba(212, 160, 7, 1)'\" borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table (selectedOptions)=\"onSortUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n</div>", styles: [".view-links{font-size:14px!important;color:#00f;font-weight:600;cursor:pointer}.view-links:hover{text-decoration:underline;text-underline-offset:3px}.context-banner{background-color:#d4a00773}::ng-deep .childrenPadding{max-height:300px;overflow-y:auto}::ng-deep .toolbar{margin-bottom:15px}::ng-deep .master-only-container{margin:0!important;padding:0!important}::ng-deep .master-detail-container{margin:0!important;padding:0!important}\n"] }]
|
|
4966
|
-
}], ctorParameters: () => [{ type: AuthorizationService }, { type: RoleControlService }, { type: UtilService }, { type: HttpWebRequestService }, { type: i0.ChangeDetectorRef }, { type: i1$1.FormBuilder }], propDecorators: { cardDataView: [{
|
|
5105
|
+
args: [{ selector: 'lib-role-control', template: "<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n <div *ngIf=\"this.cardContextHistory.length > 0\"\n class=\"context-banner py-3 px-4 rounded-xl flex item-center justify-space-between gap-3\">\n <div class=\"flex gap-2 flex-1 context-banner-content\">\n <div class=\"context-content items-center flex gap-2\" *ngFor=\"let context of this.cardContextHistory; index as i\">\n <div class=\"context-main-content-container flex gap-4\">\n <span class=\"context-caption font-bold text-[#404040]\">{{context.data.ChildrenType &&\n context.data.ChildrenType == childPermissionRef? context.data.Name: context.title}}</span>\n <span *ngIf=\"i == this.cardContextHistory.length -1\"\n class=\"context-subcaption\">{{this.getCardSubCaption(context)}}</span>\n </div>\n <div *ngIf=\"i < this.cardContextHistory.length -1\">/</div>\n </div>\n </div>\n <div class=\"flex justify-end\">\n <verben-svg (click)=\"closeDetails()\" class=\"cursor-pointer\" icon=\"close-circle-full\" [width]=\"20\"\n [height]=\"20\"></verben-svg>\n </div>\n </div>\n <verben-data-view #vdv [viewState]=\"{\n isSearch: this.cardContextHistory.length == 0,\n isColumn: this.cardContextHistory.length == 0,\n isFilter: this.cardContextHistory.length == 0,\n isSort: this.cardContextHistory.length == 0,\n isExport: this.cardContextHistory.length == 0,\n isSelect: this.cardContextHistory.length == 0,\n isCreate: this.cardContextHistory.length == 0,\n isToggle:this.cardContextHistory.length == 0,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [isTableView]=\"this.cardContextHistory.length == 0\"\n [selectedColumnCount]=\"0\" [selectedSortCount]=\"0\" [selectedFilterTableCount]=\"0\" (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\">\n <div class=\"mt-2\" table-content>\n <lib-data-table [data]=\"data\" [columns]=\"visibleColumnDef\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\">\n <ng-container libColumn=\"select\">\n <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n </ng-template>\n <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n let-toggleAllRows=\"toggleAllRows\">\n <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n (change)=\"toggleAllRows()\" />\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"createdAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n <ng-container libColumn=\"updatedAt\">\n <ng-template #cell let-value>\n {{ value | date }}\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-value>\n <div class=\"flex gap-4 items-center\">\n <verben-svg (click)=\"editValue(value)\" icon=\"edit\" [width]=\"15\" [height]=\"15\"\n class=\"cursor-pointer\"></verben-svg>\n <span (click)=\"viewDetailsFromTable(value)\" class=\"view-links view-details\">view details</span>\n <span class=\"view-links view-users\">view users</span>\n </div>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" #vdcv dataId=\"Id\" border=\"5px\" [cardDataList]=\"cardData\"\n rbgColor=\"#f5f6f9\" mg=\"0px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"MailAddress\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData\">\n <ng-template #card let-item>\n <div (click)=\"roleCardClicked(item)\"\n *ngIf=\"item.data.ChildrenType && item.data.ChildrenType == childPermissionRef\"\n class=\"flex cursor-pointer h-[max-content]\">\n <verben-svg [width]=\"15\" [height]=\"15\" (click)=\"toggleChildren(item); $event.stopPropagation()\"\n [ngClass]=\"item.children && item.children.length?'visible':'invisible'\"\n class=\"items-center flex pr-1 cursor-pointer\" [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 h-[100%]\">\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.data.Name\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item); $event.stopPropagation()\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!item.data.ChildrenType || item.data.ChildrenType !== childPermissionRef\"\n class=\"flex h-[max-content]\">\n <verben-svg [ngClass]=\"item.children && item.children.length?'visible':'invisible'\" [width]=\"15\"\n [height]=\"15\" (click)=\"toggleChildren(item)\" class=\"items-center flex pr-1 cursor-pointer\"\n [icon]=\"item.isChildrenExpanded?'minus':'plus'\" />\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetails(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n <ng-template #cardChild let-item>\n <div class=\"flex h-[max-content]\">\n <div class=\"flex w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"py-3 px-4 flex-1 flex gap-2 h-[100%] items-start\">\n <input *ngIf=\"item.data?.Selected != undefined\" [disabled]=\"this.isCheckboxDisabled(item)\"\n type=\"checkbox\" class=\"mt-1 cursor-pointer\" [(ngModel)]=\"item.data.Selected\"\n (click)=\"$event.preventDefault(); this.saveRoleDynamic(item)\" />\n <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n <div class=\"flex flex-col flex-1 min-h-[50px] justify-between h-[100%]\">\n <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n item.title\n }}</h3>\n <span class=\"!text-[10px] font-light text-[#404040] leading-[12.1px]\"\n *ngIf=\"item.children && item.children.length > 0\">\n {{getCardSubCaption(item)}}\n </span>\n </div>\n\n <div *ngIf=\"item.children && item.children.length > 0\" class=\"flex items-end h-[100%]\">\n <p (click)=\"viewDetailsChild(item)\"\n class=\"my-0 underline text-[#3479E9] text-[12px] leading-[16.6px] cursor-pointer font-medium\">\n view details</p>\n </div>\n </div>\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n <verben-right-card-data-view *ngIf=\"this.cardContextHistory.length == 0\">\n <ng-template #parent>\n <div *ngIf=\"this.currentData\"\n class=\"flex flex-col px-6 pt-6 pb-9 rounded-xl h-full w-full justify-between relative space-y-4\">\n <verbena-input name=\"Name\" label=\"Name\" (ngModelChange)=\"updateTable()\"\n [(ngModel)]=\"this.currentData.data.Name\" />\n\n <!-- buttons -->\n <div class=\"flex justify-between bottom-8 left-0 right-0 px-3 pb-2\">\n <verbena-button text=\"Delete\" bgColor=\"#999999\" textColor=\"white\"\n border=\"1px solid #999999\"></verbena-button>\n <div class=\"flex gap-3\">\n <verbena-button (click)=\"vdv.toggleView()\" text=\"Switch To Table\"\n styleType=\"ylw-outline\"></verbena-button>\n <verbena-button (click)=\"this.saveRole()\" text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\"\n border=\"1px solid #FFE681\"></verbena-button>\n </div>\n </div>\n </div>\n\n </ng-template>\n </verben-right-card-data-view>\n <!-- <verben-right-card-data-view>\n yeshhhhhh\n </verben-right-card-data-view> -->\n\n <verben-card-data-view-footer class=\"float-right\">\n <div class=\"flex gap-2\">\n <!-- <span class=\"paginator-text\"\n >{{ cardData.length }} records loaded</span> -->\n <button class=\"load-more\">Load more</button>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <verben-visible-column (columnsUpdated)=\"onColumnsUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" [columns]=\"visibleColumns\"\n [displayedColumns]=\"5\"></verben-visible-column>\n </div>\n <div filter-content>\n <verben-table-filter [border]=\"'1px solid rgba(212, 160, 7, 1)'\" borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <verben-sort-table (selectedOptions)=\"onSortUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [enableDragAndDrop]=\"true\"\n [sortOptions]=\"sortOptions\"></verben-sort-table>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n <div class=\"message-log-button-container flex justify-between\">\n <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n [text]=\"'Delete'\">\n </verbena-button>\n </div>\n</div>", styles: [".view-links{font-size:14px!important;color:#00f;font-weight:600;cursor:pointer}.view-links:hover{text-decoration:underline;text-underline-offset:3px}.context-banner{background-color:#d4a00773}::ng-deep .childrenPadding{max-height:300px;overflow-y:auto}\n"] }]
|
|
5106
|
+
}], ctorParameters: () => [{ type: AuthorizationService }, { type: RoleControlService }, { type: UtilService }, { type: HttpWebRequestService }, { type: i0.ChangeDetectorRef }, { type: i1$1.FormBuilder }, { type: EnvironmentService }], propDecorators: { cardDataView: [{
|
|
4967
5107
|
type: ViewChild,
|
|
4968
5108
|
args: ['vdcv']
|
|
4969
5109
|
}], dataView: [{
|
|
4970
5110
|
type: ViewChild,
|
|
4971
5111
|
args: ['vdv']
|
|
5112
|
+
}], isGlobal: [{
|
|
5113
|
+
type: Input
|
|
5114
|
+
}], serviceName: [{
|
|
5115
|
+
type: Input
|
|
5116
|
+
}], application: [{
|
|
5117
|
+
type: Input
|
|
4972
5118
|
}] } });
|
|
4973
5119
|
|
|
4974
5120
|
class SharedModule {
|