aril 0.1.51 → 0.1.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
1
  export * from './src/keycloak.manager';
2
2
  export * from './src/auth.interceptor';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2tleWNsb2FrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL2tleWNsb2FrLm1hbmFnZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hdXRoLmludGVyY2VwdG9yJztcclxuIl19
3
+ export * from './src/auth.guard';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9hcmlsL2tleWNsb2FrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMva2V5Y2xvYWsubWFuYWdlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2F1dGguaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL3NyYy9hdXRoLmd1YXJkJzsiXX0=
@@ -0,0 +1,52 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { KeycloakAuthGuard } from 'keycloak-angular';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/router";
5
+ import * as i2 from "keycloak-angular";
6
+ export class AuthGuard extends KeycloakAuthGuard {
7
+ constructor(router, keycloak) {
8
+ super(router, keycloak);
9
+ this.router = router;
10
+ this.keycloak = keycloak;
11
+ }
12
+ async isAccessAllowed(route, state) {
13
+ try {
14
+ if (this.keycloak.isTokenExpired(5)) {
15
+ console.log("Token expired, updating token");
16
+ await this.keycloak.updateToken(5);
17
+ }
18
+ }
19
+ catch (error) {
20
+ console.error('Error while updating token', error);
21
+ await this.keycloak.login({
22
+ redirectUri: window.location.origin + state.url
23
+ });
24
+ return false;
25
+ }
26
+ if (!this.authenticated) {
27
+ await this.keycloak.login({
28
+ redirectUri: window.location.origin + state.url
29
+ });
30
+ }
31
+ const requiredRoles = route.data['roles'];
32
+ if (!Array.isArray(requiredRoles) || requiredRoles.length === 0) {
33
+ return true;
34
+ }
35
+ const authorized = requiredRoles.every((role) => this.roles.includes(role));
36
+ if (!authorized) {
37
+ console.error('User not authorized to access this route');
38
+ return false;
39
+ }
40
+ else
41
+ return true;
42
+ }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.KeycloakService }], target: i0.ɵɵFactoryTarget.Injectable }); }
44
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
45
+ }
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthGuard, decorators: [{
47
+ type: Injectable,
48
+ args: [{
49
+ providedIn: 'root'
50
+ }]
51
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.KeycloakService }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwva2V5Y2xvYWsvc3JjL2F1dGguZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFJdEUsTUFBTSxPQUFPLFNBQVUsU0FBUSxpQkFBaUI7SUFDL0MsWUFDNkIsTUFBYyxFQUN2QixRQUF5QjtRQUU1QyxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBSEksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUN2QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtJQUc3QyxDQUFDO0lBQ00sS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ3JGLElBQUksQ0FBQztZQUNKLElBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQztnQkFDbkMsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO2dCQUM3QyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDQSxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ3hCLFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRzthQUNoRCxDQUFDLENBQUM7WUFDSCxPQUFPLEtBQUssQ0FBQztRQUNaLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRzthQUMvQyxDQUFDLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pFLE9BQU8sSUFBSSxDQUFDO1FBQ2IsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztZQUMxRCxPQUFPLEtBQUssQ0FBQztRQUNkLENBQUM7O1lBQU0sT0FBTyxJQUFJLENBQUM7SUFDcEIsQ0FBQzs4R0FuQ1csU0FBUztrSEFBVCxTQUFTLGNBRlQsTUFBTTs7MkZBRU4sU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDWCxVQUFVLEVBQUUsTUFBTTtpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJvdXRlciwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEtleWNsb2FrQXV0aEd1YXJkLCBLZXljbG9ha1NlcnZpY2UgfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0aEd1YXJkIGV4dGVuZHMgS2V5Y2xvYWtBdXRoR3VhcmQge1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG5cdFx0cHJvdGVjdGVkIHJlYWRvbmx5IGtleWNsb2FrOiBLZXljbG9ha1NlcnZpY2VcclxuXHQpIHtcclxuXHRcdHN1cGVyKHJvdXRlciwga2V5Y2xvYWspO1xyXG5cdH1cclxuXHRwdWJsaWMgYXN5bmMgaXNBY2Nlc3NBbGxvd2VkKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0aWYodGhpcy5rZXljbG9hay5pc1Rva2VuRXhwaXJlZCg1KSl7XHJcblx0XHRcdFx0Y29uc29sZS5sb2coXCJUb2tlbiBleHBpcmVkLCB1cGRhdGluZyB0b2tlblwiKTtcclxuXHRcdFx0XHRhd2FpdCB0aGlzLmtleWNsb2FrLnVwZGF0ZVRva2VuKDUpOyBcclxuXHRcdFx0fVxyXG5cdFx0ICB9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdFcnJvciB3aGlsZSB1cGRhdGluZyB0b2tlbicsIGVycm9yKTtcclxuXHRcdFx0YXdhaXQgdGhpcy5rZXljbG9hay5sb2dpbih7XHJcblx0XHRcdCAgcmVkaXJlY3RVcmk6IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyBzdGF0ZS51cmxcclxuXHRcdFx0fSk7XHJcblx0XHRcdHJldHVybiBmYWxzZTsgXHJcblx0XHQgIH1cclxuXHRcdCAgXHJcblx0XHRpZiAoIXRoaXMuYXV0aGVudGljYXRlZCkge1xyXG5cdFx0XHRhd2FpdCB0aGlzLmtleWNsb2FrLmxvZ2luKHtcclxuXHRcdFx0XHRyZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLm9yaWdpbiArIHN0YXRlLnVybFxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHJlcXVpcmVkUm9sZXMgPSByb3V0ZS5kYXRhWydyb2xlcyddO1xyXG5cdFx0aWYgKCFBcnJheS5pc0FycmF5KHJlcXVpcmVkUm9sZXMpIHx8IHJlcXVpcmVkUm9sZXMubGVuZ3RoID09PSAwKSB7XHJcblx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgYXV0aG9yaXplZCA9IHJlcXVpcmVkUm9sZXMuZXZlcnkoKHJvbGUpID0+IHRoaXMucm9sZXMuaW5jbHVkZXMocm9sZSkpO1xyXG5cdFx0aWYgKCFhdXRob3JpemVkKSB7XHJcblx0XHRcdGNvbnNvbGUuZXJyb3IoJ1VzZXIgbm90IGF1dGhvcml6ZWQgdG8gYWNjZXNzIHRoaXMgcm91dGUnKTtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fSBlbHNlIHJldHVybiB0cnVlO1xyXG5cdH1cclxufSJdfQ==
@@ -19,7 +19,7 @@ export class KeycloakManager {
19
19
  globalThis.keycloakService = this.keycloak;
20
20
  break;
21
21
  case KeycloakEventType.OnTokenExpired:
22
- globalThis.keycloakService?.updateToken();
22
+ this.updateTokenIfNeeded();
23
23
  break;
24
24
  case KeycloakEventType.OnAuthError:
25
25
  case KeycloakEventType.OnAuthLogout:
@@ -30,9 +30,21 @@ export class KeycloakManager {
30
30
  }
31
31
  });
32
32
  this.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {
33
- globalThis.keycloakService?.updateToken();
33
+ this.updateTokenIfNeeded();
34
34
  });
35
35
  }
36
+ async updateTokenIfNeeded() {
37
+ try {
38
+ if (this.keycloak.isTokenExpired(10)) { // 10 saniyeden kısa sürede bitecekse yenile
39
+ console.log("Token expired, updating token...");
40
+ await this.keycloak.updateToken(20); // Token süresini uzat
41
+ }
42
+ }
43
+ catch (error) {
44
+ console.error('Token update failed:', error);
45
+ await this.keycloak.login();
46
+ }
47
+ }
36
48
  init(configs) {
37
49
  return this.keycloak.init({ ...this.defaultOptions, config: configs });
38
50
  }
@@ -79,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
79
91
  type: Injectable,
80
92
  args: [{ providedIn: 'root' }]
81
93
  }], ctorParameters: () => [{ type: i1.Router }] });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWsubWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwva2V5Y2xvYWsvc3JjL2tleWNsb2FrLm1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkYsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRzFDLE1BQU0sT0FBTyxlQUFlO0lBQzNCLFlBQW1CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdUJqQixhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRTNDLG1CQUFjLEdBQW9CO1lBQ3pDLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFO1lBQ3pDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUFDO1NBQy9CLENBQUM7UUE1QkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakQsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssaUJBQWlCLENBQUMsT0FBTztvQkFDdkIsVUFBVyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNsRCxNQUFNO2dCQUNQLEtBQUssaUJBQWlCLENBQUMsY0FBYztvQkFDOUIsVUFBVyxDQUFDLGVBQWUsRUFBRSxXQUFXLEVBQUUsQ0FBQztvQkFDakQsTUFBTTtnQkFDUCxLQUFLLGlCQUFpQixDQUFDLFdBQVcsQ0FBQztnQkFDbkMsS0FBSyxpQkFBaUIsQ0FBQyxZQUFZLENBQUM7Z0JBQ3BDLEtBQUssaUJBQWlCLENBQUMsa0JBQWtCO29CQUNsQyxVQUFXLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztvQkFDekMsOEJBQThCO29CQUM5QixNQUFNO1lBQ1IsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxZQUFZLGVBQWUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNyRixVQUFXLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQ2xELENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQVVELElBQUksQ0FBQyxPQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUE4QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxNQUFNLENBQUMsV0FBb0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLHlCQUF5QjtJQUNwRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVksRUFBRSxRQUFpQjtRQUMzQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsWUFBWSxDQUFDLFVBQW9CLEVBQUUsUUFBaUI7UUFDbkQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELFVBQVU7UUFDVCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUFvQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxXQUFXLENBQUMsV0FBb0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZSxDQUFDLFdBQXFCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELFFBQVE7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVc7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFVBQVU7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxPQUFxQjtRQUNyQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDaEQsQ0FBQzs4R0FsRlcsZUFBZTtrSEFBZixlQUFlLGNBREYsTUFBTTs7MkZBQ25CLGVBQWU7a0JBRDNCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBLZXljbG9ha0V2ZW50VHlwZSwgS2V5Y2xvYWtPcHRpb25zLCBLZXljbG9ha1NlcnZpY2UgfSBmcm9tICdrZXljbG9hay1hbmd1bGFyJztcclxuaW1wb3J0IHsgS2V5Y2xvYWtMb2dpbk9wdGlvbnMgfSBmcm9tICdrZXljbG9hay1qcyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEtleWNsb2FrTWFuYWdlciB7XHJcblx0Y29uc3RydWN0b3IocHVibGljIHJvdXRlcjogUm91dGVyKSB7XHJcblx0XHR0aGlzLmtleWNsb2FrLmtleWNsb2FrRXZlbnRzJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcblx0XHRcdHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG5cdFx0XHRcdGNhc2UgS2V5Y2xvYWtFdmVudFR5cGUuT25SZWFkeTpcclxuXHRcdFx0XHRcdCg8YW55Pmdsb2JhbFRoaXMpLmtleWNsb2FrU2VydmljZSA9IHRoaXMua2V5Y2xvYWs7XHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRjYXNlIEtleWNsb2FrRXZlbnRUeXBlLk9uVG9rZW5FeHBpcmVkOlxyXG5cdFx0XHRcdFx0KDxhbnk+Z2xvYmFsVGhpcykua2V5Y2xvYWtTZXJ2aWNlPy51cGRhdGVUb2tlbigpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBLZXljbG9ha0V2ZW50VHlwZS5PbkF1dGhFcnJvcjpcclxuXHRcdFx0XHRjYXNlIEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aExvZ291dDpcclxuXHRcdFx0XHRjYXNlIEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aFJlZnJlc2hFcnJvcjpcclxuXHRcdFx0XHRcdCg8YW55Pmdsb2JhbFRoaXMpLmtleWNsb2FrU2VydmljZSA9IG51bGw7XHJcblx0XHRcdFx0XHQvLyB0aGlzLmtleWNsb2FrLmNsZWFyVG9rZW4oKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdCg8YW55Pmdsb2JhbFRoaXMpLmtleWNsb2FrU2VydmljZT8udXBkYXRlVG9rZW4oKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHJlYWRvbmx5IGtleWNsb2FrID0gaW5qZWN0KEtleWNsb2FrU2VydmljZSk7XHJcblxyXG5cdHByaXZhdGUgZGVmYXVsdE9wdGlvbnM6IEtleWNsb2FrT3B0aW9ucyA9IHtcclxuXHRcdGxvYWRVc2VyUHJvZmlsZUF0U3RhcnRVcDogdHJ1ZSxcclxuXHRcdGluaXRPcHRpb25zOiB7IG9uTG9hZDogJ2xvZ2luLXJlcXVpcmVkJyB9LFxyXG5cdFx0YmVhcmVyRXhjbHVkZWRVcmxzOiBbJy9hc3NldHMnXVxyXG5cdH07XHJcblxyXG5cdGluaXQoY29uZmlnczogYW55KTogUHJvbWlzZTxib29sZWFuPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5pbml0KHsgLi4udGhpcy5kZWZhdWx0T3B0aW9ucywgY29uZmlnOiBjb25maWdzIH0pO1xyXG5cdH1cclxuXHJcblx0bG9naW4ob3B0aW9ucz86IEtleWNsb2FrTG9naW5PcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5sb2dpbihvcHRpb25zKTtcclxuXHR9XHJcblxyXG5cdGxvZ291dChyZWRpcmVjdFVyaT86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsubG9nb3V0KHJlZGlyZWN0VXJpKTsgLy8gd2luZG93LmxvY2F0aW9uLm9yaWdpblxyXG5cdH1cclxuXHJcblx0aXNVc2VySW5Sb2xlKHJvbGU6IHN0cmluZywgcmVzb3VyY2U/OiBzdHJpbmcpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmtleWNsb2FrLmlzVXNlckluUm9sZShyb2xlLCByZXNvdXJjZSk7XHJcblx0fVxyXG5cclxuXHRnZXRVc2VyUm9sZXMocmVhbG1Sb2xlcz86IGJvb2xlYW4sIHJlc291cmNlPzogc3RyaW5nKTogc3RyaW5nW10ge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsuZ2V0VXNlclJvbGVzKHJlYWxtUm9sZXMsIHJlc291cmNlKTtcclxuXHR9XHJcblxyXG5cdGlzTG9nZ2VkSW4oKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5pc0xvZ2dlZEluKCk7XHJcblx0fVxyXG5cclxuXHRpc1Rva2VuRXhwaXJlZChtaW5WYWxpZGl0eT86IG51bWJlcik6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsuaXNUb2tlbkV4cGlyZWQobWluVmFsaWRpdHkpO1xyXG5cdH1cclxuXHJcblx0dXBkYXRlVG9rZW4obWluVmFsaWRpdHk/OiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuXHRcdHJldHVybiB0aGlzLmtleWNsb2FrLnVwZGF0ZVRva2VuKG1pblZhbGlkaXR5KTtcclxuXHR9XHJcblxyXG5cdGxvYWRVc2VyUHJvZmlsZShmb3JjZVJlbG9hZD86IGJvb2xlYW4pOiBQcm9taXNlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsubG9hZFVzZXJQcm9maWxlKGZvcmNlUmVsb2FkKTtcclxuXHR9XHJcblxyXG5cdGdldFRva2VuKCk6IFByb21pc2U8c3RyaW5nPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5nZXRUb2tlbigpO1xyXG5cdH1cclxuXHJcblx0Z2V0VXNlcm5hbWUoKTogc3RyaW5nIHtcclxuXHRcdHJldHVybiB0aGlzLmtleWNsb2FrLmdldFVzZXJuYW1lKCk7XHJcblx0fVxyXG5cclxuXHRjbGVhclRva2VuKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5rZXljbG9hay5jbGVhclRva2VuKCk7XHJcblx0fVxyXG5cclxuXHRhZGRUb2tlblRvSGVhZGVyKGhlYWRlcnM/OiBIdHRwSGVhZGVycyk6IE9ic2VydmFibGU8SHR0cEhlYWRlcnM+IHtcclxuXHRcdHJldHVybiB0aGlzLmtleWNsb2FrLmFkZFRva2VuVG9IZWFkZXIoaGVhZGVycyk7XHJcblx0fVxyXG5cclxuXHRcclxufVxyXG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWsubWFuYWdlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FyaWwva2V5Y2xvYWsvc3JjL2tleWNsb2FrLm1hbmFnZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBRSxpQkFBaUIsRUFBbUIsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkYsT0FBTyxFQUFjLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBRzFDLE1BQU0sT0FBTyxlQUFlO0lBQzNCLFlBQW1CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBdUJqQixhQUFRLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBYzNDLG1CQUFjLEdBQW9CO1lBQ3pDLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFO1lBQ3pDLGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUFDO1NBQy9CLENBQUM7UUF4Q0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDakQsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BCLEtBQUssaUJBQWlCLENBQUMsT0FBTztvQkFDdkIsVUFBVyxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUNsRCxNQUFNO2dCQUNQLEtBQUssaUJBQWlCLENBQUMsY0FBYztvQkFDcEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7b0JBQzNCLE1BQU07Z0JBQ1AsS0FBSyxpQkFBaUIsQ0FBQyxXQUFXLENBQUM7Z0JBQ25DLEtBQUssaUJBQWlCLENBQUMs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UUFDckMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7OEdBOUZXLGVBQWU7a0hBQWYsZUFBZSxjQURGLE1BQU07OzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgS2V5Y2xvYWtFdmVudFR5cGUsIEtleWNsb2FrT3B0aW9ucywgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSAna2V5Y2xvYWstYW5ndWxhcic7XHJcbmltcG9ydCB7IEtleWNsb2FrTG9naW5PcHRpb25zIH0gZnJvbSAna2V5Y2xvYWstanMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBLZXljbG9ha01hbmFnZXIge1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyByb3V0ZXI6IFJvdXRlcikge1xyXG5cdFx0dGhpcy5rZXljbG9hay5rZXljbG9ha0V2ZW50cyQuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG5cdFx0XHRzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuXHRcdFx0XHRjYXNlIEtleWNsb2FrRXZlbnRUeXBlLk9uUmVhZHk6XHJcblx0XHRcdFx0XHQoPGFueT5nbG9iYWxUaGlzKS5rZXljbG9ha1NlcnZpY2UgPSB0aGlzLmtleWNsb2FrO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBLZXljbG9ha0V2ZW50VHlwZS5PblRva2VuRXhwaXJlZDpcclxuXHRcdFx0XHRcdHRoaXMudXBkYXRlVG9rZW5JZk5lZWRlZCgpO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0Y2FzZSBLZXljbG9ha0V2ZW50VHlwZS5PbkF1dGhFcnJvcjpcclxuXHRcdFx0XHRjYXNlIEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aExvZ291dDpcclxuXHRcdFx0XHRjYXNlIEtleWNsb2FrRXZlbnRUeXBlLk9uQXV0aFJlZnJlc2hFcnJvcjpcclxuXHRcdFx0XHRcdCg8YW55Pmdsb2JhbFRoaXMpLmtleWNsb2FrU2VydmljZSA9IG51bGw7XHJcblx0XHRcdFx0XHQvLyB0aGlzLmtleWNsb2FrLmNsZWFyVG9rZW4oKTtcclxuXHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcblx0XHRcdHRoaXMudXBkYXRlVG9rZW5JZk5lZWRlZCgpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVhZG9ubHkga2V5Y2xvYWsgPSBpbmplY3QoS2V5Y2xvYWtTZXJ2aWNlKTtcclxuXHJcblx0cHJpdmF0ZSBhc3luYyB1cGRhdGVUb2tlbklmTmVlZGVkKCkge1xyXG5cdFx0dHJ5IHtcclxuXHRcdFx0aWYgKHRoaXMua2V5Y2xvYWsuaXNUb2tlbkV4cGlyZWQoMTApKSB7IC8vIDEwIHNhbml5ZWRlbiBrxLFzYSBzw7xyZWRlIGJpdGVjZWtzZSB5ZW5pbGVcclxuXHRcdFx0XHRjb25zb2xlLmxvZyhcIlRva2VuIGV4cGlyZWQsIHVwZGF0aW5nIHRva2VuLi4uXCIpO1xyXG5cdFx0XHRcdGF3YWl0IHRoaXMua2V5Y2xvYWsudXBkYXRlVG9rZW4oMjApOyAvLyBUb2tlbiBzw7xyZXNpbmkgdXphdFxyXG5cdFx0XHR9XHJcblx0XHR9IGNhdGNoIChlcnJvcikge1xyXG5cdFx0XHRjb25zb2xlLmVycm9yKCdUb2tlbiB1cGRhdGUgZmFpbGVkOicsIGVycm9yKTtcclxuXHRcdFx0YXdhaXQgdGhpcy5rZXljbG9hay5sb2dpbigpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBkZWZhdWx0T3B0aW9uczogS2V5Y2xvYWtPcHRpb25zID0ge1xyXG5cdFx0bG9hZFVzZXJQcm9maWxlQXRTdGFydFVwOiB0cnVlLFxyXG5cdFx0aW5pdE9wdGlvbnM6IHsgb25Mb2FkOiAnbG9naW4tcmVxdWlyZWQnIH0sXHJcblx0XHRiZWFyZXJFeGNsdWRlZFVybHM6IFsnL2Fzc2V0cyddXHJcblx0fTtcclxuXHJcblx0aW5pdChjb25maWdzOiBhbnkpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuXHRcdHJldHVybiB0aGlzLmtleWNsb2FrLmluaXQoeyAuLi50aGlzLmRlZmF1bHRPcHRpb25zLCBjb25maWc6IGNvbmZpZ3MgfSk7XHJcblx0fVxyXG5cclxuXHRsb2dpbihvcHRpb25zPzogS2V5Y2xvYWtMb2dpbk9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcclxuXHRcdHJldHVybiB0aGlzLmtleWNsb2FrLmxvZ2luKG9wdGlvbnMpO1xyXG5cdH1cclxuXHJcblx0bG9nb3V0KHJlZGlyZWN0VXJpPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5sb2dvdXQocmVkaXJlY3RVcmkpOyAvLyB3aW5kb3cubG9jYXRpb24ub3JpZ2luXHJcblx0fVxyXG5cclxuXHRpc1VzZXJJblJvbGUocm9sZTogc3RyaW5nLCByZXNvdXJjZT86IHN0cmluZyk6IGJvb2xlYW4ge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsuaXNVc2VySW5Sb2xlKHJvbGUsIHJlc291cmNlKTtcclxuXHR9XHJcblxyXG5cdGdldFVzZXJSb2xlcyhyZWFsbVJvbGVzPzogYm9vbGVhbiwgcmVzb3VyY2U/OiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5nZXRVc2VyUm9sZXMocmVhbG1Sb2xlcywgcmVzb3VyY2UpO1xyXG5cdH1cclxuXHJcblx0aXNMb2dnZWRJbigpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLmtleWNsb2FrLmlzTG9nZ2VkSW4oKTtcclxuXHR9XHJcblxyXG5cdGlzVG9rZW5FeHBpcmVkKG1pblZhbGlkaXR5PzogbnVtYmVyKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5pc1Rva2VuRXhwaXJlZChtaW5WYWxpZGl0eSk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVUb2tlbihtaW5WYWxpZGl0eT86IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsudXBkYXRlVG9rZW4obWluVmFsaWRpdHkpO1xyXG5cdH1cclxuXHJcblx0bG9hZFVzZXJQcm9maWxlKGZvcmNlUmVsb2FkPzogYm9vbGVhbik6IFByb21pc2U8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXljbG9hay5sb2FkVXNlclByb2ZpbGUoZm9yY2VSZWxvYWQpO1xyXG5cdH1cclxuXHJcblx0Z2V0VG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuXHRcdHJldHVybiB0aGlzLmtleWNsb2FrLmdldFRva2VuKCk7XHJcblx0fVxyXG5cclxuXHRnZXRVc2VybmFtZSgpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsuZ2V0VXNlcm5hbWUoKTtcclxuXHR9XHJcblxyXG5cdGNsZWFyVG9rZW4oKTogdm9pZCB7XHJcblx0XHR0aGlzLmtleWNsb2FrLmNsZWFyVG9rZW4oKTtcclxuXHR9XHJcblxyXG5cdGFkZFRva2VuVG9IZWFkZXIoaGVhZGVycz86IEh0dHBIZWFkZXJzKTogT2JzZXJ2YWJsZTxIdHRwSGVhZGVycz4ge1xyXG5cdFx0cmV0dXJuIHRoaXMua2V5Y2xvYWsuYWRkVG9rZW5Ub0hlYWRlcihoZWFkZXJzKTtcclxuXHR9XHJcblxyXG5cdFxyXG59XHJcbiJdfQ==
@@ -21,13 +21,13 @@ export class PanelComponent {
21
21
  return this.noPadding();
22
22
  }
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: PanelComponent, isStandalone: true, selector: "aril-panel", inputs: { toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: true, isRequired: false, transformFunction: null }, canFullScreen: { classPropertyName: "canFullScreen", publicName: "canFullScreen", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, noPadding: { classPropertyName: "noPadding", publicName: "noPadding", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.no-padding": "this.noPaddingClass" } }, ngImport: i0, template: "<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n", styles: [".full-screen{position:fixed;inset:0;z-index:99999999;overflow-y:auto;box-sizing:border-box;width:100%;height:100vh;background:#fff}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--muted-foreground);font-size:12px;font-style:normal;font-weight:700;line-height:normal}::ng-deep .panel-icons i{cursor:pointer;width:2rem}.panel-ng-content{padding:0!important}::ng-deep .no-padding .p-panel-content{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: PanelModule }, { kind: "component", type: i1.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: PanelComponent, isStandalone: true, selector: "aril-panel", inputs: { toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: true, isRequired: false, transformFunction: null }, canFullScreen: { classPropertyName: "canFullScreen", publicName: "canFullScreen", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, noPadding: { classPropertyName: "noPadding", publicName: "noPadding", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.no-padding": "this.noPaddingClass" } }, ngImport: i0, template: "<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n", styles: [".full-screen{position:fixed;inset:0;z-index:99999999;overflow-y:auto;box-sizing:border-box;width:100%;height:100vh;background:#fff}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--card-foreground);font-size:13px;font-style:normal;font-weight:700;line-height:normal}::ng-deep .panel-icons i{cursor:pointer;width:2rem}.panel-ng-content{padding:0!important}::ng-deep .no-padding .p-panel-content{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: PanelModule }, { kind: "component", type: i1.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PanelComponent, decorators: [{
27
27
  type: Component,
28
- args: [{ standalone: true, selector: 'aril-panel', imports: [PanelModule, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n", styles: [".full-screen{position:fixed;inset:0;z-index:99999999;overflow-y:auto;box-sizing:border-box;width:100%;height:100vh;background:#fff}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--muted-foreground);font-size:12px;font-style:normal;font-weight:700;line-height:normal}::ng-deep .panel-icons i{cursor:pointer;width:2rem}.panel-ng-content{padding:0!important}::ng-deep .no-padding .p-panel-content{padding:0}\n"] }]
28
+ args: [{ standalone: true, selector: 'aril-panel', imports: [PanelModule, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n", styles: [".full-screen{position:fixed;inset:0;z-index:99999999;overflow-y:auto;box-sizing:border-box;width:100%;height:100vh;background:#fff}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--card-foreground);font-size:13px;font-style:normal;font-weight:700;line-height:normal}::ng-deep .panel-icons i{cursor:pointer;width:2rem}.panel-ng-content{padding:0!important}::ng-deep .no-padding .p-panel-content{padding:0}\n"] }]
29
29
  }], propDecorators: { noPaddingClass: [{
30
30
  type: HostBinding,
31
31
  args: ['class.no-padding']
32
32
  }] } });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9wYW5lbC9zcmMvcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9wYW5lbC9zcmMvcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBVTVDLE1BQU0sT0FBTyxjQUFjO0lBUjNCO1FBU0MsZUFBVSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNyQyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM3QixlQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25DLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFbEMsaUJBQVksR0FBRyxLQUFLLENBQUM7S0FTckI7SUFQQSxnQkFBZ0I7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBcUMsY0FBYztRQUNsRCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQWhCVyxjQUFjO2tHQUFkLGNBQWMsbzhCQ2IzQix5MUNBNENBLGlnQkRsQ1csV0FBVyxnYUFBRSxPQUFPOzsyRkFHbEIsY0FBYztrQkFSMUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUdiLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxtQkFDZCx1QkFBdUIsQ0FBQyxNQUFNOzhCQWdCVixjQUFjO3NCQUFsRCxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wYW5lbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1wYW5lbCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3BhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcGFuZWwuY29tcG9uZW50LmNzcycsXHJcblx0aW1wb3J0czogW1BhbmVsTW9kdWxlLCBOZ0NsYXNzXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFuZWxDb21wb25lbnQge1xyXG5cdHRvZ2dsZWFibGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRjYW5GdWxsU2NyZWVuID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0Y29sbGFwc2VkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHN0eWxlQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRub1BhZGRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdGlzRnVsbFNjcmVlbiA9IGZhbHNlO1xyXG5cclxuXHR0b2dnbGVGdWxsU2NyZWVuKCkge1xyXG5cdFx0dGhpcy5pc0Z1bGxTY3JlZW4gPSAhdGhpcy5pc0Z1bGxTY3JlZW47XHJcblx0fVxyXG5cclxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLm5vLXBhZGRpbmcnKSBnZXQgbm9QYWRkaW5nQ2xhc3MoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5ub1BhZGRpbmcoKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBbbmdDbGFzc109XCJ7ICdmdWxsLXNjcmVlbic6IGlzRnVsbFNjcmVlbiAmJiBjYW5GdWxsU2NyZWVuIH1cIj5cclxuXHQ8cC1wYW5lbFxyXG5cdFx0W3RvZ2dsZWFibGVdPVwidG9nZ2xlYWJsZSgpXCJcclxuXHRcdFtjb2xsYXBzZWRdPVwiY29sbGFwc2VkKClcIlxyXG5cdFx0W2NvbGxhcHNlSWNvbl09XCIncGkgcGktY2hldnJvbi1kb3duJ1wiXHJcblx0XHRbZXhwYW5kSWNvbl09XCIncGkgcGktY2hldnJvbi11cCdcIlxyXG5cdFx0W3N0eWxlQ2xhc3NdPVwic3R5bGVDbGFzcygpXCJcclxuXHRcdD5cclxuXHRcdDwhLS0gaGVhZGVyIC0tPlxyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGVyXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlcl1cIj48L25nLWNvbnRlbnQ+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0XHQ8IS0tIGhlYWRlci10b29scyAtLT5cclxuXHRcdDxuZy10ZW1wbGF0ZSBjbGFzcz1cImZsZXhcIiBwVGVtcGxhdGU9XCJpY29uc1wiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicGFuZWwtaWNvbnMgZmxleFwiPlxyXG5cdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIlt0b29sc11cIj48L25nLWNvbnRlbnQ+XHJcblxyXG5cdFx0XHRcdEBpZiAoY2FuRnVsbFNjcmVlbigpKSB7XHJcblx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRyb2xlPVwiYnV0dG9uXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwaVwiXHJcblx0XHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcclxuXHRcdFx0XHRcdFx0XHQncGktd2luZG93LW1heGltaXplJzogIWlzRnVsbFNjcmVlbixcclxuXHRcdFx0XHRcdFx0XHQncGktd2luZG93LW1pbmltaXplJzogaXNGdWxsU2NyZWVuXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwidG9nZ2xlRnVsbFNjcmVlbigpXCI+PC9pPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRcdDwhLS0gYm9keSAtLT5cclxuXHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltib2R5XVwiIGNsYXNzPVwicGFuZWwtbmctY29udGVudFwiPjwvbmctY29udGVudD5cclxuXHJcblx0XHQ8IS0tIGZvb3RlciAtLT5cclxuXHRcdEBpZiAoc2hvd0Zvb3RlcigpKSB7XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuXHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdH1cclxuXHQ8L3AtcGFuZWw+XHJcbjwvZGl2PlxyXG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9wYW5lbC9zcmMvcGFuZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS9wYW5lbC9zcmMvcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBVTVDLE1BQU0sT0FBTyxjQUFjO0lBUjNCO1FBU0MsZUFBVSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNsQyxrQkFBYSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUNyQyxjQUFTLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUM3QixlQUFVLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ25DLGNBQVMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFbEMsaUJBQVksR0FBRyxLQUFLLENBQUM7S0FTckI7SUFQQSxnQkFBZ0I7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBcUMsY0FBYztRQUNsRCxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQWhCVyxjQUFjO2tHQUFkLGNBQWMsbzhCQ2IzQix5MUNBNENBLGdnQkRsQ1csV0FBVyxnYUFBRSxPQUFPOzsyRkFHbEIsY0FBYztrQkFSMUIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sWUFBWSxXQUdiLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxtQkFDZCx1QkFBdUIsQ0FBQyxNQUFNOzhCQWdCVixjQUFjO3NCQUFsRCxXQUFXO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wYW5lbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC1wYW5lbCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3BhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybDogJy4vcGFuZWwuY29tcG9uZW50LmNzcycsXHJcblx0aW1wb3J0czogW1BhbmVsTW9kdWxlLCBOZ0NsYXNzXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFuZWxDb21wb25lbnQge1xyXG5cdHRvZ2dsZWFibGUgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRjYW5GdWxsU2NyZWVuID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0Y29sbGFwc2VkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cdHN0eWxlQ2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XHJcblx0c2hvd0Zvb3RlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHRub1BhZGRpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcblxyXG5cdGlzRnVsbFNjcmVlbiA9IGZhbHNlO1xyXG5cclxuXHR0b2dnbGVGdWxsU2NyZWVuKCkge1xyXG5cdFx0dGhpcy5pc0Z1bGxTY3JlZW4gPSAhdGhpcy5pc0Z1bGxTY3JlZW47XHJcblx0fVxyXG5cclxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLm5vLXBhZGRpbmcnKSBnZXQgbm9QYWRkaW5nQ2xhc3MoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5ub1BhZGRpbmcoKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBbbmdDbGFzc109XCJ7ICdmdWxsLXNjcmVlbic6IGlzRnVsbFNjcmVlbiAmJiBjYW5GdWxsU2NyZWVuIH1cIj5cclxuXHQ8cC1wYW5lbFxyXG5cdFx0W3RvZ2dsZWFibGVdPVwidG9nZ2xlYWJsZSgpXCJcclxuXHRcdFtjb2xsYXBzZWRdPVwiY29sbGFwc2VkKClcIlxyXG5cdFx0W2NvbGxhcHNlSWNvbl09XCIncGkgcGktY2hldnJvbi1kb3duJ1wiXHJcblx0XHRbZXhwYW5kSWNvbl09XCIncGkgcGktY2hldnJvbi11cCdcIlxyXG5cdFx0W3N0eWxlQ2xhc3NdPVwic3R5bGVDbGFzcygpXCJcclxuXHRcdD5cclxuXHRcdDwhLS0gaGVhZGVyIC0tPlxyXG5cdFx0PG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicGFuZWwtaGVhZGVyXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlcl1cIj48L25nLWNvbnRlbnQ+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0XHQ8IS0tIGhlYWRlci10b29scyAtLT5cclxuXHRcdDxuZy10ZW1wbGF0ZSBjbGFzcz1cImZsZXhcIiBwVGVtcGxhdGU9XCJpY29uc1wiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwicGFuZWwtaWNvbnMgZmxleFwiPlxyXG5cdFx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIlt0b29sc11cIj48L25nLWNvbnRlbnQ+XHJcblxyXG5cdFx0XHRcdEBpZiAoY2FuRnVsbFNjcmVlbigpKSB7XHJcblx0XHRcdFx0XHQ8aVxyXG5cdFx0XHRcdFx0XHRyb2xlPVwiYnV0dG9uXCJcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwaVwiXHJcblx0XHRcdFx0XHRcdFtuZ0NsYXNzXT1cIntcclxuXHRcdFx0XHRcdFx0XHQncGktd2luZG93LW1heGltaXplJzogIWlzRnVsbFNjcmVlbixcclxuXHRcdFx0XHRcdFx0XHQncGktd2luZG93LW1pbmltaXplJzogaXNGdWxsU2NyZWVuXHJcblx0XHRcdFx0XHRcdH1cIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwidG9nZ2xlRnVsbFNjcmVlbigpXCI+PC9pPlxyXG5cdFx0XHRcdH1cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRcdDwhLS0gYm9keSAtLT5cclxuXHRcdDxuZy1jb250ZW50IHNlbGVjdD1cIltib2R5XVwiIGNsYXNzPVwicGFuZWwtbmctY29udGVudFwiPjwvbmctY29udGVudD5cclxuXHJcblx0XHQ8IS0tIGZvb3RlciAtLT5cclxuXHRcdEBpZiAoc2hvd0Zvb3RlcigpKSB7XHJcblx0XHRcdDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuXHRcdFx0XHQ8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPjwvbmctY29udGVudD5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdH1cclxuXHQ8L3AtcGFuZWw+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -2,7 +2,6 @@
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Output, effect, input } from '@angular/core';
3
3
  import { ContextMenuModule } from 'primeng/contextmenu';
4
4
  import { TreeModule } from 'primeng/tree';
5
- import { ButtonComponent } from 'aril/ui/button';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "primeng/tree";
8
7
  import * as i2 from "primeng/contextmenu";
@@ -14,6 +13,7 @@ export class TreeComponent {
14
13
  this.filter = input(true);
15
14
  this.selectionMode = input();
16
15
  this.selectedNode = input(null);
16
+ this.styleClass = input(null);
17
17
  this.expandEvent = new EventEmitter();
18
18
  this.selectionEvent = new EventEmitter();
19
19
  effect(() => {
@@ -21,14 +21,14 @@ export class TreeComponent {
21
21
  });
22
22
  }
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: TreeComponent, isStandalone: true, selector: "aril-tree", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectedNode: { classPropertyName: "selectedNode", publicName: "selectedNode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandEvent: "expandEvent", selectionEvent: "selectionEvent" }, ngImport: i0, template: "<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Geni\u015Flet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n", dependencies: [{ kind: "ngmodule", type: TreeModule }, { kind: "component", type: i1.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "layout", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i2.ContextMenu, selector: "p-contextMenu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "id", "ariaLabel", "ariaLabelledBy", "pressDelay"], outputs: ["onShow", "onHide"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: TreeComponent, isStandalone: true, selector: "aril-tree", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectedNode: { classPropertyName: "selectedNode", publicName: "selectedNode", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandEvent: "expandEvent", selectionEvent: "selectionEvent" }, ngImport: i0, template: "<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Geni\u015Flet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t[styleClass]=\"styleClass()!\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n", dependencies: [{ kind: "ngmodule", type: TreeModule }, { kind: "component", type: i1.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "layout", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i2.ContextMenu, selector: "p-contextMenu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "id", "ariaLabel", "ariaLabelledBy", "pressDelay"], outputs: ["onShow", "onHide"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TreeComponent, decorators: [{
27
27
  type: Component,
28
- args: [{ standalone: true, selector: 'aril-tree', imports: [TreeModule, ContextMenuModule, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Geni\u015Flet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n" }]
28
+ args: [{ standalone: true, selector: 'aril-tree', imports: [TreeModule, ContextMenuModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Geni\u015Flet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t[styleClass]=\"styleClass()!\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n" }]
29
29
  }], ctorParameters: () => [], propDecorators: { expandEvent: [{
30
30
  type: Output
31
31
  }], selectionEvent: [{
32
32
  type: Output
33
33
  }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3RyZWUvc3JjL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90cmVlL3NyYy90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVdqRCxNQUFNLE9BQU8sYUFBYTtJQUN6QjtRQU1BLFNBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFjLENBQUM7UUFDcEMsZ0JBQVcsR0FBRyxLQUFLLEVBQWMsQ0FBQztRQUNsQyxzQkFBaUIsR0FBRyxLQUFLLENBQVMsT0FBTyxDQUFDLENBQUM7UUFDM0MsV0FBTSxHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM5QixrQkFBYSxHQUFHLEtBQUssRUFBa0IsQ0FBQztRQUN4QyxpQkFBWSxHQUFHLEtBQUssQ0FBK0IsSUFBSSxDQUFDLENBQUM7UUFFL0MsZ0JBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBYnJFLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7OEdBTFcsYUFBYTtrR0FBYixhQUFhLDg4QkNsQjFCLGtzQkFnQkEsMkNERFcsVUFBVSw4M0JBQUUsaUJBQWlCOzsyRkFHM0IsYUFBYTtrQkFQekIsU0FBUztpQ0FDRyxJQUFJLFlBQ04sV0FBVyxXQUVaLENBQUMsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxtQkFDeEMsdUJBQXVCLENBQUMsTUFBTTt3REFnQnJDLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE1lbnVJdGVtLCBUcmVlTm9kZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgQ29udGV4dE1lbnVNb2R1bGUgfSBmcm9tICdwcmltZW5nL2NvbnRleHRtZW51JztcclxuaW1wb3J0IHsgVHJlZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvdHJlZSc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdhcmlsL3VpL2J1dHRvbic7XHJcblxyXG50eXBlIFNlbGVjdGlvbk1vZGVzID0gJ211bHRpcGxlJyB8ICdjaGVja2JveCcgfCAnc2luZ2xlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0c2VsZWN0b3I6ICdhcmlsLXRyZWUnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi90cmVlLmNvbXBvbmVudC5odG1sJyxcclxuXHRpbXBvcnRzOiBbVHJlZU1vZHVsZSwgQ29udGV4dE1lbnVNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudF0sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyZWVDb21wb25lbnQge1xyXG5cdGNvbnN0cnVjdG9yKCkge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25Ob2RlcyA9IHRoaXMuc2VsZWN0ZWROb2RlKCk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGRhdGEgPSBpbnB1dC5yZXF1aXJlZDxUcmVlTm9kZVtdPigpO1xyXG5cdGNvbnRleHRNZW51ID0gaW5wdXQ8TWVudUl0ZW1bXT4oKTtcclxuXHRmaWx0ZXJQbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oJ0FyYW1hJyk7XHJcblx0ZmlsdGVyID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XHJcblx0c2VsZWN0aW9uTW9kZSA9IGlucHV0PFNlbGVjdGlvbk1vZGVzPigpO1xyXG5cdHNlbGVjdGVkTm9kZSA9IGlucHV0PFRyZWVOb2RlIHwgVHJlZU5vZGVbXSB8IG51bGw+KG51bGwpO1xyXG5cclxuXHRAT3V0cHV0KCkgZXhwYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjx1bmtub3duPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgc2VsZWN0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cdHNlbGVjdGlvbk5vZGVzITogVHJlZU5vZGUgfCBUcmVlTm9kZVtdIHwgbnVsbDtcclxuXHJcblx0Ly8gaXNFeHBlbmRlZCA9IGZhbHNlO1xyXG5cdC8vIHRvZ2dsZVRyZWUoKSB7XHJcblx0Ly8gXHR0aGlzLmlzRXhwZW5kZWQgPSAhdGhpcy5pc0V4cGVuZGVkO1xyXG5cdC8vIFx0dGhpcy5leHBhbmRSZWN1cnNpdmUodGhpcy5kYXRhKCkpO1xyXG5cdC8vIH1cclxuXHJcblx0Ly8gZXhwYW5kUmVjdXJzaXZlKG5vZGU6IFRyZWVOb2RlW10pIHtcclxuXHQvLyBcdG5vZGUuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG5cdC8vIFx0XHRpZiAobm9kZS5jaGlsZHJlbikge1xyXG5cdC8vIFx0XHRcdG5vZGUuZXhwYW5kZWQgPSB0aGlzLmlzRXhwZW5kZWQ7XHJcblx0Ly8gXHRcdFx0dGhpcy5leHBhbmRSZWN1cnNpdmUobm9kZS5jaGlsZHJlbik7XHJcblx0Ly8gXHRcdH1cclxuXHQvLyBcdH0pO1xyXG5cdC8vIH1cclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcblx0PGFyaWwtYnV0dG9uIFtsYWJlbF09XCJpc0V4cGVuZGVkID8gJ0RhcmFsdCcgOiAnR2VuacWfbGV0J1wiIHNpemU9XCJzbVwiIFtjb2xvcl09XCJpc0V4cGVuZGVkID8gJ3ByaW1hcnknIDond2FybmluZydcIiAoY2xpY2tFdmVudCk9XCJ0b2dnbGVUcmVlKClcIj48L2FyaWwtYnV0dG9uPlxyXG48L2Rpdj4gLS0+XHJcbjxwLXRyZWVcclxuXHRbdmFsdWVdPVwiZGF0YSgpXCJcclxuXHRbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlKClcIlxyXG5cdFsoc2VsZWN0aW9uKV09XCJzZWxlY3Rpb25Ob2Rlc1wiXHJcblx0W2NvbnRleHRNZW51XT1cImNvbnRleHRNZW51UmVmXCJcclxuXHRbZmlsdGVyXT1cImZpbHRlcigpXCJcclxuXHRmaWx0ZXJNb2RlPVwibGVuaWVudFwiXHJcblx0ZmlsdGVyQnk9XCJsYWJlbFwiXHJcblx0W2ZpbHRlclBsYWNlaG9sZGVyXT1cImZpbHRlclBsYWNlaG9sZGVyKClcIlxyXG5cdChvbk5vZGVFeHBhbmQpPVwiZXhwYW5kRXZlbnQuZW1pdCgkZXZlbnQubm9kZSlcIlxyXG5cdChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uRXZlbnQuZW1pdChzZWxlY3Rpb25Ob2RlcylcIj5cclxuPC9wLXRyZWU+XHJcbjxwLWNvbnRleHRNZW51ICNjb250ZXh0TWVudVJlZiBbbW9kZWxdPVwiY29udGV4dE1lbnUoKVwiPjwvcC1jb250ZXh0TWVudT5cclxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3VpL3RyZWUvc3JjL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC91aS90cmVlL3NyYy90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBVzFDLE1BQU0sT0FBTyxhQUFhO0lBQ3pCO1FBTUEsU0FBSSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWMsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLEtBQUssRUFBYyxDQUFDO1FBQ2xDLHNCQUFpQixHQUFHLEtBQUssQ0FBUyxPQUFPLENBQUMsQ0FBQztRQUMzQyxXQUFNLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzlCLGtCQUFhLEdBQUcsS0FBSyxFQUFrQixDQUFDO1FBQ3hDLGlCQUFZLEdBQUcsS0FBSyxDQUErQixJQUFJLENBQUMsQ0FBQztRQUN6RCxlQUFVLEdBQUcsS0FBSyxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUU5QixnQkFBVyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELG1CQUFjLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFkckUsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNYLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs4R0FMVyxhQUFhO2tHQUFiLGFBQWEscWxDQ2hCMUIsc3VCQWlCQSwyQ0RKVyxVQUFVLDgzQkFBRSxpQkFBaUI7OzJGQUczQixhQUFhO2tCQVB6QixTQUFTO2lDQUNHLElBQUksWUFDTixXQUFXLFdBRVosQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsbUJBQ3ZCLHVCQUF1QixDQUFDLE1BQU07d0RBaUJyQyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBlZmZlY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBNZW51SXRlbSwgVHJlZU5vZGUgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IENvbnRleHRNZW51TW9kdWxlIH0gZnJvbSAncHJpbWVuZy9jb250ZXh0bWVudSc7XHJcbmltcG9ydCB7IFRyZWVNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RyZWUnO1xyXG5cclxudHlwZSBTZWxlY3Rpb25Nb2RlcyA9ICdtdWx0aXBsZScgfCAnY2hlY2tib3gnIHwgJ3NpbmdsZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzdGFuZGFsb25lOiB0cnVlLFxyXG5cdHNlbGVjdG9yOiAnYXJpbC10cmVlJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vdHJlZS5jb21wb25lbnQuaHRtbCcsXHJcblx0aW1wb3J0czogW1RyZWVNb2R1bGUsIENvbnRleHRNZW51TW9kdWxlXSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCB7XHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHR0aGlzLnNlbGVjdGlvbk5vZGVzID0gdGhpcy5zZWxlY3RlZE5vZGUoKTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0ZGF0YSA9IGlucHV0LnJlcXVpcmVkPFRyZWVOb2RlW10+KCk7XHJcblx0Y29udGV4dE1lbnUgPSBpbnB1dDxNZW51SXRlbVtdPigpO1xyXG5cdGZpbHRlclBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPignQXJhbWEnKTtcclxuXHRmaWx0ZXIgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHRzZWxlY3Rpb25Nb2RlID0gaW5wdXQ8U2VsZWN0aW9uTW9kZXM+KCk7XHJcblx0c2VsZWN0ZWROb2RlID0gaW5wdXQ8VHJlZU5vZGUgfCBUcmVlTm9kZVtdIHwgbnVsbD4obnVsbCk7XHJcblx0c3R5bGVDbGFzcyA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xyXG5cclxuXHRAT3V0cHV0KCkgZXhwYW5kRXZlbnQ6IEV2ZW50RW1pdHRlcjx1bmtub3duPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHRAT3V0cHV0KCkgc2VsZWN0aW9uRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5cdHNlbGVjdGlvbk5vZGVzITogVHJlZU5vZGUgfCBUcmVlTm9kZVtdIHwgbnVsbDtcclxuXHJcblx0Ly8gaXNFeHBlbmRlZCA9IGZhbHNlO1xyXG5cdC8vIHRvZ2dsZVRyZWUoKSB7XHJcblx0Ly8gXHR0aGlzLmlzRXhwZW5kZWQgPSAhdGhpcy5pc0V4cGVuZGVkO1xyXG5cdC8vIFx0dGhpcy5leHBhbmRSZWN1cnNpdmUodGhpcy5kYXRhKCkpO1xyXG5cdC8vIH1cclxuXHJcblx0Ly8gZXhwYW5kUmVjdXJzaXZlKG5vZGU6IFRyZWVOb2RlW10pIHtcclxuXHQvLyBcdG5vZGUuZm9yRWFjaCgobm9kZSkgPT4ge1xyXG5cdC8vIFx0XHRpZiAobm9kZS5jaGlsZHJlbikge1xyXG5cdC8vIFx0XHRcdG5vZGUuZXhwYW5kZWQgPSB0aGlzLmlzRXhwZW5kZWQ7XHJcblx0Ly8gXHRcdFx0dGhpcy5leHBhbmRSZWN1cnNpdmUobm9kZS5jaGlsZHJlbik7XHJcblx0Ly8gXHRcdH1cclxuXHQvLyBcdH0pO1xyXG5cdC8vIH1cclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcblx0PGFyaWwtYnV0dG9uIFtsYWJlbF09XCJpc0V4cGVuZGVkID8gJ0RhcmFsdCcgOiAnR2VuacWfbGV0J1wiIHNpemU9XCJzbVwiIFtjb2xvcl09XCJpc0V4cGVuZGVkID8gJ3ByaW1hcnknIDond2FybmluZydcIiAoY2xpY2tFdmVudCk9XCJ0b2dnbGVUcmVlKClcIj48L2FyaWwtYnV0dG9uPlxyXG48L2Rpdj4gLS0+XHJcbjxwLXRyZWVcclxuXHRbdmFsdWVdPVwiZGF0YSgpXCJcclxuXHRbc2VsZWN0aW9uTW9kZV09XCJzZWxlY3Rpb25Nb2RlKClcIlxyXG5cdFsoc2VsZWN0aW9uKV09XCJzZWxlY3Rpb25Ob2Rlc1wiXHJcblx0W2NvbnRleHRNZW51XT1cImNvbnRleHRNZW51UmVmXCJcclxuXHRbZmlsdGVyXT1cImZpbHRlcigpXCJcclxuXHRmaWx0ZXJNb2RlPVwibGVuaWVudFwiXHJcblx0ZmlsdGVyQnk9XCJsYWJlbFwiXHJcblx0W2ZpbHRlclBsYWNlaG9sZGVyXT1cImZpbHRlclBsYWNlaG9sZGVyKClcIlxyXG5cdFtzdHlsZUNsYXNzXT1cInN0eWxlQ2xhc3MoKSFcIlxyXG5cdChvbk5vZGVFeHBhbmQpPVwiZXhwYW5kRXZlbnQuZW1pdCgkZXZlbnQubm9kZSlcIlxyXG5cdChzZWxlY3Rpb25DaGFuZ2UpPVwic2VsZWN0aW9uRXZlbnQuZW1pdChzZWxlY3Rpb25Ob2RlcylcIj5cclxuPC9wLXRyZWU+XHJcbjxwLWNvbnRleHRNZW51ICNjb250ZXh0TWVudVJlZiBbbW9kZWxdPVwiY29udGV4dE1lbnUoKVwiPjwvcC1jb250ZXh0TWVudT5cclxuIl19
@@ -2,7 +2,8 @@ import * as i0 from '@angular/core';
2
2
  import { inject, Injectable } from '@angular/core';
3
3
  import * as i1 from '@angular/router';
4
4
  import { NavigationStart } from '@angular/router';
5
- import { KeycloakService, KeycloakEventType } from 'keycloak-angular';
5
+ import * as i2 from 'keycloak-angular';
6
+ import { KeycloakService, KeycloakEventType, KeycloakAuthGuard } from 'keycloak-angular';
6
7
  import { filter } from 'rxjs';
7
8
  import { Apps } from 'aril/boot/config/apps';
8
9
 
@@ -21,7 +22,7 @@ class KeycloakManager {
21
22
  globalThis.keycloakService = this.keycloak;
22
23
  break;
23
24
  case KeycloakEventType.OnTokenExpired:
24
- globalThis.keycloakService?.updateToken();
25
+ this.updateTokenIfNeeded();
25
26
  break;
26
27
  case KeycloakEventType.OnAuthError:
27
28
  case KeycloakEventType.OnAuthLogout:
@@ -32,9 +33,21 @@ class KeycloakManager {
32
33
  }
33
34
  });
34
35
  this.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {
35
- globalThis.keycloakService?.updateToken();
36
+ this.updateTokenIfNeeded();
36
37
  });
37
38
  }
39
+ async updateTokenIfNeeded() {
40
+ try {
41
+ if (this.keycloak.isTokenExpired(10)) { // 10 saniyeden kısa sürede bitecekse yenile
42
+ console.log("Token expired, updating token...");
43
+ await this.keycloak.updateToken(20); // Token süresini uzat
44
+ }
45
+ }
46
+ catch (error) {
47
+ console.error('Token update failed:', error);
48
+ await this.keycloak.login();
49
+ }
50
+ }
38
51
  init(configs) {
39
52
  return this.keycloak.init({ ...this.defaultOptions, config: configs });
40
53
  }
@@ -168,9 +181,56 @@ const authInterceptor = (req, next) => {
168
181
  return next(authReq);
169
182
  };
170
183
 
184
+ class AuthGuard extends KeycloakAuthGuard {
185
+ constructor(router, keycloak) {
186
+ super(router, keycloak);
187
+ this.router = router;
188
+ this.keycloak = keycloak;
189
+ }
190
+ async isAccessAllowed(route, state) {
191
+ try {
192
+ if (this.keycloak.isTokenExpired(5)) {
193
+ console.log("Token expired, updating token");
194
+ await this.keycloak.updateToken(5);
195
+ }
196
+ }
197
+ catch (error) {
198
+ console.error('Error while updating token', error);
199
+ await this.keycloak.login({
200
+ redirectUri: window.location.origin + state.url
201
+ });
202
+ return false;
203
+ }
204
+ if (!this.authenticated) {
205
+ await this.keycloak.login({
206
+ redirectUri: window.location.origin + state.url
207
+ });
208
+ }
209
+ const requiredRoles = route.data['roles'];
210
+ if (!Array.isArray(requiredRoles) || requiredRoles.length === 0) {
211
+ return true;
212
+ }
213
+ const authorized = requiredRoles.every((role) => this.roles.includes(role));
214
+ if (!authorized) {
215
+ console.error('User not authorized to access this route');
216
+ return false;
217
+ }
218
+ else
219
+ return true;
220
+ }
221
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.KeycloakService }], target: i0.ɵɵFactoryTarget.Injectable }); }
222
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
223
+ }
224
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AuthGuard, decorators: [{
225
+ type: Injectable,
226
+ args: [{
227
+ providedIn: 'root'
228
+ }]
229
+ }], ctorParameters: () => [{ type: i1.Router }, { type: i2.KeycloakService }] });
230
+
171
231
  /**
172
232
  * Generated bundle index. Do not edit.
173
233
  */
174
234
 
175
- export { KeycloakManager, authInterceptor };
235
+ export { AuthGuard, KeycloakManager, authInterceptor };
176
236
  //# sourceMappingURL=aril-keycloak.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"aril-keycloak.mjs","sources":["../../projects/aril/keycloak/src/keycloak.manager.ts","../../projects/aril/keycloak/src/auth.interceptor.ts","../../projects/aril/keycloak/aril-keycloak.ts"],"sourcesContent":["import { HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\nimport { KeycloakEventType, KeycloakOptions, KeycloakService } from 'keycloak-angular';\r\nimport { KeycloakLoginOptions } from 'keycloak-js';\r\nimport { Observable, filter } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class KeycloakManager {\r\n\tconstructor(public router: Router) {\r\n\t\tthis.keycloak.keycloakEvents$.subscribe((event) => {\r\n\t\t\tswitch (event.type) {\r\n\t\t\t\tcase KeycloakEventType.OnReady:\r\n\t\t\t\t\t(<any>globalThis).keycloakService = this.keycloak;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase KeycloakEventType.OnTokenExpired:\r\n\t\t\t\t\t(<any>globalThis).keycloakService?.updateToken();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase KeycloakEventType.OnAuthError:\r\n\t\t\t\tcase KeycloakEventType.OnAuthLogout:\r\n\t\t\t\tcase KeycloakEventType.OnAuthRefreshError:\r\n\t\t\t\t\t(<any>globalThis).keycloakService = null;\r\n\t\t\t\t\t// this.keycloak.clearToken();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {\r\n\t\t\t(<any>globalThis).keycloakService?.updateToken();\r\n\t\t});\r\n\t}\r\n\r\n\tpublic readonly keycloak = inject(KeycloakService);\r\n\r\n\tprivate defaultOptions: KeycloakOptions = {\r\n\t\tloadUserProfileAtStartUp: true,\r\n\t\tinitOptions: { onLoad: 'login-required' },\r\n\t\tbearerExcludedUrls: ['/assets']\r\n\t};\r\n\r\n\tinit(configs: any): Promise<boolean> {\r\n\t\treturn this.keycloak.init({ ...this.defaultOptions, config: configs });\r\n\t}\r\n\r\n\tlogin(options?: KeycloakLoginOptions): Promise<void> {\r\n\t\treturn this.keycloak.login(options);\r\n\t}\r\n\r\n\tlogout(redirectUri?: string): Promise<void> {\r\n\t\treturn this.keycloak.logout(redirectUri); // window.location.origin\r\n\t}\r\n\r\n\tisUserInRole(role: string, resource?: string): boolean {\r\n\t\treturn this.keycloak.isUserInRole(role, resource);\r\n\t}\r\n\r\n\tgetUserRoles(realmRoles?: boolean, resource?: string): string[] {\r\n\t\treturn this.keycloak.getUserRoles(realmRoles, resource);\r\n\t}\r\n\r\n\tisLoggedIn(): boolean {\r\n\t\treturn this.keycloak.isLoggedIn();\r\n\t}\r\n\r\n\tisTokenExpired(minValidity?: number): boolean {\r\n\t\treturn this.keycloak.isTokenExpired(minValidity);\r\n\t}\r\n\r\n\tupdateToken(minValidity?: number): Promise<boolean> {\r\n\t\treturn this.keycloak.updateToken(minValidity);\r\n\t}\r\n\r\n\tloadUserProfile(forceReload?: boolean): Promise<any> {\r\n\t\treturn this.keycloak.loadUserProfile(forceReload);\r\n\t}\r\n\r\n\tgetToken(): Promise<string> {\r\n\t\treturn this.keycloak.getToken();\r\n\t}\r\n\r\n\tgetUsername(): string {\r\n\t\treturn this.keycloak.getUsername();\r\n\t}\r\n\r\n\tclearToken(): void {\r\n\t\tthis.keycloak.clearToken();\r\n\t}\r\n\r\n\taddTokenToHeader(headers?: HttpHeaders): Observable<HttpHeaders> {\r\n\t\treturn this.keycloak.addTokenToHeader(headers);\r\n\t}\r\n\r\n\t\r\n}\r\n","import { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\nconst getCurrentAppName = (host: string, mf: string) => {\r\n\tlet appName = '';\r\n\tif (host) {\r\n\t\tswitch (host) {\r\n\t\t\tcase Apps.YEAP:\r\n\t\t\t\tappName = Apps.YEAP;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Apps.LENA:\r\n\t\t\t\tappName = Apps.LENA;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Apps.THOR:\r\n\t\t\t\tappName = Apps.THOR;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t} else {\r\n\t\tswitch (mf) {\r\n\t\t\tcase Apps.HES:\r\n\t\t\tcase Apps.CTS:\r\n\t\t\tcase Apps.SIS:\r\n\t\t\t\tappName = Apps.LENA;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Apps.CRM:\r\n\t\t\tcase Apps.BILLING:\r\n\t\t\tcase Apps.PAYMENT:\r\n\t\t\tcase Apps.WDM:\r\n\t\t\tcase Apps.MNG:\r\n\t\t\t\tappName = Apps.THOR;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Apps.MW:\r\n\t\t\t\tappName = Apps.YEAP;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tappName = Apps.YEAP;\r\n\t\t}\r\n\t}\r\n\treturn appName;\r\n};\r\n\r\nconst getAppHeader = (appName: string) => {\r\n\tlet appHeader = {};\r\n\tswitch (appName) {\r\n\t\tcase Apps.YEAP:\r\n\t\t\tappHeader = {\r\n\t\t\t\t\"x-yeap-application\": \"yeap\",\r\n\t\t\t\t\"x-application\": \"yeap\",\r\n\t\t\t\t\"x-module\": \"yeap-fe\"\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t\tcase Apps.LENA:\r\n\t\t\tappHeader = {\r\n\t\t\t\t\"x-yeap-application\": \"lena\",\r\n\t\t\t\t\"x-application\": \"lena\",\r\n\t\t\t\t\"x-module\": \"lena-fe\"\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t\tcase Apps.THOR:\r\n\t\t\tappHeader = {\r\n\t\t\t\t\"x-yeap-application\": \"thor\",\r\n\t\t\t\t\"x-application\": \"thor\",\r\n\t\t\t\t\"x-module\": \"thor-fe\"\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t}\r\n\treturn appHeader;\r\n};\r\n\r\nconst getCsrfToken = (): string | undefined => {\r\n\treturn document.cookie\r\n\t .split('; ')\r\n\t .find(row => row.startsWith('csrf_token='))\r\n\t ?.split('=')[1];\r\n };\r\n\r\nexport const authInterceptor: HttpInterceptorFn = (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\r\n\tconst token = (<any>globalThis).keycloakService?._instance?.token;\r\n\tconst currentApp = getCurrentAppName((<any>globalThis).activeHost, (<any>globalThis).activeMF);\r\n\tconst appNameHeader = getAppHeader(currentApp);\r\n\tconst csrfToken = getCsrfToken();\r\n\r\n\tconst authReq = req.clone({\r\n\t\tsetHeaders: {\r\n\t\t\tAuthorization: `Bearer ${token}`,\r\n\t\t\t'csrf_token': csrfToken || '',\r\n\t\t\t...appNameHeader\r\n\t\t}\r\n\t});\r\n\r\n\treturn next(authReq);\r\n};","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-keycloak.mjs","sources":["../../projects/aril/keycloak/src/keycloak.manager.ts","../../projects/aril/keycloak/src/auth.interceptor.ts","../../projects/aril/keycloak/src/auth.guard.ts","../../projects/aril/keycloak/aril-keycloak.ts"],"sourcesContent":["import { HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\nimport { KeycloakEventType, KeycloakOptions, KeycloakService } from 'keycloak-angular';\r\nimport { KeycloakLoginOptions } from 'keycloak-js';\r\nimport { Observable, filter } from 'rxjs';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class KeycloakManager {\r\n\tconstructor(public router: Router) {\r\n\t\tthis.keycloak.keycloakEvents$.subscribe((event) => {\r\n\t\t\tswitch (event.type) {\r\n\t\t\t\tcase KeycloakEventType.OnReady:\r\n\t\t\t\t\t(<any>globalThis).keycloakService = this.keycloak;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase KeycloakEventType.OnTokenExpired:\r\n\t\t\t\t\tthis.updateTokenIfNeeded();\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase KeycloakEventType.OnAuthError:\r\n\t\t\t\tcase KeycloakEventType.OnAuthLogout:\r\n\t\t\t\tcase KeycloakEventType.OnAuthRefreshError:\r\n\t\t\t\t\t(<any>globalThis).keycloakService = null;\r\n\t\t\t\t\t// this.keycloak.clearToken();\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.router.events.pipe(filter((event) => event instanceof NavigationStart)).subscribe(() => {\r\n\t\t\tthis.updateTokenIfNeeded();\r\n\t\t});\r\n\t}\r\n\r\n\tpublic readonly keycloak = inject(KeycloakService);\r\n\r\n\tprivate async updateTokenIfNeeded() {\r\n\t\ttry {\r\n\t\t\tif (this.keycloak.isTokenExpired(10)) { // 10 saniyeden kısa sürede bitecekse yenile\r\n\t\t\t\tconsole.log(\"Token expired, updating token...\");\r\n\t\t\t\tawait this.keycloak.updateToken(20); // Token süresini uzat\r\n\t\t\t}\r\n\t\t} catch (error) {\r\n\t\t\tconsole.error('Token update failed:', error);\r\n\t\t\tawait this.keycloak.login();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate defaultOptions: KeycloakOptions = {\r\n\t\tloadUserProfileAtStartUp: true,\r\n\t\tinitOptions: { onLoad: 'login-required' },\r\n\t\tbearerExcludedUrls: ['/assets']\r\n\t};\r\n\r\n\tinit(configs: any): Promise<boolean> {\r\n\t\treturn this.keycloak.init({ ...this.defaultOptions, config: configs });\r\n\t}\r\n\r\n\tlogin(options?: KeycloakLoginOptions): Promise<void> {\r\n\t\treturn this.keycloak.login(options);\r\n\t}\r\n\r\n\tlogout(redirectUri?: string): Promise<void> {\r\n\t\treturn this.keycloak.logout(redirectUri); // window.location.origin\r\n\t}\r\n\r\n\tisUserInRole(role: string, resource?: string): boolean {\r\n\t\treturn this.keycloak.isUserInRole(role, resource);\r\n\t}\r\n\r\n\tgetUserRoles(realmRoles?: boolean, resource?: string): string[] {\r\n\t\treturn this.keycloak.getUserRoles(realmRoles, resource);\r\n\t}\r\n\r\n\tisLoggedIn(): boolean {\r\n\t\treturn this.keycloak.isLoggedIn();\r\n\t}\r\n\r\n\tisTokenExpired(minValidity?: number): boolean {\r\n\t\treturn this.keycloak.isTokenExpired(minValidity);\r\n\t}\r\n\r\n\tupdateToken(minValidity?: number): Promise<boolean> {\r\n\t\treturn this.keycloak.updateToken(minValidity);\r\n\t}\r\n\r\n\tloadUserProfile(forceReload?: boolean): Promise<any> {\r\n\t\treturn this.keycloak.loadUserProfile(forceReload);\r\n\t}\r\n\r\n\tgetToken(): Promise<string> {\r\n\t\treturn this.keycloak.getToken();\r\n\t}\r\n\r\n\tgetUsername(): string {\r\n\t\treturn this.keycloak.getUsername();\r\n\t}\r\n\r\n\tclearToken(): void {\r\n\t\tthis.keycloak.clearToken();\r\n\t}\r\n\r\n\taddTokenToHeader(headers?: HttpHeaders): Observable<HttpHeaders> {\r\n\t\treturn this.keycloak.addTokenToHeader(headers);\r\n\t}\r\n\r\n\t\r\n}\r\n","import { HttpHandlerFn, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\r\n\r\nimport { Apps } from 'aril/boot/config/apps';\r\n\r\nconst getCurrentAppName = (host: string, mf: string) => {\r\n\tlet appName = '';\r\n\tif (host) {\r\n\t\tswitch (host) {\r\n\t\t\tcase Apps.YEAP:\r\n\t\t\t\tappName = Apps.YEAP;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Apps.LENA:\r\n\t\t\t\tappName = Apps.LENA;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Apps.THOR:\r\n\t\t\t\tappName = Apps.THOR;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t} else {\r\n\t\tswitch (mf) {\r\n\t\t\tcase Apps.HES:\r\n\t\t\tcase Apps.CTS:\r\n\t\t\tcase Apps.SIS:\r\n\t\t\t\tappName = Apps.LENA;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Apps.CRM:\r\n\t\t\tcase Apps.BILLING:\r\n\t\t\tcase Apps.PAYMENT:\r\n\t\t\tcase Apps.WDM:\r\n\t\t\tcase Apps.MNG:\r\n\t\t\t\tappName = Apps.THOR;\r\n\t\t\t\tbreak;\r\n\t\t\tcase Apps.MW:\r\n\t\t\t\tappName = Apps.YEAP;\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tappName = Apps.YEAP;\r\n\t\t}\r\n\t}\r\n\treturn appName;\r\n};\r\n\r\nconst getAppHeader = (appName: string) => {\r\n\tlet appHeader = {};\r\n\tswitch (appName) {\r\n\t\tcase Apps.YEAP:\r\n\t\t\tappHeader = {\r\n\t\t\t\t\"x-yeap-application\": \"yeap\",\r\n\t\t\t\t\"x-application\": \"yeap\",\r\n\t\t\t\t\"x-module\": \"yeap-fe\"\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t\tcase Apps.LENA:\r\n\t\t\tappHeader = {\r\n\t\t\t\t\"x-yeap-application\": \"lena\",\r\n\t\t\t\t\"x-application\": \"lena\",\r\n\t\t\t\t\"x-module\": \"lena-fe\"\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t\tcase Apps.THOR:\r\n\t\t\tappHeader = {\r\n\t\t\t\t\"x-yeap-application\": \"thor\",\r\n\t\t\t\t\"x-application\": \"thor\",\r\n\t\t\t\t\"x-module\": \"thor-fe\"\r\n\t\t\t};\r\n\t\t\tbreak;\r\n\t}\r\n\treturn appHeader;\r\n};\r\n\r\nconst getCsrfToken = (): string | undefined => {\r\n\treturn document.cookie\r\n\t .split('; ')\r\n\t .find(row => row.startsWith('csrf_token='))\r\n\t ?.split('=')[1];\r\n };\r\n\r\nexport const authInterceptor: HttpInterceptorFn = (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\r\n\tconst token = (<any>globalThis).keycloakService?._instance?.token;\r\n\tconst currentApp = getCurrentAppName((<any>globalThis).activeHost, (<any>globalThis).activeMF);\r\n\tconst appNameHeader = getAppHeader(currentApp);\r\n\tconst csrfToken = getCsrfToken();\r\n\r\n\tconst authReq = req.clone({\r\n\t\tsetHeaders: {\r\n\t\t\tAuthorization: `Bearer ${token}`,\r\n\t\t\t'csrf_token': csrfToken || '',\r\n\t\t\t...appNameHeader\r\n\t\t}\r\n\t});\r\n\r\n\treturn next(authReq);\r\n};","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\r\nimport { KeycloakAuthGuard, KeycloakService } from 'keycloak-angular';\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class AuthGuard extends KeycloakAuthGuard {\r\n\tconstructor(\r\n\t\tprotected override readonly router: Router,\r\n\t\tprotected readonly keycloak: KeycloakService\r\n\t) {\r\n\t\tsuper(router, keycloak);\r\n\t}\r\n\tpublic async isAccessAllowed(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n\t\ttry {\r\n\t\t\tif(this.keycloak.isTokenExpired(5)){\r\n\t\t\t\tconsole.log(\"Token expired, updating token\");\r\n\t\t\t\tawait this.keycloak.updateToken(5); \r\n\t\t\t}\r\n\t\t } catch (error) {\r\n\t\t\tconsole.error('Error while updating token', error);\r\n\t\t\tawait this.keycloak.login({\r\n\t\t\t redirectUri: window.location.origin + state.url\r\n\t\t\t});\r\n\t\t\treturn false; \r\n\t\t }\r\n\t\t \r\n\t\tif (!this.authenticated) {\r\n\t\t\tawait this.keycloak.login({\r\n\t\t\t\tredirectUri: window.location.origin + state.url\r\n\t\t\t});\r\n\t\t}\r\n\t\tconst requiredRoles = route.data['roles'];\r\n\t\tif (!Array.isArray(requiredRoles) || requiredRoles.length === 0) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\tconst authorized = requiredRoles.every((role) => this.roles.includes(role));\r\n\t\tif (!authorized) {\r\n\t\t\tconsole.error('User not authorized to access this route');\r\n\t\t\treturn false;\r\n\t\t} else return true;\r\n\t}\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -22,11 +22,11 @@ class PanelComponent {
22
22
  return this.noPadding();
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: PanelComponent, isStandalone: true, selector: "aril-panel", inputs: { toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: true, isRequired: false, transformFunction: null }, canFullScreen: { classPropertyName: "canFullScreen", publicName: "canFullScreen", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, noPadding: { classPropertyName: "noPadding", publicName: "noPadding", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.no-padding": "this.noPaddingClass" } }, ngImport: i0, template: "<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n", styles: [".full-screen{position:fixed;inset:0;z-index:99999999;overflow-y:auto;box-sizing:border-box;width:100%;height:100vh;background:#fff}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--muted-foreground);font-size:12px;font-style:normal;font-weight:700;line-height:normal}::ng-deep .panel-icons i{cursor:pointer;width:2rem}.panel-ng-content{padding:0!important}::ng-deep .no-padding .p-panel-content{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: PanelModule }, { kind: "component", type: i1.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: PanelComponent, isStandalone: true, selector: "aril-panel", inputs: { toggleable: { classPropertyName: "toggleable", publicName: "toggleable", isSignal: true, isRequired: false, transformFunction: null }, canFullScreen: { classPropertyName: "canFullScreen", publicName: "canFullScreen", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null }, showFooter: { classPropertyName: "showFooter", publicName: "showFooter", isSignal: true, isRequired: false, transformFunction: null }, noPadding: { classPropertyName: "noPadding", publicName: "noPadding", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.no-padding": "this.noPaddingClass" } }, ngImport: i0, template: "<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n", styles: [".full-screen{position:fixed;inset:0;z-index:99999999;overflow-y:auto;box-sizing:border-box;width:100%;height:100vh;background:#fff}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--card-foreground);font-size:13px;font-style:normal;font-weight:700;line-height:normal}::ng-deep .panel-icons i{cursor:pointer;width:2rem}.panel-ng-content{padding:0!important}::ng-deep .no-padding .p-panel-content{padding:0}\n"], dependencies: [{ kind: "ngmodule", type: PanelModule }, { kind: "component", type: i1.Panel, selector: "p-panel", inputs: ["toggleable", "header", "collapsed", "style", "styleClass", "iconPos", "expandIcon", "collapseIcon", "showHeader", "toggler", "transitionOptions"], outputs: ["collapsedChange", "onBeforeToggle", "onAfterToggle"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: PanelComponent, decorators: [{
28
28
  type: Component,
29
- args: [{ standalone: true, selector: 'aril-panel', imports: [PanelModule, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n", styles: [".full-screen{position:fixed;inset:0;z-index:99999999;overflow-y:auto;box-sizing:border-box;width:100%;height:100vh;background:#fff}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--muted-foreground);font-size:12px;font-style:normal;font-weight:700;line-height:normal}::ng-deep .panel-icons i{cursor:pointer;width:2rem}.panel-ng-content{padding:0!important}::ng-deep .no-padding .p-panel-content{padding:0}\n"] }]
29
+ args: [{ standalone: true, selector: 'aril-panel', imports: [PanelModule, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n", styles: [".full-screen{position:fixed;inset:0;z-index:99999999;overflow-y:auto;box-sizing:border-box;width:100%;height:100vh;background:#fff}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;color:var(--card-foreground);font-size:13px;font-style:normal;font-weight:700;line-height:normal}::ng-deep .panel-icons i{cursor:pointer;width:2rem}.panel-ng-content{padding:0!important}::ng-deep .no-padding .p-panel-content{padding:0}\n"] }]
30
30
  }], propDecorators: { noPaddingClass: [{
31
31
  type: HostBinding,
32
32
  args: ['class.no-padding']
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-panel.mjs","sources":["../../projects/aril/ui/panel/src/panel.component.ts","../../projects/aril/ui/panel/src/panel.component.html","../../projects/aril/ui/panel/aril-ui-panel.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\r\n\r\nimport { PanelModule } from 'primeng/panel';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-panel',\r\n\ttemplateUrl: './panel.component.html',\r\n\tstyleUrl: './panel.component.css',\r\n\timports: [PanelModule, NgClass],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PanelComponent {\r\n\ttoggleable = input<boolean>(true);\r\n\tcanFullScreen = input<boolean>(true);\r\n\tcollapsed = input<boolean>(false);\r\n\tstyleClass = input<string>();\r\n\tshowFooter = input<boolean>(false);\r\n\tnoPadding = input<boolean>(false);\r\n\r\n\tisFullScreen = false;\r\n\r\n\ttoggleFullScreen() {\r\n\t\tthis.isFullScreen = !this.isFullScreen;\r\n\t}\r\n\r\n\t@HostBinding('class.no-padding') get noPaddingClass() {\r\n\t\treturn this.noPadding();\r\n\t}\r\n}\r\n","<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-ui-panel.mjs","sources":["../../projects/aril/ui/panel/src/panel.component.ts","../../projects/aril/ui/panel/src/panel.component.html","../../projects/aril/ui/panel/aril-ui-panel.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, HostBinding, input } from '@angular/core';\r\n\r\nimport { PanelModule } from 'primeng/panel';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-panel',\r\n\ttemplateUrl: './panel.component.html',\r\n\tstyleUrl: './panel.component.css',\r\n\timports: [PanelModule, NgClass],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PanelComponent {\r\n\ttoggleable = input<boolean>(true);\r\n\tcanFullScreen = input<boolean>(true);\r\n\tcollapsed = input<boolean>(false);\r\n\tstyleClass = input<string>();\r\n\tshowFooter = input<boolean>(false);\r\n\tnoPadding = input<boolean>(false);\r\n\r\n\tisFullScreen = false;\r\n\r\n\ttoggleFullScreen() {\r\n\t\tthis.isFullScreen = !this.isFullScreen;\r\n\t}\r\n\r\n\t@HostBinding('class.no-padding') get noPaddingClass() {\r\n\t\treturn this.noPadding();\r\n\t}\r\n}\r\n","<div [ngClass]=\"{ 'full-screen': isFullScreen && canFullScreen }\">\r\n\t<p-panel\r\n\t\t[toggleable]=\"toggleable()\"\r\n\t\t[collapsed]=\"collapsed()\"\r\n\t\t[collapseIcon]=\"'pi pi-chevron-down'\"\r\n\t\t[expandIcon]=\"'pi pi-chevron-up'\"\r\n\t\t[styleClass]=\"styleClass()\"\r\n\t\t>\r\n\t\t<!-- header -->\r\n\t\t<ng-template pTemplate=\"header\">\r\n\t\t\t<div class=\"panel-header\">\r\n\t\t\t\t<ng-content select=\"[header]\"></ng-content>\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- header-tools -->\r\n\t\t<ng-template class=\"flex\" pTemplate=\"icons\">\r\n\t\t\t<div class=\"panel-icons flex\">\r\n\t\t\t\t<ng-content select=\"[tools]\"></ng-content>\r\n\r\n\t\t\t\t@if (canFullScreen()) {\r\n\t\t\t\t\t<i\r\n\t\t\t\t\t\trole=\"button\"\r\n\t\t\t\t\t\tclass=\"pi\"\r\n\t\t\t\t\t\t[ngClass]=\"{\r\n\t\t\t\t\t\t\t'pi-window-maximize': !isFullScreen,\r\n\t\t\t\t\t\t\t'pi-window-minimize': isFullScreen\r\n\t\t\t\t\t\t}\"\r\n\t\t\t\t\t\t(click)=\"toggleFullScreen()\"></i>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</ng-template>\r\n\r\n\t\t<!-- body -->\r\n\t\t<ng-content select=\"[body]\" class=\"panel-ng-content\"></ng-content>\r\n\r\n\t\t<!-- footer -->\r\n\t\t@if (showFooter()) {\r\n\t\t\t<ng-template pTemplate=\"footer\">\r\n\t\t\t\t<ng-content select=\"[footer]\"></ng-content>\r\n\t\t\t</ng-template>\r\n\t\t}\r\n\t</p-panel>\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ import * as i2 from 'primeng/contextmenu';
4
4
  import { ContextMenuModule } from 'primeng/contextmenu';
5
5
  import * as i1 from 'primeng/tree';
6
6
  import { TreeModule } from 'primeng/tree';
7
- import { ButtonComponent } from 'aril/ui/button';
8
7
 
9
8
  /* eslint-disable @typescript-eslint/no-explicit-any */
10
9
  class TreeComponent {
@@ -15,6 +14,7 @@ class TreeComponent {
15
14
  this.filter = input(true);
16
15
  this.selectionMode = input();
17
16
  this.selectedNode = input(null);
17
+ this.styleClass = input(null);
18
18
  this.expandEvent = new EventEmitter();
19
19
  this.selectionEvent = new EventEmitter();
20
20
  effect(() => {
@@ -22,11 +22,11 @@ class TreeComponent {
22
22
  });
23
23
  }
24
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: TreeComponent, isStandalone: true, selector: "aril-tree", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectedNode: { classPropertyName: "selectedNode", publicName: "selectedNode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandEvent: "expandEvent", selectionEvent: "selectionEvent" }, ngImport: i0, template: "<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Geni\u015Flet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n", dependencies: [{ kind: "ngmodule", type: TreeModule }, { kind: "component", type: i1.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "layout", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i2.ContextMenu, selector: "p-contextMenu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "id", "ariaLabel", "ariaLabelledBy", "pressDelay"], outputs: ["onShow", "onHide"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.1.2", type: TreeComponent, isStandalone: true, selector: "aril-tree", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, contextMenu: { classPropertyName: "contextMenu", publicName: "contextMenu", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: "filter", publicName: "filter", isSignal: true, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: "selectionMode", publicName: "selectionMode", isSignal: true, isRequired: false, transformFunction: null }, selectedNode: { classPropertyName: "selectedNode", publicName: "selectedNode", isSignal: true, isRequired: false, transformFunction: null }, styleClass: { classPropertyName: "styleClass", publicName: "styleClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { expandEvent: "expandEvent", selectionEvent: "selectionEvent" }, ngImport: i0, template: "<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Geni\u015Flet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t[styleClass]=\"styleClass()!\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n", dependencies: [{ kind: "ngmodule", type: TreeModule }, { kind: "component", type: i1.Tree, selector: "p-tree", inputs: ["value", "selectionMode", "loadingMode", "selection", "style", "styleClass", "contextMenu", "layout", "draggableScope", "droppableScope", "draggableNodes", "droppableNodes", "metaKeySelection", "propagateSelectionUp", "propagateSelectionDown", "loading", "loadingIcon", "emptyMessage", "ariaLabel", "togglerAriaLabel", "ariaLabelledBy", "validateDrop", "filter", "filterBy", "filterMode", "filterPlaceholder", "filteredNodes", "filterLocale", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "indentation", "_templateMap", "trackBy", "virtualNodeHeight"], outputs: ["selectionChange", "onNodeSelect", "onNodeUnselect", "onNodeExpand", "onNodeCollapse", "onNodeContextMenuSelect", "onNodeDrop", "onLazyLoad", "onScroll", "onScrollIndexChange", "onFilter"] }, { kind: "ngmodule", type: ContextMenuModule }, { kind: "component", type: i2.ContextMenu, selector: "p-contextMenu", inputs: ["model", "triggerEvent", "target", "global", "style", "styleClass", "appendTo", "autoZIndex", "baseZIndex", "id", "ariaLabel", "ariaLabelledBy", "pressDelay"], outputs: ["onShow", "onHide"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26
26
  }
27
27
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: TreeComponent, decorators: [{
28
28
  type: Component,
29
- args: [{ standalone: true, selector: 'aril-tree', imports: [TreeModule, ContextMenuModule, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Geni\u015Flet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n" }]
29
+ args: [{ standalone: true, selector: 'aril-tree', imports: [TreeModule, ContextMenuModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Geni\u015Flet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t[styleClass]=\"styleClass()!\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n" }]
30
30
  }], ctorParameters: () => [], propDecorators: { expandEvent: [{
31
31
  type: Output
32
32
  }], selectionEvent: [{
@@ -1 +1 @@
1
- {"version":3,"file":"aril-ui-tree.mjs","sources":["../../projects/aril/ui/tree/src/tree.component.ts","../../projects/aril/ui/tree/src/tree.component.html","../../projects/aril/ui/tree/aril-ui-tree.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Output, effect, input } from '@angular/core';\r\n\r\nimport { MenuItem, TreeNode } from 'primeng/api';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { TreeModule } from 'primeng/tree';\r\n\r\nimport { ButtonComponent } from 'aril/ui/button';\r\n\r\ntype SelectionModes = 'multiple' | 'checkbox' | 'single';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-tree',\r\n\ttemplateUrl: './tree.component.html',\r\n\timports: [TreeModule, ContextMenuModule, ButtonComponent],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TreeComponent {\r\n\tconstructor() {\r\n\t\teffect(() => {\r\n\t\t\tthis.selectionNodes = this.selectedNode();\r\n\t\t});\r\n\t}\r\n\r\n\tdata = input.required<TreeNode[]>();\r\n\tcontextMenu = input<MenuItem[]>();\r\n\tfilterPlaceholder = input<string>('Arama');\r\n\tfilter = input<boolean>(true);\r\n\tselectionMode = input<SelectionModes>();\r\n\tselectedNode = input<TreeNode | TreeNode[] | null>(null);\r\n\r\n\t@Output() expandEvent: EventEmitter<unknown> = new EventEmitter();\r\n\t@Output() selectionEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\tselectionNodes!: TreeNode | TreeNode[] | null;\r\n\r\n\t// isExpended = false;\r\n\t// toggleTree() {\r\n\t// \tthis.isExpended = !this.isExpended;\r\n\t// \tthis.expandRecursive(this.data());\r\n\t// }\r\n\r\n\t// expandRecursive(node: TreeNode[]) {\r\n\t// \tnode.forEach((node) => {\r\n\t// \t\tif (node.children) {\r\n\t// \t\t\tnode.expanded = this.isExpended;\r\n\t// \t\t\tthis.expandRecursive(node.children);\r\n\t// \t\t}\r\n\t// \t});\r\n\t// }\r\n}\r\n","<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Genişlet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aril-ui-tree.mjs","sources":["../../projects/aril/ui/tree/src/tree.component.ts","../../projects/aril/ui/tree/src/tree.component.html","../../projects/aril/ui/tree/aril-ui-tree.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Output, effect, input } from '@angular/core';\r\n\r\nimport { MenuItem, TreeNode } from 'primeng/api';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { TreeModule } from 'primeng/tree';\r\n\r\ntype SelectionModes = 'multiple' | 'checkbox' | 'single';\r\n\r\n@Component({\r\n\tstandalone: true,\r\n\tselector: 'aril-tree',\r\n\ttemplateUrl: './tree.component.html',\r\n\timports: [TreeModule, ContextMenuModule],\r\n\tchangeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TreeComponent {\r\n\tconstructor() {\r\n\t\teffect(() => {\r\n\t\t\tthis.selectionNodes = this.selectedNode();\r\n\t\t});\r\n\t}\r\n\r\n\tdata = input.required<TreeNode[]>();\r\n\tcontextMenu = input<MenuItem[]>();\r\n\tfilterPlaceholder = input<string>('Arama');\r\n\tfilter = input<boolean>(true);\r\n\tselectionMode = input<SelectionModes>();\r\n\tselectedNode = input<TreeNode | TreeNode[] | null>(null);\r\n\tstyleClass = input<string | null>(null);\r\n\r\n\t@Output() expandEvent: EventEmitter<unknown> = new EventEmitter();\r\n\t@Output() selectionEvent: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n\tselectionNodes!: TreeNode | TreeNode[] | null;\r\n\r\n\t// isExpended = false;\r\n\t// toggleTree() {\r\n\t// \tthis.isExpended = !this.isExpended;\r\n\t// \tthis.expandRecursive(this.data());\r\n\t// }\r\n\r\n\t// expandRecursive(node: TreeNode[]) {\r\n\t// \tnode.forEach((node) => {\r\n\t// \t\tif (node.children) {\r\n\t// \t\t\tnode.expanded = this.isExpended;\r\n\t// \t\t\tthis.expandRecursive(node.children);\r\n\t// \t\t}\r\n\t// \t});\r\n\t// }\r\n}\r\n","<!-- <div class=\"mb-3\">\r\n\t<aril-button [label]=\"isExpended ? 'Daralt' : 'Genişlet'\" size=\"sm\" [color]=\"isExpended ? 'primary' :'warning'\" (clickEvent)=\"toggleTree()\"></aril-button>\r\n</div> -->\r\n<p-tree\r\n\t[value]=\"data()\"\r\n\t[selectionMode]=\"selectionMode()\"\r\n\t[(selection)]=\"selectionNodes\"\r\n\t[contextMenu]=\"contextMenuRef\"\r\n\t[filter]=\"filter()\"\r\n\tfilterMode=\"lenient\"\r\n\tfilterBy=\"label\"\r\n\t[filterPlaceholder]=\"filterPlaceholder()\"\r\n\t[styleClass]=\"styleClass()!\"\r\n\t(onNodeExpand)=\"expandEvent.emit($event.node)\"\r\n\t(selectionChange)=\"selectionEvent.emit(selectionNodes)\">\r\n</p-tree>\r\n<p-contextMenu #contextMenuRef [model]=\"contextMenu()\"></p-contextMenu>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export * from './src/keycloak.manager';
2
2
  export * from './src/auth.interceptor';
3
+ export * from './src/auth.guard';
@@ -0,0 +1,11 @@
1
+ import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';
2
+ import { KeycloakAuthGuard, KeycloakService } from 'keycloak-angular';
3
+ import * as i0 from "@angular/core";
4
+ export declare class AuthGuard extends KeycloakAuthGuard {
5
+ protected readonly router: Router;
6
+ protected readonly keycloak: KeycloakService;
7
+ constructor(router: Router, keycloak: KeycloakService);
8
+ isAccessAllowed(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean>;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<AuthGuard, never>;
10
+ static ɵprov: i0.ɵɵInjectableDeclaration<AuthGuard>;
11
+ }
@@ -8,6 +8,7 @@ export declare class KeycloakManager {
8
8
  router: Router;
9
9
  constructor(router: Router);
10
10
  readonly keycloak: KeycloakService;
11
+ private updateTokenIfNeeded;
11
12
  private defaultOptions;
12
13
  init(configs: any): Promise<boolean>;
13
14
  login(options?: KeycloakLoginOptions): Promise<void>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aril",
3
- "version": "0.1.51",
3
+ "version": "0.1.53",
4
4
  "peerDependencies": {
5
5
  "@angular/cdk": "~17.1.0",
6
6
  "@angular/common": "^17.1.0",
@@ -74,18 +74,18 @@
74
74
  "esm": "./esm2022/ui/aril-ui.mjs",
75
75
  "default": "./fesm2022/aril-ui.mjs"
76
76
  },
77
- "./ui-business": {
78
- "types": "./ui-business/index.d.ts",
79
- "esm2022": "./esm2022/ui-business/aril-ui-business.mjs",
80
- "esm": "./esm2022/ui-business/aril-ui-business.mjs",
81
- "default": "./fesm2022/aril-ui-business.mjs"
82
- },
83
77
  "./util": {
84
78
  "types": "./util/index.d.ts",
85
79
  "esm2022": "./esm2022/util/aril-util.mjs",
86
80
  "esm": "./esm2022/util/aril-util.mjs",
87
81
  "default": "./fesm2022/aril-util.mjs"
88
82
  },
83
+ "./ui-business": {
84
+ "types": "./ui-business/index.d.ts",
85
+ "esm2022": "./esm2022/ui-business/aril-ui-business.mjs",
86
+ "esm": "./esm2022/ui-business/aril-ui-business.mjs",
87
+ "default": "./fesm2022/aril-ui-business.mjs"
88
+ },
89
89
  "./boot/host": {
90
90
  "types": "./boot/host/index.d.ts",
91
91
  "esm2022": "./esm2022/boot/host/aril-boot-host.mjs",
@@ -128,18 +128,18 @@
128
128
  "esm": "./esm2022/ui/calendar/aril-ui-calendar.mjs",
129
129
  "default": "./fesm2022/aril-ui-calendar.mjs"
130
130
  },
131
- "./ui/checkbox": {
132
- "types": "./ui/checkbox/index.d.ts",
133
- "esm2022": "./esm2022/ui/checkbox/aril-ui-checkbox.mjs",
134
- "esm": "./esm2022/ui/checkbox/aril-ui-checkbox.mjs",
135
- "default": "./fesm2022/aril-ui-checkbox.mjs"
136
- },
137
131
  "./ui/charts": {
138
132
  "types": "./ui/charts/index.d.ts",
139
133
  "esm2022": "./esm2022/ui/charts/aril-ui-charts.mjs",
140
134
  "esm": "./esm2022/ui/charts/aril-ui-charts.mjs",
141
135
  "default": "./fesm2022/aril-ui-charts.mjs"
142
136
  },
137
+ "./ui/checkbox": {
138
+ "types": "./ui/checkbox/index.d.ts",
139
+ "esm2022": "./esm2022/ui/checkbox/aril-ui-checkbox.mjs",
140
+ "esm": "./esm2022/ui/checkbox/aril-ui-checkbox.mjs",
141
+ "default": "./fesm2022/aril-ui-checkbox.mjs"
142
+ },
143
143
  "./ui/chip": {
144
144
  "types": "./ui/chip/index.d.ts",
145
145
  "esm2022": "./esm2022/ui/chip/aril-ui-chip.mjs",
@@ -188,18 +188,18 @@
188
188
  "esm": "./esm2022/ui/img-viewer/aril-ui-img-viewer.mjs",
189
189
  "default": "./fesm2022/aril-ui-img-viewer.mjs"
190
190
  },
191
- "./ui/lib": {
192
- "types": "./ui/lib/index.d.ts",
193
- "esm2022": "./esm2022/ui/lib/aril-ui-lib.mjs",
194
- "esm": "./esm2022/ui/lib/aril-ui-lib.mjs",
195
- "default": "./fesm2022/aril-ui-lib.mjs"
196
- },
197
191
  "./ui/loader": {
198
192
  "types": "./ui/loader/index.d.ts",
199
193
  "esm2022": "./esm2022/ui/loader/aril-ui-loader.mjs",
200
194
  "esm": "./esm2022/ui/loader/aril-ui-loader.mjs",
201
195
  "default": "./fesm2022/aril-ui-loader.mjs"
202
196
  },
197
+ "./ui/lib": {
198
+ "types": "./ui/lib/index.d.ts",
199
+ "esm2022": "./esm2022/ui/lib/aril-ui-lib.mjs",
200
+ "esm": "./esm2022/ui/lib/aril-ui-lib.mjs",
201
+ "default": "./fesm2022/aril-ui-lib.mjs"
202
+ },
203
203
  "./ui/mask": {
204
204
  "types": "./ui/mask/index.d.ts",
205
205
  "esm2022": "./esm2022/ui/mask/aril-ui-mask.mjs",
@@ -242,6 +242,12 @@
242
242
  "esm": "./esm2022/ui/password/aril-ui-password.mjs",
243
243
  "default": "./fesm2022/aril-ui-password.mjs"
244
244
  },
245
+ "./ui/progressbar": {
246
+ "types": "./ui/progressbar/index.d.ts",
247
+ "esm2022": "./esm2022/ui/progressbar/aril-ui-progressbar.mjs",
248
+ "esm": "./esm2022/ui/progressbar/aril-ui-progressbar.mjs",
249
+ "default": "./fesm2022/aril-ui-progressbar.mjs"
250
+ },
245
251
  "./ui/pdf-viewer": {
246
252
  "types": "./ui/pdf-viewer/index.d.ts",
247
253
  "esm2022": "./esm2022/ui/pdf-viewer/aril-ui-pdf-viewer.mjs",
@@ -254,12 +260,6 @@
254
260
  "esm": "./esm2022/ui/radioButton/aril-ui-radioButton.mjs",
255
261
  "default": "./fesm2022/aril-ui-radioButton.mjs"
256
262
  },
257
- "./ui/progressbar": {
258
- "types": "./ui/progressbar/index.d.ts",
259
- "esm2022": "./esm2022/ui/progressbar/aril-ui-progressbar.mjs",
260
- "esm": "./esm2022/ui/progressbar/aril-ui-progressbar.mjs",
261
- "default": "./fesm2022/aril-ui-progressbar.mjs"
262
- },
263
263
  "./ui/selectBox": {
264
264
  "types": "./ui/selectBox/index.d.ts",
265
265
  "esm2022": "./esm2022/ui/selectBox/aril-ui-selectBox.mjs",
@@ -308,6 +308,12 @@
308
308
  "esm": "./esm2022/ui/textArea/aril-ui-textArea.mjs",
309
309
  "default": "./fesm2022/aril-ui-textArea.mjs"
310
310
  },
311
+ "./ui/tree": {
312
+ "types": "./ui/tree/index.d.ts",
313
+ "esm2022": "./esm2022/ui/tree/aril-ui-tree.mjs",
314
+ "esm": "./esm2022/ui/tree/aril-ui-tree.mjs",
315
+ "default": "./fesm2022/aril-ui-tree.mjs"
316
+ },
311
317
  "./ui/toggle-button": {
312
318
  "types": "./ui/toggle-button/index.d.ts",
313
319
  "esm2022": "./esm2022/ui/toggle-button/aril-ui-toggle-button.mjs",
@@ -320,11 +326,11 @@
320
326
  "esm": "./esm2022/ui/tooltip/aril-ui-tooltip.mjs",
321
327
  "default": "./fesm2022/aril-ui-tooltip.mjs"
322
328
  },
323
- "./ui/tree": {
324
- "types": "./ui/tree/index.d.ts",
325
- "esm2022": "./esm2022/ui/tree/aril-ui-tree.mjs",
326
- "esm": "./esm2022/ui/tree/aril-ui-tree.mjs",
327
- "default": "./fesm2022/aril-ui-tree.mjs"
329
+ "./ui/treeTable": {
330
+ "types": "./ui/treeTable/index.d.ts",
331
+ "esm2022": "./esm2022/ui/treeTable/aril-ui-treeTable.mjs",
332
+ "esm": "./esm2022/ui/treeTable/aril-ui-treeTable.mjs",
333
+ "default": "./fesm2022/aril-ui-treeTable.mjs"
328
334
  },
329
335
  "./ui/treeSelect": {
330
336
  "types": "./ui/treeSelect/index.d.ts",
@@ -332,18 +338,60 @@
332
338
  "esm": "./esm2022/ui/treeSelect/aril-ui-treeSelect.mjs",
333
339
  "default": "./fesm2022/aril-ui-treeSelect.mjs"
334
340
  },
335
- "./ui/treeTable": {
336
- "types": "./ui/treeTable/index.d.ts",
337
- "esm2022": "./esm2022/ui/treeTable/aril-ui-treeTable.mjs",
338
- "esm": "./esm2022/ui/treeTable/aril-ui-treeTable.mjs",
339
- "default": "./fesm2022/aril-ui-treeTable.mjs"
340
- },
341
341
  "./ui/value": {
342
342
  "types": "./ui/value/index.d.ts",
343
343
  "esm2022": "./esm2022/ui/value/aril-ui-value.mjs",
344
344
  "esm": "./esm2022/ui/value/aril-ui-value.mjs",
345
345
  "default": "./fesm2022/aril-ui-value.mjs"
346
346
  },
347
+ "./util/block": {
348
+ "types": "./util/block/index.d.ts",
349
+ "esm2022": "./esm2022/util/block/aril-util-block.mjs",
350
+ "esm": "./esm2022/util/block/aril-util-block.mjs",
351
+ "default": "./fesm2022/aril-util-block.mjs"
352
+ },
353
+ "./util/custom_pages": {
354
+ "types": "./util/custom_pages/index.d.ts",
355
+ "esm2022": "./esm2022/util/custom_pages/aril-util-custom_pages.mjs",
356
+ "esm": "./esm2022/util/custom_pages/aril-util-custom_pages.mjs",
357
+ "default": "./fesm2022/aril-util-custom_pages.mjs"
358
+ },
359
+ "./util/init-event": {
360
+ "types": "./util/init-event/index.d.ts",
361
+ "esm2022": "./esm2022/util/init-event/aril-util-init-event.mjs",
362
+ "esm": "./esm2022/util/init-event/aril-util-init-event.mjs",
363
+ "default": "./fesm2022/aril-util-init-event.mjs"
364
+ },
365
+ "./util/lib": {
366
+ "types": "./util/lib/index.d.ts",
367
+ "esm2022": "./esm2022/util/lib/aril-util-lib.mjs",
368
+ "esm": "./esm2022/util/lib/aril-util-lib.mjs",
369
+ "default": "./fesm2022/aril-util-lib.mjs"
370
+ },
371
+ "./util/loaders": {
372
+ "types": "./util/loaders/index.d.ts",
373
+ "esm2022": "./esm2022/util/loaders/aril-util-loaders.mjs",
374
+ "esm": "./esm2022/util/loaders/aril-util-loaders.mjs",
375
+ "default": "./fesm2022/aril-util-loaders.mjs"
376
+ },
377
+ "./util/unwrap": {
378
+ "types": "./util/unwrap/index.d.ts",
379
+ "esm2022": "./esm2022/util/unwrap/aril-util-unwrap.mjs",
380
+ "esm": "./esm2022/util/unwrap/aril-util-unwrap.mjs",
381
+ "default": "./fesm2022/aril-util-unwrap.mjs"
382
+ },
383
+ "./util/pub-sub": {
384
+ "types": "./util/pub-sub/index.d.ts",
385
+ "esm2022": "./esm2022/util/pub-sub/aril-util-pub-sub.mjs",
386
+ "esm": "./esm2022/util/pub-sub/aril-util-pub-sub.mjs",
387
+ "default": "./fesm2022/aril-util-pub-sub.mjs"
388
+ },
389
+ "./util/primitive-extensions": {
390
+ "types": "./util/primitive-extensions/index.d.ts",
391
+ "esm2022": "./esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs",
392
+ "esm": "./esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs",
393
+ "default": "./fesm2022/aril-util-primitive-extensions.mjs"
394
+ },
347
395
  "./ui-business/assetPicker": {
348
396
  "types": "./ui-business/assetPicker/index.d.ts",
349
397
  "esm2022": "./esm2022/ui-business/assetPicker/aril-ui-business-assetPicker.mjs",
@@ -356,18 +404,18 @@
356
404
  "esm": "./esm2022/ui-business/detailed-overlay-panel/aril-ui-business-detailed-overlay-panel.mjs",
357
405
  "default": "./fesm2022/aril-ui-business-detailed-overlay-panel.mjs"
358
406
  },
359
- "./ui-business/enumPicker": {
360
- "types": "./ui-business/enumPicker/index.d.ts",
361
- "esm2022": "./esm2022/ui-business/enumPicker/aril-ui-business-enumPicker.mjs",
362
- "esm": "./esm2022/ui-business/enumPicker/aril-ui-business-enumPicker.mjs",
363
- "default": "./fesm2022/aril-ui-business-enumPicker.mjs"
364
- },
365
407
  "./ui-business/multiple-ref-value": {
366
408
  "types": "./ui-business/multiple-ref-value/index.d.ts",
367
409
  "esm2022": "./esm2022/ui-business/multiple-ref-value/aril-ui-business-multiple-ref-value.mjs",
368
410
  "esm": "./esm2022/ui-business/multiple-ref-value/aril-ui-business-multiple-ref-value.mjs",
369
411
  "default": "./fesm2022/aril-ui-business-multiple-ref-value.mjs"
370
412
  },
413
+ "./ui-business/enumPicker": {
414
+ "types": "./ui-business/enumPicker/index.d.ts",
415
+ "esm2022": "./esm2022/ui-business/enumPicker/aril-ui-business-enumPicker.mjs",
416
+ "esm": "./esm2022/ui-business/enumPicker/aril-ui-business-enumPicker.mjs",
417
+ "default": "./fesm2022/aril-ui-business-enumPicker.mjs"
418
+ },
371
419
  "./ui-business/operation-types-dialog": {
372
420
  "types": "./ui-business/operation-types-dialog/index.d.ts",
373
421
  "esm2022": "./esm2022/ui-business/operation-types-dialog/aril-ui-business-operation-types-dialog.mjs",
@@ -386,77 +434,29 @@
386
434
  "esm": "./esm2022/ui-business/rolePicker/aril-ui-business-rolePicker.mjs",
387
435
  "default": "./fesm2022/aril-ui-business-rolePicker.mjs"
388
436
  },
437
+ "./boot/config/plugins": {
438
+ "types": "./boot/config/plugins/index.d.ts",
439
+ "esm2022": "./esm2022/boot/config/plugins/aril-boot-config-plugins.mjs",
440
+ "esm": "./esm2022/boot/config/plugins/aril-boot-config-plugins.mjs",
441
+ "default": "./fesm2022/aril-boot-config-plugins.mjs"
442
+ },
389
443
  "./ui-business/userPicker": {
390
444
  "types": "./ui-business/userPicker/index.d.ts",
391
445
  "esm2022": "./esm2022/ui-business/userPicker/aril-ui-business-userPicker.mjs",
392
446
  "esm": "./esm2022/ui-business/userPicker/aril-ui-business-userPicker.mjs",
393
447
  "default": "./fesm2022/aril-ui-business-userPicker.mjs"
394
448
  },
395
- "./util/block": {
396
- "types": "./util/block/index.d.ts",
397
- "esm2022": "./esm2022/util/block/aril-util-block.mjs",
398
- "esm": "./esm2022/util/block/aril-util-block.mjs",
399
- "default": "./fesm2022/aril-util-block.mjs"
400
- },
401
- "./util/custom_pages": {
402
- "types": "./util/custom_pages/index.d.ts",
403
- "esm2022": "./esm2022/util/custom_pages/aril-util-custom_pages.mjs",
404
- "esm": "./esm2022/util/custom_pages/aril-util-custom_pages.mjs",
405
- "default": "./fesm2022/aril-util-custom_pages.mjs"
406
- },
407
- "./util/init-event": {
408
- "types": "./util/init-event/index.d.ts",
409
- "esm2022": "./esm2022/util/init-event/aril-util-init-event.mjs",
410
- "esm": "./esm2022/util/init-event/aril-util-init-event.mjs",
411
- "default": "./fesm2022/aril-util-init-event.mjs"
412
- },
413
- "./util/lib": {
414
- "types": "./util/lib/index.d.ts",
415
- "esm2022": "./esm2022/util/lib/aril-util-lib.mjs",
416
- "esm": "./esm2022/util/lib/aril-util-lib.mjs",
417
- "default": "./fesm2022/aril-util-lib.mjs"
418
- },
419
- "./util/loaders": {
420
- "types": "./util/loaders/index.d.ts",
421
- "esm2022": "./esm2022/util/loaders/aril-util-loaders.mjs",
422
- "esm": "./esm2022/util/loaders/aril-util-loaders.mjs",
423
- "default": "./fesm2022/aril-util-loaders.mjs"
424
- },
425
- "./util/primitive-extensions": {
426
- "types": "./util/primitive-extensions/index.d.ts",
427
- "esm2022": "./esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs",
428
- "esm": "./esm2022/util/primitive-extensions/aril-util-primitive-extensions.mjs",
429
- "default": "./fesm2022/aril-util-primitive-extensions.mjs"
430
- },
431
- "./util/pub-sub": {
432
- "types": "./util/pub-sub/index.d.ts",
433
- "esm2022": "./esm2022/util/pub-sub/aril-util-pub-sub.mjs",
434
- "esm": "./esm2022/util/pub-sub/aril-util-pub-sub.mjs",
435
- "default": "./fesm2022/aril-util-pub-sub.mjs"
436
- },
437
- "./util/unwrap": {
438
- "types": "./util/unwrap/index.d.ts",
439
- "esm2022": "./esm2022/util/unwrap/aril-util-unwrap.mjs",
440
- "esm": "./esm2022/util/unwrap/aril-util-unwrap.mjs",
441
- "default": "./fesm2022/aril-util-unwrap.mjs"
442
- },
443
- "./boot/config/apps": {
444
- "types": "./boot/config/apps/index.d.ts",
445
- "esm2022": "./esm2022/boot/config/apps/aril-boot-config-apps.mjs",
446
- "esm": "./esm2022/boot/config/apps/aril-boot-config-apps.mjs",
447
- "default": "./fesm2022/aril-boot-config-apps.mjs"
448
- },
449
449
  "./boot/config/api": {
450
450
  "types": "./boot/config/api/index.d.ts",
451
451
  "esm2022": "./esm2022/boot/config/api/aril-boot-config-api.mjs",
452
452
  "esm": "./esm2022/boot/config/api/aril-boot-config-api.mjs",
453
453
  "default": "./fesm2022/aril-boot-config-api.mjs"
454
454
  },
455
- "./boot/config/plugins": {
456
- "types": "./boot/config/plugins/index.d.ts",
457
- "esm2022": "./esm2022/boot/config/plugins/aril-boot-config-plugins.mjs",
458
- "esm": "./esm2022/boot/config/plugins/aril-boot-config-plugins.mjs",
459
- "default": "./fesm2022/aril-boot-config-plugins.mjs"
455
+ "./boot/config/apps": {
456
+ "types": "./boot/config/apps/index.d.ts",
457
+ "esm2022": "./esm2022/boot/config/apps/aril-boot-config-apps.mjs",
458
+ "esm": "./esm2022/boot/config/apps/aril-boot-config-apps.mjs",
459
+ "default": "./fesm2022/aril-boot-config-apps.mjs"
460
460
  },
461
461
  "./ui/business-components/assetPicker": {
462
462
  "types": "./ui/business-components/assetPicker/index.d.ts",
@@ -16,6 +16,7 @@ $colors: (
16
16
  //shades
17
17
  $shade000: rgba(255, 255, 255, 0.87) !default; //text color
18
18
  $shade100: rgba(255, 255, 255, 0.6) !default; //text secondary color
19
+ $shade400: #e9eff7 !default; // panel header bg
19
20
  $shade500: #6b7280 !default;
20
21
  $shade600: #424b57 !default; //input bg, border, divider
21
22
  $shade700: #374151 !default; //menu bg
@@ -355,7 +356,7 @@ $inputSwitchHandleOnBg: $primaryTextColor !default;
355
356
  //panel
356
357
  $panelHeaderBorderColor: $shade600 !default;
357
358
  $panelHeaderBorder: 1px solid $shade600 !default;
358
- $panelHeaderBg: $shade800 !default;
359
+ $panelHeaderBg: $shade400 !default;
359
360
  $panelHeaderTextColor: $shade000 !default;
360
361
  $panelHeaderFontWeight: 700 !default;
361
362
  $panelHeaderPadding: 1.25rem !default;
@@ -24,6 +24,7 @@ $shade600: #6b7280 !default; //text secondary color
24
24
  $shade700: #4b5563 !default; //text color
25
25
  $shade800: #374151 !default; //unused
26
26
  $shade900: #1f2937 !default; //unused
27
+ $shade1000: #e9eff7 !default; // panel header bg
27
28
 
28
29
  //global
29
30
  $fontFamily: 'Inter';
@@ -354,7 +355,7 @@ $inputSwitchHandleOnBg: $shade000 !default;
354
355
  //panel
355
356
  $panelHeaderBorderColor: $shade300 !default;
356
357
  $panelHeaderBorder: 1px solid $shade300 !default;
357
- $panelHeaderBg: $shade100 !default;
358
+ $panelHeaderBg: $shade1000 !default;
358
359
  $panelHeaderTextColor: $shade800 !default;
359
360
  $panelHeaderFontWeight: 700 !default;
360
361
  $panelHeaderPadding: 1.25rem !default;
@@ -10,10 +10,11 @@ export declare class TreeComponent {
10
10
  filter: import("@angular/core").InputSignal<boolean, boolean>;
11
11
  selectionMode: import("@angular/core").InputSignal<SelectionModes | undefined, SelectionModes | undefined>;
12
12
  selectedNode: import("@angular/core").InputSignal<TreeNode<any> | TreeNode<any>[] | null, TreeNode<any> | TreeNode<any>[] | null>;
13
+ styleClass: import("@angular/core").InputSignal<string | null, string | null>;
13
14
  expandEvent: EventEmitter<unknown>;
14
15
  selectionEvent: EventEmitter<any>;
15
16
  selectionNodes: TreeNode | TreeNode[] | null;
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<TreeComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<TreeComponent, "aril-tree", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "contextMenu": { "alias": "contextMenu"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selectedNode": { "alias": "selectedNode"; "required": false; "isSignal": true; }; }, { "expandEvent": "expandEvent"; "selectionEvent": "selectionEvent"; }, never, never, true, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<TreeComponent, "aril-tree", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "contextMenu": { "alias": "contextMenu"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selectedNode": { "alias": "selectedNode"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, { "expandEvent": "expandEvent"; "selectionEvent": "selectionEvent"; }, never, never, true, never>;
18
19
  }
19
20
  export {};