@elite.framework/ng.ui.core 1.0.38 → 1.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/breadcrumb/index.d.ts +1 -2
- package/fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs +34 -25
- package/fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs +2 -2
- package/fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.ui.core-tag-type.mjs +4 -2
- package/fesm2022/elite.framework-ng.ui.core-tag-type.mjs.map +1 -1
- package/package.json +17 -17
package/breadcrumb/index.d.ts
CHANGED
|
@@ -9,10 +9,9 @@ declare class BreadcrumbModule {
|
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
declare class BreadcrumbComponent {
|
|
12
|
-
homeUrl: string;
|
|
13
12
|
breadcrumb: MenuItem[] | any;
|
|
14
13
|
static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
|
|
15
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "app-breadcrumb", never, { "
|
|
14
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "app-breadcrumb", never, { "breadcrumb": { "alias": "breadcrumb"; "required": false; }; }, {}, never, never, true, never>;
|
|
16
15
|
}
|
|
17
16
|
|
|
18
17
|
export { BreadcrumbComponent, BreadcrumbModule };
|
|
@@ -18,27 +18,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
18
18
|
}] });
|
|
19
19
|
|
|
20
20
|
class BreadcrumbComponent {
|
|
21
|
-
homeUrl = '/';
|
|
22
21
|
breadcrumb = [];
|
|
23
22
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
23
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: BreadcrumbComponent, isStandalone: true, selector: "app-breadcrumb", inputs: { breadcrumb: "breadcrumb" }, ngImport: i0, template: `
|
|
25
24
|
<nav class="overflow-x-auto">
|
|
26
25
|
<ul class="flex items-center text-white text-sm font-medium" role="list">
|
|
27
|
-
|
|
28
|
-
<a
|
|
29
|
-
[routerLink]="[homeUrl]"
|
|
30
|
-
class="flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150 rounded-r-md"
|
|
31
|
-
style="clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0% 50%)"
|
|
32
|
-
>
|
|
33
|
-
<i class="pi pi-home mr-2 rtl:ml-2 rtl:mr-0 text-base"></i>
|
|
34
|
-
</a>
|
|
35
|
-
</li>
|
|
26
|
+
|
|
36
27
|
<li
|
|
37
28
|
*ngFor="let item of breadcrumb; let i = index; let first = first; let last = last"
|
|
38
29
|
class="relative z-10"
|
|
39
30
|
>
|
|
40
31
|
|
|
41
32
|
<ng-container *ngIf="item.routerLink && !last; else textOnly">
|
|
33
|
+
@if(i === 0){
|
|
34
|
+
<a
|
|
35
|
+
[routerLink]="item.routerLink"
|
|
36
|
+
class="flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150 rounded-r-md"
|
|
37
|
+
style="clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0% 50%)"
|
|
38
|
+
>
|
|
39
|
+
<i class="pi pi-home mr-2 rtl:ml-2 rtl:mr-0 text-base"></i>
|
|
40
|
+
</a>
|
|
41
|
+
}
|
|
42
|
+
@else {
|
|
42
43
|
<a
|
|
43
44
|
[routerLink]="item.routerLink"
|
|
44
45
|
class="flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150"
|
|
@@ -53,9 +54,11 @@ class BreadcrumbComponent {
|
|
|
53
54
|
<i *ngIf="item.icon" [class]="item.icon + ' mr-2 text-base'"></i>
|
|
54
55
|
{{ item.label }}
|
|
55
56
|
</a>
|
|
57
|
+
}
|
|
56
58
|
</ng-container>
|
|
57
59
|
<ng-template #textOnly>
|
|
58
|
-
|
|
60
|
+
|
|
61
|
+
<span
|
|
59
62
|
class="flex items-center h-10 px-4 pr-6 text-white"
|
|
60
63
|
[ngClass]="{
|
|
61
64
|
'bg-primary-500': i % 2 === 0,
|
|
@@ -68,6 +71,8 @@ class BreadcrumbComponent {
|
|
|
68
71
|
<i *ngIf="item.icon" [class]="item.icon + ' mr-2 text-base'"></i>
|
|
69
72
|
{{ item.label }}
|
|
70
73
|
</span>
|
|
74
|
+
|
|
75
|
+
|
|
71
76
|
</ng-template>
|
|
72
77
|
</li>
|
|
73
78
|
</ul>
|
|
@@ -83,21 +88,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
83
88
|
template: `
|
|
84
89
|
<nav class="overflow-x-auto">
|
|
85
90
|
<ul class="flex items-center text-white text-sm font-medium" role="list">
|
|
86
|
-
|
|
87
|
-
<a
|
|
88
|
-
[routerLink]="[homeUrl]"
|
|
89
|
-
class="flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150 rounded-r-md"
|
|
90
|
-
style="clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0% 50%)"
|
|
91
|
-
>
|
|
92
|
-
<i class="pi pi-home mr-2 rtl:ml-2 rtl:mr-0 text-base"></i>
|
|
93
|
-
</a>
|
|
94
|
-
</li>
|
|
91
|
+
|
|
95
92
|
<li
|
|
96
93
|
*ngFor="let item of breadcrumb; let i = index; let first = first; let last = last"
|
|
97
94
|
class="relative z-10"
|
|
98
95
|
>
|
|
99
96
|
|
|
100
97
|
<ng-container *ngIf="item.routerLink && !last; else textOnly">
|
|
98
|
+
@if(i === 0){
|
|
99
|
+
<a
|
|
100
|
+
[routerLink]="item.routerLink"
|
|
101
|
+
class="flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150 rounded-r-md"
|
|
102
|
+
style="clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0% 50%)"
|
|
103
|
+
>
|
|
104
|
+
<i class="pi pi-home mr-2 rtl:ml-2 rtl:mr-0 text-base"></i>
|
|
105
|
+
</a>
|
|
106
|
+
}
|
|
107
|
+
@else {
|
|
101
108
|
<a
|
|
102
109
|
[routerLink]="item.routerLink"
|
|
103
110
|
class="flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150"
|
|
@@ -112,9 +119,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
112
119
|
<i *ngIf="item.icon" [class]="item.icon + ' mr-2 text-base'"></i>
|
|
113
120
|
{{ item.label }}
|
|
114
121
|
</a>
|
|
122
|
+
}
|
|
115
123
|
</ng-container>
|
|
116
124
|
<ng-template #textOnly>
|
|
117
|
-
|
|
125
|
+
|
|
126
|
+
<span
|
|
118
127
|
class="flex items-center h-10 px-4 pr-6 text-white"
|
|
119
128
|
[ngClass]="{
|
|
120
129
|
'bg-primary-500': i % 2 === 0,
|
|
@@ -127,15 +136,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
127
136
|
<i *ngIf="item.icon" [class]="item.icon + ' mr-2 text-base'"></i>
|
|
128
137
|
{{ item.label }}
|
|
129
138
|
</span>
|
|
139
|
+
|
|
140
|
+
|
|
130
141
|
</ng-template>
|
|
131
142
|
</li>
|
|
132
143
|
</ul>
|
|
133
144
|
</nav>
|
|
134
145
|
`,
|
|
135
146
|
}]
|
|
136
|
-
}], propDecorators: {
|
|
137
|
-
type: Input
|
|
138
|
-
}], breadcrumb: [{
|
|
147
|
+
}], propDecorators: { breadcrumb: [{
|
|
139
148
|
type: Input
|
|
140
149
|
}] } });
|
|
141
150
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-breadcrumb.mjs","sources":["../tmp-esm2022/breadcrumb/lib/breadcrumb-module.js","../tmp-esm2022/breadcrumb/lib/breadcrumb.js","../tmp-esm2022/breadcrumb/elite.framework-ng.ui.core-breadcrumb.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class BreadcrumbModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvYnJlYWRjcnVtYi9zcmMvbGliL2JyZWFkY3J1bWItbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7d0dBQWhCLGdCQUFnQixZQUZqQixZQUFZO3dHQUVYLGdCQUFnQixZQUZqQixZQUFZOzsyRkFFWCxnQkFBZ0I7a0JBSDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYk1vZHVsZSB7fVxuIl19","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router'; // <--- أضف هذا الاستيراد\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/router\";\nexport class BreadcrumbComponent {\n homeUrl = '/';\n breadcrumb = [];\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: BreadcrumbComponent, isStandalone: true, selector: \"app-breadcrumb\", inputs: { homeUrl: \"homeUrl\", breadcrumb: \"breadcrumb\" }, ngImport: i0, template: `\n <nav class=\"overflow-x-auto\">\n <ul class=\"flex items-center text-white text-sm font-medium\" role=\"list\">\n <li class=\"relative z-10\">\n <a\n [routerLink]=\"[homeUrl]\"\n class=\"flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150 rounded-r-md\"\n style=\"clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0% 50%)\"\n >\n <i class=\"pi pi-home mr-2 rtl:ml-2 rtl:mr-0 text-base\"></i>\n </a>\n </li>\n <li\n *ngFor=\"let item of breadcrumb; let i = index; let first = first; let last = last\"\n class=\"relative z-10\"\n >\n\n <ng-container *ngIf=\"item.routerLink && !last; else textOnly\">\n <a\n [routerLink]=\"item.routerLink\"\n class=\"flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150\"\n [ngClass]=\"{\n 'bg-primary-500': i % 2 === 0,\n 'bg-primary-600': i % 2 === 1,\n 'rounded-l-md pl-5': first,\n 'rounded-r-md pr-5': last\n }\"\n style=\"clip-path: polygon(100% 0, 12px 0, 0 50%, 12px 100%, 100% 100%, calc(100% - 12px) 50%)\"\n >\n <i *ngIf=\"item.icon\" [class]=\"item.icon + ' mr-2 text-base'\"></i>\n {{ item.label }}\n </a>\n </ng-container>\n <ng-template #textOnly>\n <span\n class=\"flex items-center h-10 px-4 pr-6 text-white\"\n [ngClass]=\"{\n 'bg-primary-500': i % 2 === 0,\n 'bg-primary-600': i % 2 === 1,\n 'rounded-l-md pl-5': first,\n 'rounded-r-md pr-5': last\n }\"\n style=\"clip-path: polygon(100% 0, 12px 0, 0 50%, 12px 100%, 100% 100%, calc(100% - 12px) 50%)\"\n >\n <i *ngIf=\"item.icon\" [class]=\"item.icon + ' mr-2 text-base'\"></i>\n {{ item.label }}\n </span>\n </ng-template>\n </li>\n </ul>\n </nav>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i2.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-breadcrumb',\n standalone: true,\n imports: [CommonModule, RouterModule], // <--- أضف RouterModule هنا\n template: `\n <nav class=\"overflow-x-auto\">\n <ul class=\"flex items-center text-white text-sm font-medium\" role=\"list\">\n <li class=\"relative z-10\">\n <a\n [routerLink]=\"[homeUrl]\"\n class=\"flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150 rounded-r-md\"\n style=\"clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0% 50%)\"\n >\n <i class=\"pi pi-home mr-2 rtl:ml-2 rtl:mr-0 text-base\"></i>\n </a>\n </li>\n <li\n *ngFor=\"let item of breadcrumb; let i = index; let first = first; let last = last\"\n class=\"relative z-10\"\n >\n\n <ng-container *ngIf=\"item.routerLink && !last; else textOnly\">\n <a\n [routerLink]=\"item.routerLink\"\n class=\"flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150\"\n [ngClass]=\"{\n 'bg-primary-500': i % 2 === 0,\n 'bg-primary-600': i % 2 === 1,\n 'rounded-l-md pl-5': first,\n 'rounded-r-md pr-5': last\n }\"\n style=\"clip-path: polygon(100% 0, 12px 0, 0 50%, 12px 100%, 100% 100%, calc(100% - 12px) 50%)\"\n >\n <i *ngIf=\"item.icon\" [class]=\"item.icon + ' mr-2 text-base'\"></i>\n {{ item.label }}\n </a>\n </ng-container>\n <ng-template #textOnly>\n <span\n class=\"flex items-center h-10 px-4 pr-6 text-white\"\n [ngClass]=\"{\n 'bg-primary-500': i % 2 === 0,\n 'bg-primary-600': i % 2 === 1,\n 'rounded-l-md pl-5': first,\n 'rounded-r-md pr-5': last\n }\"\n style=\"clip-path: polygon(100% 0, 12px 0, 0 50%, 12px 100%, 100% 100%, calc(100% - 12px) 50%)\"\n >\n <i *ngIf=\"item.icon\" [class]=\"item.icon + ' mr-2 text-base'\"></i>\n {{ item.label }}\n </span>\n </ng-template>\n </li>\n </ul>\n </nav>\n `,\n }]\n }], propDecorators: { homeUrl: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9icmVhZGNydW1iL3NyYy9saWIvYnJlYWRjcnVtYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDLENBQUMseUJBQXlCOzs7O0FBMkR6RSxNQUFNLE9BQU8sbUJBQW1CO0lBQ3JCLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDZCxVQUFVLEdBQXFCLEVBQUUsQ0FBQzt1R0FGaEMsbUJBQW1COzJGQUFuQixtQkFBbUIsb0lBckRwQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbURULDJEQXBEUyxZQUFZLDZWQUFFLFlBQVk7OzJGQXNEekIsbUJBQW1CO2tCQXpEL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxFQUFFLDRCQUE0QjtvQkFDbkUsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRFQ7aUJBQ0Y7OEJBRVUsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInOyAvLyA8LS0tINij2LbZgSDZh9iw2Kcg2KfZhNin2LPYqtmK2LHYp9ivXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1icmVhZGNydW1iJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlXSwgLy8gPC0tLSDYo9i22YEgUm91dGVyTW9kdWxlINmH2YbYp1xuICB0ZW1wbGF0ZTogYFxuICAgIDxuYXYgY2xhc3M9XCJvdmVyZmxvdy14LWF1dG9cIj5cbiAgICAgIDx1bCBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIHRleHQtd2hpdGUgdGV4dC1zbSBmb250LW1lZGl1bVwiIHJvbGU9XCJsaXN0XCI+XG4gICAgICAgIDxsaSBjbGFzcz1cInJlbGF0aXZlIHotMTBcIj5cbiAgICAgICAgICA8YVxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiW2hvbWVVcmxdXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgaC0xMCBweC00IHByLTYgdGV4dC13aGl0ZSBiZy1wcmltYXJ5LTUwMCBob3ZlcjpiZy10ZWFsLTUwMCBhY3RpdmU6YmctdGVhbC02MDAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTUwIHJvdW5kZWQtci1tZFwiXG4gICAgICAgICAgICBzdHlsZT1cImNsaXAtcGF0aDogcG9seWdvbigxMnB4IDAsIDEwMCUgMCwgMTAwJSAxMDAlLCAxMnB4IDEwMCUsIDAlIDUwJSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktaG9tZSBtci0yIHJ0bDptbC0yIHJ0bDptci0wIHRleHQtYmFzZVwiPjwvaT5cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxsaVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJyZWFkY3J1bWI7IGxldCBpID0gaW5kZXg7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICAgIGNsYXNzPVwicmVsYXRpdmUgei0xMFwiXG4gICAgICAgID5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnJvdXRlckxpbmsgJiYgIWxhc3Q7IGVsc2UgdGV4dE9ubHlcIj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgaC0xMCBweC00IHByLTYgdGV4dC13aGl0ZSBiZy1wcmltYXJ5LTUwMCBob3ZlcjpiZy10ZWFsLTUwMCBhY3RpdmU6YmctdGVhbC02MDAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTUwXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdiZy1wcmltYXJ5LTUwMCc6IGkgJSAyID09PSAwLFxuICAgICAgICAgICAgICAgICdiZy1wcmltYXJ5LTYwMCc6IGkgJSAyID09PSAxLFxuICAgICAgICAgICAgICAgICdyb3VuZGVkLWwtbWQgcGwtNSc6IGZpcnN0LFxuICAgICAgICAgICAgICAgICdyb3VuZGVkLXItbWQgcHItNSc6IGxhc3RcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIHN0eWxlPVwiY2xpcC1wYXRoOiBwb2x5Z29uKDEwMCUgMCwgMTJweCAwLCAwIDUwJSwgMTJweCAxMDAlLCAxMDAlIDEwMCUsIGNhbGMoMTAwJSAtIDEycHgpIDUwJSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uaWNvblwiIFtjbGFzc109XCJpdGVtLmljb24gKyAnIG1yLTIgdGV4dC1iYXNlJ1wiPjwvaT5cbiAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGV4dE9ubHk+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGgtMTAgcHgtNCBwci02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2JnLXByaW1hcnktNTAwJzogaSAlIDIgPT09IDAsXG4gICAgICAgICAgICAgICAgJ2JnLXByaW1hcnktNjAwJzogaSAlIDIgPT09IDEsXG4gICAgICAgICAgICAgICAgJ3JvdW5kZWQtbC1tZCBwbC01JzogZmlyc3QsXG4gICAgICAgICAgICAgICAgJ3JvdW5kZWQtci1tZCBwci01JzogbGFzdFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJjbGlwLXBhdGg6IHBvbHlnb24oMTAwJSAwLCAxMnB4IDAsIDAgNTAlLCAxMnB4IDEwMCUsIDEwMCUgMTAwJSwgY2FsYygxMDAlIC0gMTJweCkgNTAlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbS5pY29uXCIgW2NsYXNzXT1cIml0ZW0uaWNvbiArICcgbXItMiB0ZXh0LWJhc2UnXCI+PC9pPlxuICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvdWw+XG4gICAgPC9uYXY+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQge1xuICBASW5wdXQoKSBob21lVXJsID0gJy8nO1xuICBASW5wdXQoKSBicmVhZGNydW1iOiBNZW51SXRlbVtdIHwgYW55ID0gW107XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtYnJlYWRjcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9icmVhZGNydW1iL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1icmVhZGNydW1iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-breadcrumb.mjs","sources":["../tmp-esm2022/breadcrumb/lib/breadcrumb-module.js","../tmp-esm2022/breadcrumb/lib/breadcrumb.js","../tmp-esm2022/breadcrumb/elite.framework-ng.ui.core-breadcrumb.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class BreadcrumbModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvYnJlYWRjcnVtYi9zcmMvbGliL2JyZWFkY3J1bWItbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7d0dBQWhCLGdCQUFnQixZQUZqQixZQUFZO3dHQUVYLGdCQUFnQixZQUZqQixZQUFZOzsyRkFFWCxnQkFBZ0I7a0JBSDVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQnJlYWRjcnVtYk1vZHVsZSB7fVxuIl19","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router'; // <--- أضف هذا الاستيراد\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/router\";\nexport class BreadcrumbComponent {\n breadcrumb = [];\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: BreadcrumbComponent, isStandalone: true, selector: \"app-breadcrumb\", inputs: { breadcrumb: \"breadcrumb\" }, ngImport: i0, template: `\n <nav class=\"overflow-x-auto\">\n <ul class=\"flex items-center text-white text-sm font-medium\" role=\"list\">\n\n <li\n *ngFor=\"let item of breadcrumb; let i = index; let first = first; let last = last\"\n class=\"relative z-10\"\n >\n\n <ng-container *ngIf=\"item.routerLink && !last; else textOnly\">\n @if(i === 0){\n <a\n [routerLink]=\"item.routerLink\"\n class=\"flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150 rounded-r-md\"\n style=\"clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0% 50%)\"\n >\n <i class=\"pi pi-home mr-2 rtl:ml-2 rtl:mr-0 text-base\"></i>\n </a>\n }\n @else {\n <a\n [routerLink]=\"item.routerLink\"\n class=\"flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150\"\n [ngClass]=\"{\n 'bg-primary-500': i % 2 === 0,\n 'bg-primary-600': i % 2 === 1,\n 'rounded-l-md pl-5': first,\n 'rounded-r-md pr-5': last\n }\"\n style=\"clip-path: polygon(100% 0, 12px 0, 0 50%, 12px 100%, 100% 100%, calc(100% - 12px) 50%)\"\n >\n <i *ngIf=\"item.icon\" [class]=\"item.icon + ' mr-2 text-base'\"></i>\n {{ item.label }}\n </a>\n }\n </ng-container>\n <ng-template #textOnly>\n\n <span\n class=\"flex items-center h-10 px-4 pr-6 text-white\"\n [ngClass]=\"{\n 'bg-primary-500': i % 2 === 0,\n 'bg-primary-600': i % 2 === 1,\n 'rounded-l-md pl-5': first,\n 'rounded-r-md pr-5': last\n }\"\n style=\"clip-path: polygon(100% 0, 12px 0, 0 50%, 12px 100%, 100% 100%, calc(100% - 12px) 50%)\"\n >\n <i *ngIf=\"item.icon\" [class]=\"item.icon + ' mr-2 text-base'\"></i>\n {{ item.label }}\n </span>\n\n\n </ng-template>\n </li>\n </ul>\n </nav>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: RouterModule }, { kind: \"directive\", type: i2.RouterLink, selector: \"[routerLink]\", inputs: [\"target\", \"queryParams\", \"fragment\", \"queryParamsHandling\", \"state\", \"info\", \"relativeTo\", \"preserveFragment\", \"skipLocationChange\", \"replaceUrl\", \"routerLink\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BreadcrumbComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-breadcrumb',\n standalone: true,\n imports: [CommonModule, RouterModule], // <--- أضف RouterModule هنا\n template: `\n <nav class=\"overflow-x-auto\">\n <ul class=\"flex items-center text-white text-sm font-medium\" role=\"list\">\n\n <li\n *ngFor=\"let item of breadcrumb; let i = index; let first = first; let last = last\"\n class=\"relative z-10\"\n >\n\n <ng-container *ngIf=\"item.routerLink && !last; else textOnly\">\n @if(i === 0){\n <a\n [routerLink]=\"item.routerLink\"\n class=\"flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150 rounded-r-md\"\n style=\"clip-path: polygon(12px 0, 100% 0, 100% 100%, 12px 100%, 0% 50%)\"\n >\n <i class=\"pi pi-home mr-2 rtl:ml-2 rtl:mr-0 text-base\"></i>\n </a>\n }\n @else {\n <a\n [routerLink]=\"item.routerLink\"\n class=\"flex items-center h-10 px-4 pr-6 text-white bg-primary-500 hover:bg-teal-500 active:bg-teal-600 transition-all duration-150\"\n [ngClass]=\"{\n 'bg-primary-500': i % 2 === 0,\n 'bg-primary-600': i % 2 === 1,\n 'rounded-l-md pl-5': first,\n 'rounded-r-md pr-5': last\n }\"\n style=\"clip-path: polygon(100% 0, 12px 0, 0 50%, 12px 100%, 100% 100%, calc(100% - 12px) 50%)\"\n >\n <i *ngIf=\"item.icon\" [class]=\"item.icon + ' mr-2 text-base'\"></i>\n {{ item.label }}\n </a>\n }\n </ng-container>\n <ng-template #textOnly>\n\n <span\n class=\"flex items-center h-10 px-4 pr-6 text-white\"\n [ngClass]=\"{\n 'bg-primary-500': i % 2 === 0,\n 'bg-primary-600': i % 2 === 1,\n 'rounded-l-md pl-5': first,\n 'rounded-r-md pr-5': last\n }\"\n style=\"clip-path: polygon(100% 0, 12px 0, 0 50%, 12px 100%, 100% 100%, calc(100% - 12px) 50%)\"\n >\n <i *ngIf=\"item.icon\" [class]=\"item.icon + ' mr-2 text-base'\"></i>\n {{ item.label }}\n </span>\n\n\n </ng-template>\n </li>\n </ul>\n </nav>\n `,\n }]\n }], propDecorators: { breadcrumb: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9icmVhZGNydW1iL3NyYy9saWIvYnJlYWRjcnVtYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDLENBQUMseUJBQXlCOzs7O0FBaUV6RSxNQUFNLE9BQU8sbUJBQW1CO0lBQ3JCLFVBQVUsR0FBcUIsRUFBRSxDQUFDO3VHQURoQyxtQkFBbUI7MkZBQW5CLG1CQUFtQixnSEEzRHBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RFQsMkRBMURTLFlBQVksNlZBQUUsWUFBWTs7MkZBNER6QixtQkFBbUI7a0JBL0QvQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUUsNEJBQTRCO29CQUNuRSxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlEVDtpQkFDRjs4QkFFVSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJzsgLy8gPC0tLSDYo9i22YEg2YfYsNinINin2YTYp9iz2KrZitix2KfYr1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYnJlYWRjcnVtYicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJvdXRlck1vZHVsZV0sIC8vIDwtLS0g2KPYttmBIFJvdXRlck1vZHVsZSDZh9mG2KdcbiAgdGVtcGxhdGU6IGBcbiAgICA8bmF2IGNsYXNzPVwib3ZlcmZsb3cteC1hdXRvXCI+XG4gICAgICA8dWwgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciB0ZXh0LXdoaXRlIHRleHQtc20gZm9udC1tZWRpdW1cIiByb2xlPVwibGlzdFwiPlxuXG4gICAgICAgIDxsaVxuICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIGJyZWFkY3J1bWI7IGxldCBpID0gaW5kZXg7IGxldCBmaXJzdCA9IGZpcnN0OyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICAgIGNsYXNzPVwicmVsYXRpdmUgei0xMFwiXG4gICAgICAgID5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnJvdXRlckxpbmsgJiYgIWxhc3Q7IGVsc2UgdGV4dE9ubHlcIj5cbiAgICAgICAgICAgICBAaWYoaSA9PT0gMCl7XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBoLTEwIHB4LTQgcHItNiB0ZXh0LXdoaXRlIGJnLXByaW1hcnktNTAwIGhvdmVyOmJnLXRlYWwtNTAwIGFjdGl2ZTpiZy10ZWFsLTYwMCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0xNTAgcm91bmRlZC1yLW1kXCJcbiAgICAgICAgICAgIHN0eWxlPVwiY2xpcC1wYXRoOiBwb2x5Z29uKDEycHggMCwgMTAwJSAwLCAxMDAlIDEwMCUsIDEycHggMTAwJSwgMCUgNTAlKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1ob21lIG1yLTIgcnRsOm1sLTIgcnRsOm1yLTAgdGV4dC1iYXNlXCI+PC9pPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgaC0xMCBweC00IHByLTYgdGV4dC13aGl0ZSBiZy1wcmltYXJ5LTUwMCBob3ZlcjpiZy10ZWFsLTUwMCBhY3RpdmU6YmctdGVhbC02MDAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMTUwXCJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAgICdiZy1wcmltYXJ5LTUwMCc6IGkgJSAyID09PSAwLFxuICAgICAgICAgICAgICAgICdiZy1wcmltYXJ5LTYwMCc6IGkgJSAyID09PSAxLFxuICAgICAgICAgICAgICAgICdyb3VuZGVkLWwtbWQgcGwtNSc6IGZpcnN0LFxuICAgICAgICAgICAgICAgICdyb3VuZGVkLXItbWQgcHItNSc6IGxhc3RcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgIHN0eWxlPVwiY2xpcC1wYXRoOiBwb2x5Z29uKDEwMCUgMCwgMTJweCAwLCAwIDUwJSwgMTJweCAxMDAlLCAxMDAlIDEwMCUsIGNhbGMoMTAwJSAtIDEycHgpIDUwJSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSAqbmdJZj1cIml0ZW0uaWNvblwiIFtjbGFzc109XCJpdGVtLmljb24gKyAnIG1yLTIgdGV4dC1iYXNlJ1wiPjwvaT5cbiAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGV4dE9ubHk+XG5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGgtMTAgcHgtNCBwci02IHRleHQtd2hpdGVcIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2JnLXByaW1hcnktNTAwJzogaSAlIDIgPT09IDAsXG4gICAgICAgICAgICAgICAgJ2JnLXByaW1hcnktNjAwJzogaSAlIDIgPT09IDEsXG4gICAgICAgICAgICAgICAgJ3JvdW5kZWQtbC1tZCBwbC01JzogZmlyc3QsXG4gICAgICAgICAgICAgICAgJ3JvdW5kZWQtci1tZCBwci01JzogbGFzdFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJjbGlwLXBhdGg6IHBvbHlnb24oMTAwJSAwLCAxMnB4IDAsIDAgNTAlLCAxMnB4IDEwMCUsIDEwMCUgMTAwJSwgY2FsYygxMDAlIC0gMTJweCkgNTAlKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwiaXRlbS5pY29uXCIgW2NsYXNzXT1cIml0ZW0uaWNvbiArICcgbXItMiB0ZXh0LWJhc2UnXCI+PC9pPlxuICAgICAgICAgICAgICB7eyBpdGVtLmxhYmVsIH19XG4gICAgICAgICAgICA8L3NwYW4+XG5cblxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbGk+XG4gICAgICA8L3VsPlxuICAgIDwvbmF2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBCcmVhZGNydW1iQ29tcG9uZW50IHtcbiAgQElucHV0KCkgYnJlYWRjcnVtYjogTWVudUl0ZW1bXSB8IGFueSA9IFtdO1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtYnJlYWRjcnVtYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9icmVhZGNydW1iL3NyYy9lbGl0ZS5mcmFtZXdvcmstbmcudWkuY29yZS1icmVhZGNydW1iLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
@@ -271,7 +271,7 @@ class GenericCrudTableComponent {
|
|
|
271
271
|
});
|
|
272
272
|
}
|
|
273
273
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericCrudTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
274
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: GenericCrudTableComponent, isStandalone: true, selector: "app-generic-crud-table", inputs: { data: "data", formFields: "formFields", columns: "columns", dialogMaxWidth: "dialogMaxWidth", isViewMode: "isViewMode", displayMode: "displayMode", isEditMode: "isEditMode", drawerVisible: "drawerVisible", dialogVisible: "dialogVisible", model: "model", loading: "loading", errorMsg: "errorMsg", errorMessage: "errorMessage", actions: "actions", actionsMode: "actionsMode", filters: "filters", filterModel: "filterModel", showSearch: "showSearch", first: "first", rows: "rows", totalRecords: "totalRecords", rowSelectable: "rowSelectable", scrollHeight: "scrollHeight", paginator: "paginator", service: "service", idField: "idField", showRowSelectionCheckbox: "showRowSelectionCheckbox", bulkActionButtons: "bulkActionButtons", singleActionButtons: "singleActionButtons", showAddButton: "showAddButton", splitActions: "splitActions", addButtonIcon: "addButtonIcon", addButtonLabel: "addButtonLabel", addButtonPosition: "addButtonPosition", addButtonConfigs: "addButtonConfigs", breadcrumb: "breadcrumb", beforeSave: "beforeSave" }, outputs: { action: "action", bulkAction: "bulkAction", singleAction: "singleAction", search: "search", pageChange: "pageChange", onSearch: "onSearch", visibleChange: "visibleChange", rowSelect: "rowSelect" }, host: { classAttribute: "h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl p-4 bg-white" }, viewQueries: [{ propertyName: "genericTable", first: true, predicate: ["genericTable"], descendants: true }], ngImport: i0, template: "\r\n <div class=\"flex items-start gap-2 justify-between\">\r\n <div>\r\n <!-- <div class=\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\">\r\n <p-breadcrumb\r\n [model]=\"breadcrumb_\"\r\n [home]=\"home\"\r\n styleClass=\"custom-breadcrumb\"\r\n ></p-breadcrumb>\r\n </div> -->\r\n\r\n<app-breadcrumb [breadcrumb]=\"breadcrumb_\"></app-breadcrumb>\r\n\r\n </div>\r\n\r\n<div class=\"flex items-center gap-2 justify-end flex-wrap\">\r\n <ng-container *ngIf=\"isSingleItemSelected\">\r\n <ng-container *ngFor=\"let btn of singleActionButtons; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n\r\n [icon]=\"btn.icon\"\r\n[label]=\"btn.label | translate\"\r\n[variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onSingleItemAction(btn)\"\r\n ></lib-generic-button>\r\n</ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"selectedItems.length > 0\">\r\n <ng-container *ngFor=\"let btn of bulkActionButtons; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onInternalBulkAction(btn)\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n\r\n\r\n\r\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\r\n\r\n @if (showAddButton && splitActions.length === 0) {\r\n\r\n <!-- <p-button\r\n icon=\"pi pi-circle-fill text-green-500\" *ngIf=\"showAddButton && addButtonConfigs.length === 0\"\r\n [label]=\"(addButtonLabel | translate)\r\n \"(onClick)=\"action.emit({ name: 'add', row: null! })\"\r\n outlined severity=\"secondary\" /> -->\r\n\r\n <ui-button\r\n [config]=\"{\r\n type: 'button',\r\n label: addButtonLabel| translate,\r\n icon: 'pi pi-plus',\r\n severity: 'primary',\r\n outlined: false,\r\n styleClass:''\r\n }\"\r\n (onClick)=\"action.emit({ name: 'add', row: null! })\">\r\n </ui-button>\r\n }\r\n @else {\r\n <!-- Split Button -->\r\n <ui-button\r\n [config]=\"{\r\n type: 'split',\r\n label: addButtonLabel| translate,\r\n icon: 'pi pi-plus',\r\n severity: 'primary',\r\n loading: false,\r\n outlined: false,\r\n items: splitActions\r\n }\"\r\n (onClick)=\"action.emit({ name: 'add', row: null! })\">\r\n </ui-button>\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"mt-2 mb-4 flex items-center justify-between\">\r\n\r\n <ng-container *ngIf=\"showSearch && filters; else emptySearch\">\r\n <lib-generic-search\r\n [model]=\"filterModel\"\r\n [fields]=\"filters\"\r\n (search)=\"applySearch($event)\"\r\n (reset)=\"applySearch('')\"\r\n ></lib-generic-search>\r\n </ng-container>\r\n\r\n <ng-template #emptySearch>\r\n <!-- Render a dummy div to preserve expected DOM shape -->\r\n <!-- <div class=\"min-h-[2.5rem] w-[12rem]\"></div> -->\r\n </ng-template>\r\n\r\n <div class=\"flex items-center gap-3\">\r\n\r\n <p-button icon=\"pi pi-refresh\" outlined severity=\"secondary\" (onClick)=\"applySearch('')\" />\r\n <p-divider layout=\"vertical\" class=\"m-0 p-0\" />\r\n <p-button icon=\"pi pi-sort\" outlined severity=\"secondary\" />\r\n <p-button label=\"1 of 15\" outlined severity=\"secondary\" />\r\n <p-button icon=\"pi pi-chevron-right\" outlined severity=\"secondary\" />\r\n <p-button icon=\"pi pi-chevron-left\" outlined severity=\"secondary\" />\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n<lib-generic-table\r\n [showAddButton]=\"showAddButton\"\r\n [data]=\"data\"\r\n [columns]=\"columns\"\r\n [paginator]=\"paginator\"\r\n [loading]=\"loading\"\r\n [actions]=\"actions\"\r\n [actionsMode]=\"actionsMode\"\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [showRowSelectionCheckbox]=\"showRowSelectionCheckbox\"\r\n (action)=\"action.emit($event)\"\r\n (onAddNew)=\"action.emit({ name: 'add', row: null! })\"\r\n (pageChange)=\"onLazyLoad($event)\"\r\n [rowSelectable]=\"rowSelectable\"\r\n (rowSelect)=\"onRowClick($event)\"\r\n [(selection)]=\"_selectedRows\"\r\n #genericTable\r\n></lib-generic-table>\r\n\r\n\r\n\r\n\r\n<!-- Drawer -->\r\n<p-drawer\r\n *ngIf=\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\"\r\n [(visible)]=\"drawerVisible\"\r\n [closable]=\"true\"\r\n [dismissible]=\"false\"\r\n [closeOnEscape]=\"true\"\r\n (visibleChange)=\"visibleChange.emit($event)\"\r\n styleClass=\"!w-full md:!w-80 lg:!w-[40rem]\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <span class=\"font-bold text-lg\">\r\n {{ isEditMode ? '\u062A\u0639\u062F\u064A\u0644' : isViewMode === false ? '\u0625\u0636\u0627\u0641\u0629' : '\u0639\u0631\u0636' }}\r\n </span>\r\n </ng-template>\r\n<!-- (ngSubmit)=\"onSubmit()\" -->\r\n <form *ngIf=\"form\" [formGroup]=\"form\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"formFields_\" [model]=\"model\" [options]=\"options\"></formly-form>\r\n </form>\r\n\r\n <ng-template pTemplate=\"footer\" *ngIf=\"!isViewMode\">\r\n <div class=\"flex justify-end gap-2\">\r\n <button\r\n pButton\r\n [label]=\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\"\r\n type=\"button\"\r\n (click)=\"onSubmit()\"\r\n [disabled]=\"loading || form.invalid\"\r\n [loading]=\"loading\">\r\n </button>\r\n <button\r\n pButton\r\n label=\"{{ 'CANCEL' | translate }}\"\r\n severity=\"danger\"\r\n (click)=\"visibleChange.emit(false)\">\r\n </button>\r\n </div>\r\n </ng-template>\r\n</p-drawer>\r\n\r\n<!-- Dialog -->\r\n<p-dialog\r\n *ngIf=\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\"\r\n [(visible)]=\"dialogVisible\"\r\n [modal]=\"true\"\r\n [closable]=\"true\"\r\n [dismissableMask]=\"true\"\r\n [closeOnEscape]=\"true\"\r\n (visibleChange)=\"visibleChange.emit($event)\"\r\n [style]=\"{ width: '95vw', maxWidth: dialogMaxWidth }\"\r\n [header]=\"isEditMode ? '\u062A\u0639\u062F\u064A\u0644' : isViewMode === false ? '\u0625\u0636\u0627\u0641\u0629' : viewHeaderTitle\">\r\n<!-- [breakpoints]=\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\" -->\r\n <div class=\"relative\">\r\n <div *ngIf=\"isViewMode\" class=\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\"></div>\r\n <form *ngIf=\"form\" [formGroup]=\"form\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"formFields_\" [model]=\"model\" [options]=\"options\"></formly-form>\r\n </form>\r\n </div>\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"flex justify-end gap-2\">\r\n <button *ngIf=\"!isViewMode\"\r\n pButton\r\n [label]=\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\"\r\n type=\"button\"\r\n [disabled]=\"loading || form.invalid\"\r\n [loading]=\"loading\"\r\n (click)=\"onSubmit()\">\r\n </button>\r\n <button\r\n pButton\r\n label=\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\"\r\n severity=\"secondary\"\r\n (click)=\"visibleChange.emit(false)\">\r\n </button>\r\n </div>\r\n </ng-template>\r\n</p-dialog>\r\n\r\n\r\n\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TableModule }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: GenericButton, selector: "lib-generic-button", inputs: ["model", "type", "icon", "label", "variant", "severity", "size", "iconPosition", "disabled", "loading", "ariaLabel", "extraClasses", "permission"], outputs: ["clicked", "itemClick"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: GenericSearch, selector: "lib-generic-search", inputs: ["placeholder", "model", "fields"], outputs: ["search"] }, { kind: "component", type: GenericTable, selector: "lib-generic-table", inputs: ["data", "columns", "loading", "actions", "actionsMode", "first", "rows", "totalRecords", "sortField", "sortOrder", "globalFilterFields", "scrollHeight", "rowSelectable", "showAddButton", "selection", "paginator", "showRowSelectionCheckbox"], outputs: ["action", "pageChange", "onAddNew", "rowSelect", "selectionChange"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i4.Divider, selector: "p-divider", inputs: ["styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: IconFieldModule }, { kind: "ngmodule", type: DrawerModule }, { kind: "component", type: i5.Drawer, selector: "p-drawer", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "closeButtonProps", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen", "header", "maskStyle", "closable"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MessageModule }, { kind: "component", type: BreadcrumbComponent, selector: "app-breadcrumb", inputs: ["homeUrl", "breadcrumb"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i7.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: UiButtonComponent, selector: "ui-button", inputs: ["config"], outputs: ["onClick"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
274
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: GenericCrudTableComponent, isStandalone: true, selector: "app-generic-crud-table", inputs: { data: "data", formFields: "formFields", columns: "columns", dialogMaxWidth: "dialogMaxWidth", isViewMode: "isViewMode", displayMode: "displayMode", isEditMode: "isEditMode", drawerVisible: "drawerVisible", dialogVisible: "dialogVisible", model: "model", loading: "loading", errorMsg: "errorMsg", errorMessage: "errorMessage", actions: "actions", actionsMode: "actionsMode", filters: "filters", filterModel: "filterModel", showSearch: "showSearch", first: "first", rows: "rows", totalRecords: "totalRecords", rowSelectable: "rowSelectable", scrollHeight: "scrollHeight", paginator: "paginator", service: "service", idField: "idField", showRowSelectionCheckbox: "showRowSelectionCheckbox", bulkActionButtons: "bulkActionButtons", singleActionButtons: "singleActionButtons", showAddButton: "showAddButton", splitActions: "splitActions", addButtonIcon: "addButtonIcon", addButtonLabel: "addButtonLabel", addButtonPosition: "addButtonPosition", addButtonConfigs: "addButtonConfigs", breadcrumb: "breadcrumb", beforeSave: "beforeSave" }, outputs: { action: "action", bulkAction: "bulkAction", singleAction: "singleAction", search: "search", pageChange: "pageChange", onSearch: "onSearch", visibleChange: "visibleChange", rowSelect: "rowSelect" }, host: { classAttribute: "h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl p-4 bg-white" }, viewQueries: [{ propertyName: "genericTable", first: true, predicate: ["genericTable"], descendants: true }], ngImport: i0, template: "\r\n <div class=\"flex items-start gap-2 justify-between\">\r\n <div>\r\n <!-- <div class=\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\">\r\n <p-breadcrumb\r\n [model]=\"breadcrumb_\"\r\n [home]=\"home\"\r\n styleClass=\"custom-breadcrumb\"\r\n ></p-breadcrumb>\r\n </div> -->\r\n\r\n<app-breadcrumb class=\"xs:block hidden\" [breadcrumb]=\"breadcrumb_\"></app-breadcrumb>\r\n\r\n </div>\r\n\r\n<div class=\"flex items-center gap-2 justify-end flex-wrap\">\r\n <ng-container *ngIf=\"isSingleItemSelected\">\r\n <ng-container *ngFor=\"let btn of singleActionButtons; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n\r\n [icon]=\"btn.icon\"\r\n[label]=\"btn.label | translate\"\r\n[variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onSingleItemAction(btn)\"\r\n ></lib-generic-button>\r\n</ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"selectedItems.length > 0\">\r\n <ng-container *ngFor=\"let btn of bulkActionButtons; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onInternalBulkAction(btn)\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n\r\n\r\n\r\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\r\n\r\n @if (showAddButton && splitActions.length === 0) {\r\n\r\n <!-- <p-button\r\n icon=\"pi pi-circle-fill text-green-500\" *ngIf=\"showAddButton && addButtonConfigs.length === 0\"\r\n [label]=\"(addButtonLabel | translate)\r\n \"(onClick)=\"action.emit({ name: 'add', row: null! })\"\r\n outlined severity=\"secondary\" /> -->\r\n\r\n <ui-button\r\n [config]=\"{\r\n type: 'button',\r\n label: addButtonLabel| translate,\r\n icon: 'pi pi-plus',\r\n severity: 'primary',\r\n outlined: false,\r\n styleClass:''\r\n }\"\r\n (onClick)=\"action.emit({ name: 'add', row: null! })\">\r\n </ui-button>\r\n }\r\n @else {\r\n <!-- Split Button -->\r\n <ui-button\r\n [config]=\"{\r\n type: 'split',\r\n label: addButtonLabel| translate,\r\n icon: 'pi pi-plus',\r\n severity: 'primary',\r\n loading: false,\r\n outlined: false,\r\n items: splitActions\r\n }\"\r\n (onClick)=\"action.emit({ name: 'add', row: null! })\">\r\n </ui-button>\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"mt-2 mb-4 flex items-center justify-between\">\r\n\r\n <ng-container *ngIf=\"showSearch && filters; else emptySearch\">\r\n <lib-generic-search\r\n [model]=\"filterModel\"\r\n [fields]=\"filters\"\r\n (search)=\"applySearch($event)\"\r\n (reset)=\"applySearch('')\"\r\n ></lib-generic-search>\r\n </ng-container>\r\n\r\n <ng-template #emptySearch>\r\n <!-- Render a dummy div to preserve expected DOM shape -->\r\n <!-- <div class=\"min-h-[2.5rem] w-[12rem]\"></div> -->\r\n </ng-template>\r\n <!-- style=\"direction: ltr;\" -->\r\n <div class=\"flex items-center gap-3\">\r\n\r\n <p-button icon=\"pi pi-refresh\" outlined severity=\"secondary\" (onClick)=\"applySearch('')\" />\r\n <p-divider layout=\"vertical\" class=\"m-0 p-0 xs:block hidden\" />\r\n <p-button icon=\"pi pi-sort\" outlined severity=\"secondary\" class=\"xs:block hidden\" />\r\n <p-button label=\"1 of 15\" outlined severity=\"secondary\" class=\"xs:block hidden\" />\r\n <p-button icon=\"pi pi-chevron-right\" outlined severity=\"secondary\" class=\"xs:block hidden\" />\r\n <p-button icon=\"pi pi-chevron-left\" outlined severity=\"secondary\" class=\"xs:block hidden\" />\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n<lib-generic-table\r\n [showAddButton]=\"showAddButton\"\r\n [data]=\"data\"\r\n [columns]=\"columns\"\r\n [paginator]=\"paginator\"\r\n [loading]=\"loading\"\r\n [actions]=\"actions\"\r\n [actionsMode]=\"actionsMode\"\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [showRowSelectionCheckbox]=\"showRowSelectionCheckbox\"\r\n (action)=\"action.emit($event)\"\r\n (onAddNew)=\"action.emit({ name: 'add', row: null! })\"\r\n (pageChange)=\"onLazyLoad($event)\"\r\n [rowSelectable]=\"rowSelectable\"\r\n (rowSelect)=\"onRowClick($event)\"\r\n [(selection)]=\"_selectedRows\"\r\n #genericTable\r\n></lib-generic-table>\r\n\r\n\r\n\r\n\r\n<!-- Drawer -->\r\n<p-drawer\r\n *ngIf=\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\"\r\n [(visible)]=\"drawerVisible\"\r\n [closable]=\"true\"\r\n [dismissible]=\"false\"\r\n [closeOnEscape]=\"true\"\r\n (visibleChange)=\"visibleChange.emit($event)\"\r\n styleClass=\"!w-full md:!w-80 lg:!w-[40rem]\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <span class=\"font-bold text-lg\">\r\n {{ isEditMode ? '\u062A\u0639\u062F\u064A\u0644' : isViewMode === false ? '\u0625\u0636\u0627\u0641\u0629' : '\u0639\u0631\u0636' }}\r\n </span>\r\n </ng-template>\r\n<!-- (ngSubmit)=\"onSubmit()\" -->\r\n <form *ngIf=\"form\" [formGroup]=\"form\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"formFields_\" [model]=\"model\" [options]=\"options\"></formly-form>\r\n </form>\r\n\r\n <ng-template pTemplate=\"footer\" *ngIf=\"!isViewMode\">\r\n <div class=\"flex justify-end gap-2\">\r\n <button\r\n pButton\r\n [label]=\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\"\r\n type=\"button\"\r\n (click)=\"onSubmit()\"\r\n [disabled]=\"loading || form.invalid\"\r\n [loading]=\"loading\">\r\n </button>\r\n <button\r\n pButton\r\n label=\"{{ 'CANCEL' | translate }}\"\r\n severity=\"danger\"\r\n (click)=\"visibleChange.emit(false)\">\r\n </button>\r\n </div>\r\n </ng-template>\r\n</p-drawer>\r\n\r\n<!-- Dialog -->\r\n<p-dialog\r\n *ngIf=\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\"\r\n [(visible)]=\"dialogVisible\"\r\n [modal]=\"true\"\r\n [closable]=\"true\"\r\n [dismissableMask]=\"true\"\r\n [closeOnEscape]=\"true\"\r\n (visibleChange)=\"visibleChange.emit($event)\"\r\n [style]=\"{ width: '95vw', maxWidth: dialogMaxWidth }\"\r\n [header]=\"isEditMode ? '\u062A\u0639\u062F\u064A\u0644' : isViewMode === false ? '\u0625\u0636\u0627\u0641\u0629' : viewHeaderTitle\">\r\n<!-- [breakpoints]=\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\" -->\r\n <div class=\"relative\">\r\n <div *ngIf=\"isViewMode\" class=\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\"></div>\r\n <form *ngIf=\"form\" [formGroup]=\"form\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"formFields_\" [model]=\"model\" [options]=\"options\"></formly-form>\r\n </form>\r\n </div>\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"flex justify-end gap-2\">\r\n <button *ngIf=\"!isViewMode\"\r\n pButton\r\n [label]=\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\"\r\n type=\"button\"\r\n [disabled]=\"loading || form.invalid\"\r\n [loading]=\"loading\"\r\n (click)=\"onSubmit()\">\r\n </button>\r\n <button\r\n pButton\r\n label=\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\"\r\n severity=\"secondary\"\r\n (click)=\"visibleChange.emit(false)\">\r\n </button>\r\n </div>\r\n </ng-template>\r\n</p-dialog>\r\n\r\n\r\n\r\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TableModule }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: GenericButton, selector: "lib-generic-button", inputs: ["model", "type", "icon", "label", "variant", "severity", "size", "iconPosition", "disabled", "loading", "ariaLabel", "extraClasses", "permission"], outputs: ["clicked", "itemClick"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: GenericSearch, selector: "lib-generic-search", inputs: ["placeholder", "model", "fields"], outputs: ["search"] }, { kind: "component", type: GenericTable, selector: "lib-generic-table", inputs: ["data", "columns", "loading", "actions", "actionsMode", "first", "rows", "totalRecords", "sortField", "sortOrder", "globalFilterFields", "scrollHeight", "rowSelectable", "showAddButton", "selection", "paginator", "showRowSelectionCheckbox"], outputs: ["action", "pageChange", "onAddNew", "rowSelect", "selectionChange"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: DividerModule }, { kind: "component", type: i4.Divider, selector: "p-divider", inputs: ["styleClass", "layout", "type", "align"] }, { kind: "ngmodule", type: IconFieldModule }, { kind: "ngmodule", type: DrawerModule }, { kind: "component", type: i5.Drawer, selector: "p-drawer", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "closeButtonProps", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen", "header", "maskStyle", "closable"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "component", type: FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: MessageModule }, { kind: "component", type: BreadcrumbComponent, selector: "app-breadcrumb", inputs: ["breadcrumb"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i7.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "closeButtonProps", "maximizeButtonProps", "visible", "style", "position", "role", "appendTo", "content", "contentTemplate", "footerTemplate", "closeIconTemplate", "maximizeIconTemplate", "minimizeIconTemplate", "headlessTemplate"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "component", type: UiButtonComponent, selector: "ui-button", inputs: ["config"], outputs: ["onClick"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
|
|
275
275
|
}
|
|
276
276
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericCrudTableComponent, decorators: [{
|
|
277
277
|
type: Component,
|
|
@@ -296,7 +296,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
296
296
|
UiButtonComponent
|
|
297
297
|
], host: {
|
|
298
298
|
class: 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl p-4 bg-white'
|
|
299
|
-
}, template: "\r\n <div class=\"flex items-start gap-2 justify-between\">\r\n <div>\r\n <!-- <div class=\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\">\r\n <p-breadcrumb\r\n [model]=\"breadcrumb_\"\r\n [home]=\"home\"\r\n styleClass=\"custom-breadcrumb\"\r\n ></p-breadcrumb>\r\n </div> -->\r\n\r\n<app-breadcrumb [breadcrumb]=\"breadcrumb_\"></app-breadcrumb>\r\n\r\n </div>\r\n\r\n<div class=\"flex items-center gap-2 justify-end flex-wrap\">\r\n <ng-container *ngIf=\"isSingleItemSelected\">\r\n <ng-container *ngFor=\"let btn of singleActionButtons; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n\r\n [icon]=\"btn.icon\"\r\n[label]=\"btn.label | translate\"\r\n[variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onSingleItemAction(btn)\"\r\n ></lib-generic-button>\r\n</ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"selectedItems.length > 0\">\r\n <ng-container *ngFor=\"let btn of bulkActionButtons; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onInternalBulkAction(btn)\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n\r\n\r\n\r\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\r\n\r\n @if (showAddButton && splitActions.length === 0) {\r\n\r\n <!-- <p-button\r\n icon=\"pi pi-circle-fill text-green-500\" *ngIf=\"showAddButton && addButtonConfigs.length === 0\"\r\n [label]=\"(addButtonLabel | translate)\r\n \"(onClick)=\"action.emit({ name: 'add', row: null! })\"\r\n outlined severity=\"secondary\" /> -->\r\n\r\n <ui-button\r\n [config]=\"{\r\n type: 'button',\r\n label: addButtonLabel| translate,\r\n icon: 'pi pi-plus',\r\n severity: 'primary',\r\n outlined: false,\r\n styleClass:''\r\n }\"\r\n (onClick)=\"action.emit({ name: 'add', row: null! })\">\r\n </ui-button>\r\n }\r\n @else {\r\n <!-- Split Button -->\r\n <ui-button\r\n [config]=\"{\r\n type: 'split',\r\n label: addButtonLabel| translate,\r\n icon: 'pi pi-plus',\r\n severity: 'primary',\r\n loading: false,\r\n outlined: false,\r\n items: splitActions\r\n }\"\r\n (onClick)=\"action.emit({ name: 'add', row: null! })\">\r\n </ui-button>\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"mt-2 mb-4 flex items-center justify-between\">\r\n\r\n <ng-container *ngIf=\"showSearch && filters; else emptySearch\">\r\n <lib-generic-search\r\n [model]=\"filterModel\"\r\n [fields]=\"filters\"\r\n (search)=\"applySearch($event)\"\r\n (reset)=\"applySearch('')\"\r\n ></lib-generic-search>\r\n </ng-container>\r\n\r\n <ng-template #emptySearch>\r\n <!-- Render a dummy div to preserve expected DOM shape -->\r\n <!-- <div class=\"min-h-[2.5rem] w-[12rem]\"></div> -->\r\n </ng-template>\r\n
|
|
299
|
+
}, template: "\r\n <div class=\"flex items-start gap-2 justify-between\">\r\n <div>\r\n <!-- <div class=\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\">\r\n <p-breadcrumb\r\n [model]=\"breadcrumb_\"\r\n [home]=\"home\"\r\n styleClass=\"custom-breadcrumb\"\r\n ></p-breadcrumb>\r\n </div> -->\r\n\r\n<app-breadcrumb class=\"xs:block hidden\" [breadcrumb]=\"breadcrumb_\"></app-breadcrumb>\r\n\r\n </div>\r\n\r\n<div class=\"flex items-center gap-2 justify-end flex-wrap\">\r\n <ng-container *ngIf=\"isSingleItemSelected\">\r\n <ng-container *ngFor=\"let btn of singleActionButtons; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n\r\n [icon]=\"btn.icon\"\r\n[label]=\"btn.label | translate\"\r\n[variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onSingleItemAction(btn)\"\r\n ></lib-generic-button>\r\n</ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"selectedItems.length > 0\">\r\n <ng-container *ngFor=\"let btn of bulkActionButtons; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onInternalBulkAction(btn)\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n <lib-generic-button\r\n [icon]=\"btn.icon\"\r\n [label]=\"btn.label | translate\"\r\n [variant]=\"btn.variant\"\r\n [size]=\"btn.size\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\"\r\n ></lib-generic-button>\r\n </ng-container>\r\n\r\n\r\n\r\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\r\n\r\n @if (showAddButton && splitActions.length === 0) {\r\n\r\n <!-- <p-button\r\n icon=\"pi pi-circle-fill text-green-500\" *ngIf=\"showAddButton && addButtonConfigs.length === 0\"\r\n [label]=\"(addButtonLabel | translate)\r\n \"(onClick)=\"action.emit({ name: 'add', row: null! })\"\r\n outlined severity=\"secondary\" /> -->\r\n\r\n <ui-button\r\n [config]=\"{\r\n type: 'button',\r\n label: addButtonLabel| translate,\r\n icon: 'pi pi-plus',\r\n severity: 'primary',\r\n outlined: false,\r\n styleClass:''\r\n }\"\r\n (onClick)=\"action.emit({ name: 'add', row: null! })\">\r\n </ui-button>\r\n }\r\n @else {\r\n <!-- Split Button -->\r\n <ui-button\r\n [config]=\"{\r\n type: 'split',\r\n label: addButtonLabel| translate,\r\n icon: 'pi pi-plus',\r\n severity: 'primary',\r\n loading: false,\r\n outlined: false,\r\n items: splitActions\r\n }\"\r\n (onClick)=\"action.emit({ name: 'add', row: null! })\">\r\n </ui-button>\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"mt-2 mb-4 flex items-center justify-between\">\r\n\r\n <ng-container *ngIf=\"showSearch && filters; else emptySearch\">\r\n <lib-generic-search\r\n [model]=\"filterModel\"\r\n [fields]=\"filters\"\r\n (search)=\"applySearch($event)\"\r\n (reset)=\"applySearch('')\"\r\n ></lib-generic-search>\r\n </ng-container>\r\n\r\n <ng-template #emptySearch>\r\n <!-- Render a dummy div to preserve expected DOM shape -->\r\n <!-- <div class=\"min-h-[2.5rem] w-[12rem]\"></div> -->\r\n </ng-template>\r\n <!-- style=\"direction: ltr;\" -->\r\n <div class=\"flex items-center gap-3\">\r\n\r\n <p-button icon=\"pi pi-refresh\" outlined severity=\"secondary\" (onClick)=\"applySearch('')\" />\r\n <p-divider layout=\"vertical\" class=\"m-0 p-0 xs:block hidden\" />\r\n <p-button icon=\"pi pi-sort\" outlined severity=\"secondary\" class=\"xs:block hidden\" />\r\n <p-button label=\"1 of 15\" outlined severity=\"secondary\" class=\"xs:block hidden\" />\r\n <p-button icon=\"pi pi-chevron-right\" outlined severity=\"secondary\" class=\"xs:block hidden\" />\r\n <p-button icon=\"pi pi-chevron-left\" outlined severity=\"secondary\" class=\"xs:block hidden\" />\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n<lib-generic-table\r\n [showAddButton]=\"showAddButton\"\r\n [data]=\"data\"\r\n [columns]=\"columns\"\r\n [paginator]=\"paginator\"\r\n [loading]=\"loading\"\r\n [actions]=\"actions\"\r\n [actionsMode]=\"actionsMode\"\r\n [first]=\"first\"\r\n [rows]=\"rows\"\r\n [totalRecords]=\"totalRecords\"\r\n [sortField]=\"sortField\"\r\n [sortOrder]=\"sortOrder\"\r\n [globalFilterFields]=\"globalFilterFields\"\r\n [scrollHeight]=\"scrollHeight\"\r\n [showRowSelectionCheckbox]=\"showRowSelectionCheckbox\"\r\n (action)=\"action.emit($event)\"\r\n (onAddNew)=\"action.emit({ name: 'add', row: null! })\"\r\n (pageChange)=\"onLazyLoad($event)\"\r\n [rowSelectable]=\"rowSelectable\"\r\n (rowSelect)=\"onRowClick($event)\"\r\n [(selection)]=\"_selectedRows\"\r\n #genericTable\r\n></lib-generic-table>\r\n\r\n\r\n\r\n\r\n<!-- Drawer -->\r\n<p-drawer\r\n *ngIf=\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\"\r\n [(visible)]=\"drawerVisible\"\r\n [closable]=\"true\"\r\n [dismissible]=\"false\"\r\n [closeOnEscape]=\"true\"\r\n (visibleChange)=\"visibleChange.emit($event)\"\r\n styleClass=\"!w-full md:!w-80 lg:!w-[40rem]\">\r\n\r\n <ng-template pTemplate=\"header\">\r\n <span class=\"font-bold text-lg\">\r\n {{ isEditMode ? '\u062A\u0639\u062F\u064A\u0644' : isViewMode === false ? '\u0625\u0636\u0627\u0641\u0629' : '\u0639\u0631\u0636' }}\r\n </span>\r\n </ng-template>\r\n<!-- (ngSubmit)=\"onSubmit()\" -->\r\n <form *ngIf=\"form\" [formGroup]=\"form\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"formFields_\" [model]=\"model\" [options]=\"options\"></formly-form>\r\n </form>\r\n\r\n <ng-template pTemplate=\"footer\" *ngIf=\"!isViewMode\">\r\n <div class=\"flex justify-end gap-2\">\r\n <button\r\n pButton\r\n [label]=\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\"\r\n type=\"button\"\r\n (click)=\"onSubmit()\"\r\n [disabled]=\"loading || form.invalid\"\r\n [loading]=\"loading\">\r\n </button>\r\n <button\r\n pButton\r\n label=\"{{ 'CANCEL' | translate }}\"\r\n severity=\"danger\"\r\n (click)=\"visibleChange.emit(false)\">\r\n </button>\r\n </div>\r\n </ng-template>\r\n</p-drawer>\r\n\r\n<!-- Dialog -->\r\n<p-dialog\r\n *ngIf=\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\"\r\n [(visible)]=\"dialogVisible\"\r\n [modal]=\"true\"\r\n [closable]=\"true\"\r\n [dismissableMask]=\"true\"\r\n [closeOnEscape]=\"true\"\r\n (visibleChange)=\"visibleChange.emit($event)\"\r\n [style]=\"{ width: '95vw', maxWidth: dialogMaxWidth }\"\r\n [header]=\"isEditMode ? '\u062A\u0639\u062F\u064A\u0644' : isViewMode === false ? '\u0625\u0636\u0627\u0641\u0629' : viewHeaderTitle\">\r\n<!-- [breakpoints]=\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\" -->\r\n <div class=\"relative\">\r\n <div *ngIf=\"isViewMode\" class=\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\"></div>\r\n <form *ngIf=\"form\" [formGroup]=\"form\" class=\"p-4\">\r\n <formly-form [form]=\"form\" [fields]=\"formFields_\" [model]=\"model\" [options]=\"options\"></formly-form>\r\n </form>\r\n </div>\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <div class=\"flex justify-end gap-2\">\r\n <button *ngIf=\"!isViewMode\"\r\n pButton\r\n [label]=\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\"\r\n type=\"button\"\r\n [disabled]=\"loading || form.invalid\"\r\n [loading]=\"loading\"\r\n (click)=\"onSubmit()\">\r\n </button>\r\n <button\r\n pButton\r\n label=\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\"\r\n severity=\"secondary\"\r\n (click)=\"visibleChange.emit(false)\">\r\n </button>\r\n </div>\r\n </ng-template>\r\n</p-dialog>\r\n\r\n\r\n\r\n" }]
|
|
300
300
|
}], propDecorators: { genericTable: [{
|
|
301
301
|
type: ViewChild,
|
|
302
302
|
args: ['genericTable']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-generic-crud-table.mjs","sources":["../tmp-esm2022/generic-crud-table/lib/generic-crud-table-module.js","../tmp-esm2022/generic-crud-table/lib/generic-crud-table.js","../tmp-esm2022/generic-crud-table/elite.framework-ng.ui.core-generic-crud-table.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GenericButtonModule } from '@elite.framework/ng.ui.core/generic-button';\nimport * as i0 from \"@angular/core\";\nexport class GenericCrudTableModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, imports: [CommonModule, GenericButtonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, imports: [CommonModule, GenericButtonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, GenericButtonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQUtqRixNQUFNLE9BQU8sc0JBQXNCO3VHQUF0QixzQkFBc0I7d0dBQXRCLHNCQUFzQixZQUZ2QixZQUFZLEVBQUMsbUJBQW1CO3dHQUUvQixzQkFBc0IsWUFGdkIsWUFBWSxFQUFDLG1CQUFtQjs7MkZBRS9CLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUMsbUJBQW1CLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBHZW5lcmljQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2dlbmVyaWMtYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxHZW5lcmljQnV0dG9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRUYWJsZU1vZHVsZSB7fVxuIl19","import { DividerModule } from 'primeng/divider';\n// src/app/shared/generic-crud-table/generic-crud-table.component.ts\nimport { Component, Input, Output, EventEmitter, ViewChild, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MessageModule } from 'primeng/message';\nimport { ButtonModule } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { ToolbarModule } from 'primeng/toolbar';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { DrawerModule } from 'primeng/drawer';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { BreadcrumbComponent } from '@elite.framework/ng.ui.core/breadcrumb';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { GenericTable } from '@elite.framework/ng.ui.core/generic-table';\nimport { GenericSearch } from '@elite.framework/ng.ui.core/generic-search';\nimport { UiButtonComponent } from '@elite.framework/ng.ui.core/ui-button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/api\";\nimport * as i3 from \"primeng/button\";\nimport * as i4 from \"primeng/divider\";\nimport * as i5 from \"primeng/drawer\";\nimport * as i6 from \"@angular/forms\";\nimport * as i7 from \"primeng/dialog\";\nimport * as i8 from \"@ngx-translate/core\";\nexport class GenericCrudTableComponent {\n genericTable;\n translate = inject(TranslateService);\n swalService = inject(SwalService);\n home = { icon: 'pi pi-home', routerLink: '/' };\n data = [];\n formFields_ = []; // <-- هنا\n formFields = []; // <-- هنا\n columns = []; // <-- هنا\n dialogMaxWidth = '40rem'; // unset , fit-content\n isViewMode = false;\n displayMode = 'drawer';\n isEditMode = false;\n drawerVisible = false;\n dialogVisible = false;\n form = new UntypedFormGroup({});\n model;\n model_ = {};\n loading = false;\n errorMsg = '';\n errorMessage = '';\n options = {};\n actions = [];\n /** تحدد طريقة العرض: 'buttons' أو 'menu' */\n actionsMode = 'buttons';\n action = new EventEmitter();\n bulkAction = new EventEmitter();\n singleAction = new EventEmitter();\n // البحث\n // Search\n filters;\n filterModel = {};\n search = new EventEmitter();\n /** للتحكم بإظهار/إخفاء قسم البحث */\n showSearch = true;\n /** Pagination Inputs */\n first = 0;\n rows = 10;\n totalRecords = 0;\n pageChange = new EventEmitter();\n onSearch = new EventEmitter();\n visibleChange = new EventEmitter();\n ;\n // @Output() visibleChange = new EventEmitter<boolean>();\n viewHeaderTitle = 'عرض التفاصيل';\n /** لجعل الجدول قابل لاختيار الصفوف (افتراضي false) */\n rowSelectable = false;\n /** حدث يخرج الصف المحدّد */\n rowSelect = new EventEmitter();\n selection = null;\n // الفرز\n sortField;\n sortOrder = 1;\n scrollHeight = '400px';\n paginator = true;\n service;\n idField = 'id';\n showRowSelectionCheckbox = false;\n bulkActionButtons = [];\n singleActionButtons = [];\n _selectedRows = [];\n get isSingleItemSelected() {\n return this._selectedRows.length === 1;\n }\n get isMultipleItemSelected() {\n return this._selectedRows.length > 1;\n }\n get selectedItems() {\n return this._selectedRows;\n }\n /** للتحكم بإظهار زر الإضافة */\n showAddButton = true;\n splitActions = [];\n /** الأيقونة الافتراضية لزر الإضافة */\n addButtonIcon = 'pi pi-plus';\n /** النص الافتراضي لزر الإضافة */\n addButtonLabel = 'ADD';\n /** تتحكّم بموقع زر الإضافة: 'top' أو 'bottom' */\n addButtonPosition = 'top';\n addButtonConfigs = [];\n breadcrumb;\n get breadcrumb_() {\n return this.breadcrumb?.map(v => ({\n ...v,\n label: this.translate.instant(v.label ?? '')\n }));\n }\n get rtl() {\n try {\n return document?.documentElement?.dir === 'rtl';\n }\n catch (error) {\n return true;\n }\n }\n // private destroy$ = new Subject<void>();\n /** الآن يتلقّى pagination + sort في حدث واحد */\n onLazyLoad(event) {\n // this.model_= this.model ?? {};\n this.model = this.model ?? {};\n this.formFields_ = this.formFields;\n const first = event.first ?? this.first;\n const rows = event.rows ?? this.rows;\n const sortField = typeof event.sortField === 'string'\n ? event.sortField\n : this.sortField;\n const sortOrder = event.sortOrder === -1 ? -1 : 1;\n const filters = {};\n if (event.filters) {\n Object.entries(event.filters).forEach(([field, meta]) => {\n const value = meta.value;\n if (value != null && value !== '') {\n filters[field] = value;\n }\n });\n }\n this.first = first;\n this.rows = rows;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n const dir = sortOrder === 1 ? 'asc' : 'desc';\n const sort = sortField ? `${sortField} ${dir}` : undefined;\n this.pageChange.emit({ first, rows, sort, filters });\n // يبني النص وإرساله\n }\n /** تصيير البيانات حسب الصفحة */\n get pagedData() {\n // return this.data ? this.data.slice(this.first, this.first + this.rows) : [];\n return this.data;\n }\n get globalFilterFields() {\n return this.columns.map(c => String(c.key));\n }\n /** أرسل إلى الأب لأتمتة شكل البحث إذا يحتاج */\n // from generic-crud-table.component.ts\n /** بدّل applySearch لتبث pageChange مباشرةً */\n applySearch(filters) {\n // this.genericTable.applyFilter(global);\n this.onSearch.emit(filters);\n }\n /** دالة تنفّذ عند النقر على صف */\n onRowClick(row) {\n if (this.rowSelectable) {\n this.rowSelect.emit(row);\n }\n }\n beforeSave = (record) => record;\n // onSubmit() {\n // if (this.form.invalid) return;\n // this.loading = true;\n // this.errorMessage = null;\n // const service = this.service /* as CrudService<T> */;\n // const id = this.isEditMode ? (this.model as any)[this.idField] : null;\n // const recordToSave = this.beforeSave({ ...this.model });\n // const operation$: Observable<any> = this.isEditMode\n // ? service.update(id, recordToSave)\n // : service.create(recordToSave);\n // // operation$.pipe(takeUntil(this.destroy$)).subscribe({\n // operation$.subscribe({\n // next: () => {\n // // this.ref.close(true); // نجاح العملية\n // this.visibleChange.emit(false)\n // // this.pageChange.emit({ first, rows ,sort, filters });\n // this.applySearch('');\n // // this.me\n // },\n // error: (err:any) => {\n // this.loading = false;\n // this.errorMessage = err.error?.title ||\n // err.message ||\n // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n // }\n // });\n // }\n onSubmit() {\n if (this.form.invalid)\n return;\n // ✅ أول شيء نطلب تأكيد من المستخدم\n this.swalService.confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode\n ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء').then((result) => {\n if (!result.isConfirmed)\n return;\n this.loading = true;\n this.errorMessage = null;\n const service = this.service;\n const id = this.isEditMode ? this.model[this.idField] : null;\n const recordToSave = this.beforeSave({ ...this.model });\n const operation$ = this.isEditMode\n ? service.update(id, recordToSave)\n : service.create(recordToSave);\n operation$.subscribe({\n next: () => {\n this.loading = false;\n // ✅ رسالة نجاح\n this.swalService.success(this.isEditMode ? 'تم التعديل بنجاح' : 'تم الحفظ بنجاح');\n this.visibleChange.emit(false);\n this.applySearch('');\n },\n error: (err) => {\n this.loading = false;\n const msg = err.error?.title ||\n err.message ||\n 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n this.errorMessage = msg;\n // ❌ رسالة خطأ\n this.swalService.error('فشل الحفظ', msg);\n }\n });\n });\n }\n trackByIdx(index, item) {\n return index;\n }\n onSingleItemAction(btn) {\n if (!this.isSingleItemSelected)\n return;\n const selectedItem = this._selectedRows[0];\n this.singleAction.emit({\n name: btn.actionName ?? 'singleAction',\n item: selectedItem\n });\n }\n onInternalBulkAction(btn) {\n if (!this.isMultipleItemSelected)\n return;\n this.bulkAction.emit({\n name: btn.actionName ?? 'bulkAction',\n items: [...this._selectedRows] // نرسل نسخة من المصفوفة\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericCrudTableComponent, isStandalone: true, selector: \"app-generic-crud-table\", inputs: { data: \"data\", formFields: \"formFields\", columns: \"columns\", dialogMaxWidth: \"dialogMaxWidth\", isViewMode: \"isViewMode\", displayMode: \"displayMode\", isEditMode: \"isEditMode\", drawerVisible: \"drawerVisible\", dialogVisible: \"dialogVisible\", model: \"model\", loading: \"loading\", errorMsg: \"errorMsg\", errorMessage: \"errorMessage\", actions: \"actions\", actionsMode: \"actionsMode\", filters: \"filters\", filterModel: \"filterModel\", showSearch: \"showSearch\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", rowSelectable: \"rowSelectable\", scrollHeight: \"scrollHeight\", paginator: \"paginator\", service: \"service\", idField: \"idField\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\", bulkActionButtons: \"bulkActionButtons\", singleActionButtons: \"singleActionButtons\", showAddButton: \"showAddButton\", splitActions: \"splitActions\", addButtonIcon: \"addButtonIcon\", addButtonLabel: \"addButtonLabel\", addButtonPosition: \"addButtonPosition\", addButtonConfigs: \"addButtonConfigs\", breadcrumb: \"breadcrumb\", beforeSave: \"beforeSave\" }, outputs: { action: \"action\", bulkAction: \"bulkAction\", singleAction: \"singleAction\", search: \"search\", pageChange: \"pageChange\", onSearch: \"onSearch\", visibleChange: \"visibleChange\", rowSelect: \"rowSelect\" }, host: { classAttribute: \"h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl p-4 bg-white\" }, viewQueries: [{ propertyName: \"genericTable\", first: true, predicate: [\"genericTable\"], descendants: true }], ngImport: i0, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <!-- <div class=\\\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\\\">\\r\\n <p-breadcrumb\\r\\n [model]=\\\"breadcrumb_\\\"\\r\\n [home]=\\\"home\\\"\\r\\n styleClass=\\\"custom-breadcrumb\\\"\\r\\n ></p-breadcrumb>\\r\\n </div> -->\\r\\n\\r\\n<app-breadcrumb [breadcrumb]=\\\"breadcrumb_\\\"></app-breadcrumb>\\r\\n\\r\\n </div>\\r\\n\\r\\n<div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n <ng-container *ngIf=\\\"isSingleItemSelected\\\">\\r\\n <ng-container *ngFor=\\\"let btn of singleActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n[label]=\\\"btn.label | translate\\\"\\r\\n[variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n</ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngIf=\\\"selectedItems.length > 0\\\">\\r\\n <ng-container *ngFor=\\\"let btn of bulkActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n\\r\\n\\r\\n\\r\\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\\r\\n\\r\\n @if (showAddButton && splitActions.length === 0) {\\r\\n\\r\\n <!-- <p-button\\r\\n icon=\\\"pi pi-circle-fill text-green-500\\\" *ngIf=\\\"showAddButton && addButtonConfigs.length === 0\\\"\\r\\n [label]=\\\"(addButtonLabel | translate)\\r\\n \\\"(onClick)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n outlined severity=\\\"secondary\\\" /> -->\\r\\n\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'button',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n outlined: false,\\r\\n styleClass:''\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n @else {\\r\\n <!-- Split Button -->\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'split',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n loading: false,\\r\\n outlined: false,\\r\\n items: splitActions\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n\\r\\n <ng-container *ngIf=\\\"showSearch && filters; else emptySearch\\\">\\r\\n <lib-generic-search\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (reset)=\\\"applySearch('')\\\"\\r\\n ></lib-generic-search>\\r\\n </ng-container>\\r\\n\\r\\n <ng-template #emptySearch>\\r\\n <!-- Render a dummy div to preserve expected DOM shape -->\\r\\n <!-- <div class=\\\"min-h-[2.5rem] w-[12rem]\\\"></div> -->\\r\\n </ng-template>\\r\\n\\r\\n <div class=\\\"flex items-center gap-3\\\">\\r\\n\\r\\n <p-button icon=\\\"pi pi-refresh\\\" outlined severity=\\\"secondary\\\" (onClick)=\\\"applySearch('')\\\" />\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0\\\" />\\r\\n <p-button icon=\\\"pi pi-sort\\\" outlined severity=\\\"secondary\\\" />\\r\\n <p-button label=\\\"1 of 15\\\" outlined severity=\\\"secondary\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-right\\\" outlined severity=\\\"secondary\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-left\\\" outlined severity=\\\"secondary\\\" />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n<lib-generic-table\\r\\n [showAddButton]=\\\"showAddButton\\\"\\r\\n [data]=\\\"data\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [actionsMode]=\\\"actionsMode\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [showRowSelectionCheckbox]=\\\"showRowSelectionCheckbox\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (onAddNew)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n (pageChange)=\\\"onLazyLoad($event)\\\"\\r\\n [rowSelectable]=\\\"rowSelectable\\\"\\r\\n (rowSelect)=\\\"onRowClick($event)\\\"\\r\\n [(selection)]=\\\"_selectedRows\\\"\\r\\n #genericTable\\r\\n></lib-generic-table>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<!-- Drawer -->\\r\\n<p-drawer\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\\\"\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n styleClass=\\\"!w-full md:!w-80 lg:!w-[40rem]\\\">\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : '\\u0639\\u0631\\u0636' }}\\r\\n </span>\\r\\n </ng-template>\\r\\n<!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n\\r\\n<!-- Dialog -->\\r\\n<p-dialog\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\\\"\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [modal]=\\\"true\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissableMask]=\\\"true\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [style]=\\\"{ width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [header]=\\\"isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : viewHeaderTitle\\\">\\r\\n<!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div *ngIf=\\\"isViewMode\\\" class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n\\r\\n\\r\\n\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: TableModule }, { kind: \"directive\", type: i2.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"component\", type: GenericButton, selector: \"lib-generic-button\", inputs: [\"model\", \"type\", \"icon\", \"label\", \"variant\", \"severity\", \"size\", \"iconPosition\", \"disabled\", \"loading\", \"ariaLabel\", \"extraClasses\", \"permission\"], outputs: [\"clicked\", \"itemClick\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i3.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"component\", type: i3.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"component\", type: GenericSearch, selector: \"lib-generic-search\", inputs: [\"placeholder\", \"model\", \"fields\"], outputs: [\"search\"] }, { kind: \"component\", type: GenericTable, selector: \"lib-generic-table\", inputs: [\"data\", \"columns\", \"loading\", \"actions\", \"actionsMode\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"globalFilterFields\", \"scrollHeight\", \"rowSelectable\", \"showAddButton\", \"selection\", \"paginator\", \"showRowSelectionCheckbox\"], outputs: [\"action\", \"pageChange\", \"onAddNew\", \"rowSelect\", \"selectionChange\"] }, { kind: \"ngmodule\", type: ToolbarModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: DividerModule }, { kind: \"component\", type: i4.Divider, selector: \"p-divider\", inputs: [\"styleClass\", \"layout\", \"type\", \"align\"] }, { kind: \"ngmodule\", type: IconFieldModule }, { kind: \"ngmodule\", type: DrawerModule }, { kind: \"component\", type: i5.Drawer, selector: \"p-drawer\", inputs: [\"appendTo\", \"blockScroll\", \"style\", \"styleClass\", \"ariaCloseLabel\", \"autoZIndex\", \"baseZIndex\", \"modal\", \"closeButtonProps\", \"dismissible\", \"showCloseIcon\", \"closeOnEscape\", \"transitionOptions\", \"visible\", \"position\", \"fullScreen\", \"header\", \"maskStyle\", \"closable\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\"] }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i6.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i6.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i6.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MessageModule }, { kind: \"component\", type: BreadcrumbComponent, selector: \"app-breadcrumb\", inputs: [\"homeUrl\", \"breadcrumb\"] }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: i7.Dialog, selector: \"p-dialog\", inputs: [\"header\", \"draggable\", \"resizable\", \"contentStyle\", \"contentStyleClass\", \"modal\", \"closeOnEscape\", \"dismissableMask\", \"rtl\", \"closable\", \"breakpoints\", \"styleClass\", \"maskStyleClass\", \"maskStyle\", \"showHeader\", \"blockScroll\", \"autoZIndex\", \"baseZIndex\", \"minX\", \"minY\", \"focusOnShow\", \"maximizable\", \"keepInViewport\", \"focusTrap\", \"transitionOptions\", \"closeIcon\", \"closeAriaLabel\", \"closeTabindex\", \"minimizeIcon\", \"maximizeIcon\", \"closeButtonProps\", \"maximizeButtonProps\", \"visible\", \"style\", \"position\", \"role\", \"appendTo\", \"content\", \"contentTemplate\", \"footerTemplate\", \"closeIconTemplate\", \"maximizeIconTemplate\", \"minimizeIconTemplate\", \"headlessTemplate\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\", \"onResizeInit\", \"onResizeEnd\", \"onDragEnd\", \"onMaximize\"] }, { kind: \"component\", type: UiButtonComponent, selector: \"ui-button\", inputs: [\"config\"], outputs: [\"onClick\"] }, { kind: \"pipe\", type: i8.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-generic-crud-table', standalone: true, imports: [\n CommonModule,\n TableModule,\n GenericButton,\n ButtonModule,\n GenericSearch,\n GenericTable,\n ToolbarModule,\n TranslateModule,\n DividerModule,\n IconFieldModule,\n DrawerModule,\n FormlyForm,\n ReactiveFormsModule,\n FormsModule,\n MessageModule,\n BreadcrumbComponent,\n DialogModule,\n UiButtonComponent\n ], host: {\n class: 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl p-4 bg-white'\n }, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <!-- <div class=\\\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\\\">\\r\\n <p-breadcrumb\\r\\n [model]=\\\"breadcrumb_\\\"\\r\\n [home]=\\\"home\\\"\\r\\n styleClass=\\\"custom-breadcrumb\\\"\\r\\n ></p-breadcrumb>\\r\\n </div> -->\\r\\n\\r\\n<app-breadcrumb [breadcrumb]=\\\"breadcrumb_\\\"></app-breadcrumb>\\r\\n\\r\\n </div>\\r\\n\\r\\n<div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n <ng-container *ngIf=\\\"isSingleItemSelected\\\">\\r\\n <ng-container *ngFor=\\\"let btn of singleActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n[label]=\\\"btn.label | translate\\\"\\r\\n[variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n</ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngIf=\\\"selectedItems.length > 0\\\">\\r\\n <ng-container *ngFor=\\\"let btn of bulkActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n\\r\\n\\r\\n\\r\\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\\r\\n\\r\\n @if (showAddButton && splitActions.length === 0) {\\r\\n\\r\\n <!-- <p-button\\r\\n icon=\\\"pi pi-circle-fill text-green-500\\\" *ngIf=\\\"showAddButton && addButtonConfigs.length === 0\\\"\\r\\n [label]=\\\"(addButtonLabel | translate)\\r\\n \\\"(onClick)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n outlined severity=\\\"secondary\\\" /> -->\\r\\n\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'button',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n outlined: false,\\r\\n styleClass:''\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n @else {\\r\\n <!-- Split Button -->\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'split',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n loading: false,\\r\\n outlined: false,\\r\\n items: splitActions\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n\\r\\n <ng-container *ngIf=\\\"showSearch && filters; else emptySearch\\\">\\r\\n <lib-generic-search\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (reset)=\\\"applySearch('')\\\"\\r\\n ></lib-generic-search>\\r\\n </ng-container>\\r\\n\\r\\n <ng-template #emptySearch>\\r\\n <!-- Render a dummy div to preserve expected DOM shape -->\\r\\n <!-- <div class=\\\"min-h-[2.5rem] w-[12rem]\\\"></div> -->\\r\\n </ng-template>\\r\\n\\r\\n <div class=\\\"flex items-center gap-3\\\">\\r\\n\\r\\n <p-button icon=\\\"pi pi-refresh\\\" outlined severity=\\\"secondary\\\" (onClick)=\\\"applySearch('')\\\" />\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0\\\" />\\r\\n <p-button icon=\\\"pi pi-sort\\\" outlined severity=\\\"secondary\\\" />\\r\\n <p-button label=\\\"1 of 15\\\" outlined severity=\\\"secondary\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-right\\\" outlined severity=\\\"secondary\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-left\\\" outlined severity=\\\"secondary\\\" />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n<lib-generic-table\\r\\n [showAddButton]=\\\"showAddButton\\\"\\r\\n [data]=\\\"data\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [actionsMode]=\\\"actionsMode\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [showRowSelectionCheckbox]=\\\"showRowSelectionCheckbox\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (onAddNew)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n (pageChange)=\\\"onLazyLoad($event)\\\"\\r\\n [rowSelectable]=\\\"rowSelectable\\\"\\r\\n (rowSelect)=\\\"onRowClick($event)\\\"\\r\\n [(selection)]=\\\"_selectedRows\\\"\\r\\n #genericTable\\r\\n></lib-generic-table>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<!-- Drawer -->\\r\\n<p-drawer\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\\\"\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n styleClass=\\\"!w-full md:!w-80 lg:!w-[40rem]\\\">\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : '\\u0639\\u0631\\u0636' }}\\r\\n </span>\\r\\n </ng-template>\\r\\n<!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n\\r\\n<!-- Dialog -->\\r\\n<p-dialog\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\\\"\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [modal]=\\\"true\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissableMask]=\\\"true\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [style]=\\\"{ width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [header]=\\\"isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : viewHeaderTitle\\\">\\r\\n<!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div *ngIf=\\\"isViewMode\\\" class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n\\r\\n\\r\\n\\r\\n\" }]\n }], propDecorators: { genericTable: [{\n type: ViewChild,\n args: ['genericTable']\n }], data: [{\n type: Input\n }], formFields: [{\n type: Input\n }], columns: [{\n type: Input\n }], dialogMaxWidth: [{\n type: Input\n }], isViewMode: [{\n type: Input\n }], displayMode: [{\n type: Input\n }], isEditMode: [{\n type: Input\n }], drawerVisible: [{\n type: Input\n }], dialogVisible: [{\n type: Input\n }], model: [{\n type: Input\n }], loading: [{\n type: Input\n }], errorMsg: [{\n type: Input\n }], errorMessage: [{\n type: Input\n }], actions: [{\n type: Input\n }], actionsMode: [{\n type: Input\n }], action: [{\n type: Output\n }], bulkAction: [{\n type: Output\n }], singleAction: [{\n type: Output\n }], filters: [{\n type: Input\n }], filterModel: [{\n type: Input\n }], search: [{\n type: Output\n }], showSearch: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], onSearch: [{\n type: Output\n }], visibleChange: [{\n type: Output\n }], rowSelectable: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], scrollHeight: [{\n type: Input\n }], paginator: [{\n type: Input\n }], service: [{\n type: Input\n }], idField: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], singleActionButtons: [{\n type: Input\n }], showAddButton: [{\n type: Input\n }], splitActions: [{\n type: Input\n }], addButtonIcon: [{\n type: Input\n }], addButtonLabel: [{\n type: Input\n }], addButtonPosition: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }], beforeSave: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvbGliL2dlbmVyaWMtY3J1ZC10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsb0VBQW9FO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTyxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFRLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQXFCLFVBQVUsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFn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O3NCQUFsQixNQUFNO2dCQVFBLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksU0FBUztzQkFBakIsS0FBSztnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQW1CQyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSztnQkEwRk0sVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4ICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlICovXHJcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICdwcmltZW5nL2JyZWFkY3J1bWInO1xyXG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcclxuLy8gc3JjL2FwcC9zaGFyZWQvZ2VuZXJpYy1jcnVkLXRhYmxlL2dlbmVyaWMtY3J1ZC10YWJsZS5jb21wb25lbnQudHNcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgaW5qZWN0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lc3NhZ2VNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2UnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSxUYWJsZUxhenlMb2FkRXZlbnQgIH0gIGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBUb29sYmFyTW9kdWxlIH0gICBmcm9tICdwcmltZW5nL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0sIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEljb25GaWVsZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaWNvbmZpZWxkJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERyYXdlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJhd2VyJztcclxuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFN3YWxTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IEdlbmVyaWNCdXR0b24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24nO1xyXG5pbXBvcnQgeyBHZW5lcmljVGFibGUgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZWFyY2ggfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1zZWFyY2gnO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS91aS1idXR0b24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdlQ2hhbmdlUGF5bG9hZCBleHRlbmRzIFBhZ2luYXRvclN0YXRlIHtcclxuc29ydD86IHN0cmluZztcclxuZmlsdGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbnNNb2RlID0gJ2J1dHRvbnMnIHwgJ21lbnUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZ2VuZXJpYy1jcnVkLXRhYmxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRhYmxlTW9kdWxlLFxyXG4gICAgR2VuZXJpY0J1dHRvbixcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEdlbmVyaWNTZWFyY2gsXHJcbiAgICBHZW5lcmljVGFibGUsXHJcbiAgICBUb29sYmFyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRGl2aWRlck1vZHVsZSxcclxuICAgIEljb25GaWVsZE1vZHVsZSxcclxuICAgIERyYXdlck1vZHVsZSxcclxuICAgIEZvcm1seUZvcm0sXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNZXNzYWdlTW9kdWxlLFxyXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIFVpQnV0dG9uQ29tcG9uZW50XHJcbl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtY3J1ZC10YWJsZS5odG1sJyxcclxuICAgaG9zdDoge1xyXG4gICAgICAgIGNsYXNzOiAnaC1mdWxsIGZsZXgtMSBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugcm91bmRlZC0yeGwgcC00IGJnLXdoaXRlJ1xyXG4gICAgfSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljQ3J1ZFRhYmxlQ29tcG9uZW50PFQ+IHtcclxuIEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZScpIGdlbmVyaWNUYWJsZSE6IEdlbmVyaWNUYWJsZTxUPjtcclxuIHRyYW5zbGF0ZTpUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gcHJpdmF0ZSBzd2FsU2VydmljZSA9IGluamVjdChTd2FsU2VydmljZSk7XHJcblxyXG4gICAgaG9tZTogTWVudUl0ZW0gfCB1bmRlZmluZWQgPSB7IGljb246ICdwaSBwaS1ob21lJywgcm91dGVyTGluazogJy8nIH07XHJcbiAgQElucHV0KCkgZGF0YTogVFtdID0gW107XHJcbiAgIGZvcm1GaWVsZHNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107ICAvLyA8LS0g2YfZhtinXHJcbiAgQElucHV0KCkgZm9ybUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAgLy8gPC0tINmH2YbYp1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgIC8vIDwtLSDZh9mG2KdcclxuICBASW5wdXQoKSBkaWFsb2dNYXhXaWR0aCA9ICc0MHJlbSc7IC8vIHVuc2V0ICwgZml0LWNvbnRlbnRcclxuICBASW5wdXQoKSBpc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzcGxheU1vZGU6XHJcbiAgfCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJ1xyXG4gIHwgUGFydGlhbDxSZWNvcmQ8J2FkZCcgfCAnZWRpdCcgfCAndmlldycsICdkcmF3ZXInIHwgJ2RpYWxvZycgfCAncm91dGUnPj5cclxuICA9ICdkcmF3ZXInO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkcmF3ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xyXG4gICBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gQElucHV0KCkgbW9kZWw6IGFueTtcclxuICBtb2RlbF86IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvck1zZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nfGFueSA9ICcnO1xyXG5cclxub3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICAgIC8qKiDYqtit2K/YryDYt9ix2YrZgtipINin2YTYudix2LY6ICdidXR0b25zJyDYo9mIICdtZW51JyAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNNb2RlOiBBY3Rpb25zTW9kZSA9ICdidXR0b25zJztcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBUIH0+KCk7XHJcbiAgQE91dHB1dCgpIGJ1bGtBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyBpdGVtczogVFtdIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNpbmdsZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IGl0ZW06IFQgfT4oKTtcclxuXHJcbiAgLy8g2KfZhNio2K3Yq1xyXG4vLyBTZWFyY2hcclxuICBASW5wdXQoKSBmaWx0ZXJzOiBhbnk7XHJcbiAgIEBJbnB1dCgpIGZpbHRlck1vZGVsOiBhbnkgPSB7fTtcclxuICBAT3V0cHV0KCkgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpZWxkOiBzdHJpbmc7IGdsb2JhbDogc3RyaW5nIH0+KCk7XHJcblxyXG4vKiog2YTZhNiq2K3Zg9mFINio2KXYuNmH2KfYsS/Ypdiu2YHYp9ihINmC2LPZhSDYp9mE2KjYrdirICovXHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaCA9IHRydWU7XHJcblxyXG4gIC8qKiBQYWdpbmF0aW9uIElucHV0cyAqL1xyXG4gIEBJbnB1dCgpIGZpcnN0ID0gMDtcclxuICBASW5wdXQoKSByb3dzID0gMTA7XHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUNoYW5nZVBheWxvYWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5AT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOztcclxuLy8gQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbnZpZXdIZWFkZXJUaXRsZSA9ICfYudix2LYg2KfZhNiq2YHYp9i12YrZhCc7XHJcbiAgIC8qKiDZhNis2LnZhCDYp9mE2KzYr9mI2YQg2YLYp9io2YQg2YTYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBICjYp9mB2KrYsdin2LbZiiBmYWxzZSkgKi9cclxuICBASW5wdXQoKSByb3dTZWxlY3RhYmxlID0gZmFsc2U7XHJcbiAgLyoqINit2K/YqyDZitiu2LHYrCDYp9mE2LXZgSDYp9mE2YXYrdiv2ZHYryAqL1xyXG4gIEBPdXRwdXQoKSByb3dTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gIHNlbGVjdGlvbjogVCB8IG51bGwgPSBudWxsO1xyXG5cclxuIC8vINin2YTZgdix2LJcclxuICBzb3J0RmllbGQ/OiBzdHJpbmc7XHJcbiAgc29ydE9yZGVyOiAxIHwgLTEgPSAxO1xyXG5cclxuQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzQwMHB4JztcclxuXHJcbiBASW5wdXQoKSBwYWdpbmF0b3IgPSB0cnVlO1xyXG5cclxuQElucHV0KCkgc2VydmljZTogQmFzZVNlcnZpY2V8YW55O1xyXG5ASW5wdXQoKSBpZEZpZWxkID0gJ2lkJztcclxuXHJcbiBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgYnVsa0FjdGlvbkJ1dHRvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgc2luZ2xlQWN0aW9uQnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbiBfc2VsZWN0ZWRSb3dzOiBUW10gPSBbXTtcclxuXHJcbmdldCBpc1NpbmdsZUl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gMTtcclxufVxyXG5cclxuZ2V0IGlzTXVsdGlwbGVJdGVtU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUm93cy5sZW5ndGggPiAxO1xyXG59XHJcblxyXG5nZXQgc2VsZWN0ZWRJdGVtcygpOiBUW10ge1xyXG4gIHJldHVybiB0aGlzLl9zZWxlY3RlZFJvd3M7XHJcbn1cclxuXHJcblxyXG5cclxuLyoqINmE2YTYqtit2YPZhSDYqNil2LjZh9in2LEg2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBzaG93QWRkQnV0dG9uID0gdHJ1ZTtcclxuQElucHV0KCkgc3BsaXRBY3Rpb25zOiBNZW51SXRlbVtdID0gW107XHJcbi8qKiDYp9mE2KPZitmC2YjZhtipINin2YTYp9mB2KrYsdin2LbZitipINmE2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBhZGRCdXR0b25JY29uID0gJ3BpIHBpLXBsdXMnO1xyXG4vKiog2KfZhNmG2LUg2KfZhNin2YHYqtix2KfYttmKINmE2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBhZGRCdXR0b25MYWJlbCA9ICdBREQnO1xyXG4gIC8qKiDYqtiq2K3Zg9mR2YUg2KjZhdmI2YLYuSDYstixINin2YTYpdi22KfZgdipOiAndG9wJyDYo9mIICdib3R0b20nICovXHJcbkBJbnB1dCgpIGFkZEJ1dHRvblBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nID0gJ3RvcCc7XHJcblxyXG4gQElucHV0KCkgYWRkQnV0dG9uQ29uZmlnczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbkBJbnB1dCgpIGJyZWFkY3J1bWI6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQ7XHJcblxyXG5cclxuZ2V0IGJyZWFkY3J1bWJfKCk6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQge1xyXG4gIHJldHVybiB0aGlzLmJyZWFkY3J1bWI/Lm1hcCh2ID0+ICh7XHJcbiAgICAuLi52LFxyXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodi5sYWJlbCA/PyAnJylcclxuICB9KSk7XHJcbn1cclxuZ2V0IHJ0bCgpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgcmV0dXJuIGRvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ/LmRpciA9PT0gJ3J0bCc7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4vLyAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAvKiog2KfZhNii2YYg2YrYqtmE2YLZkdmJIHBhZ2luYXRpb24gKyBzb3J0INmB2Yog2K3Yr9irINmI2KfYrdivICovXHJcbm9uTGF6eUxvYWQoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCkge1xyXG4gIC8vIHRoaXMubW9kZWxfPSB0aGlzLm1vZGVsID8/IHt9O1xyXG4gIHRoaXMubW9kZWw9IHRoaXMubW9kZWwgPz8ge307XHJcblxyXG4gIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgY29uc3QgZmlyc3QgICAgID0gZXZlbnQuZmlyc3QgID8/IHRoaXMuZmlyc3Q7XHJcbiAgY29uc3Qgcm93cyAgICAgID0gZXZlbnQucm93cyAgID8/IHRoaXMucm93cztcclxuICBjb25zdCBzb3J0RmllbGQgPSB0eXBlb2YgZXZlbnQuc29ydEZpZWxkID09PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gZXZlbnQuc29ydEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnRGaWVsZDtcclxuICBjb25zdCBzb3J0T3JkZXIgPSBldmVudC5zb3J0T3JkZXIgPT09IC0xID8gLTEgOiAxO1xyXG5cclxuXHJcbiAgY29uc3QgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcclxuICAgICAgT2JqZWN0LmVudHJpZXMoZXZlbnQuZmlsdGVycykuZm9yRWFjaCgoW2ZpZWxkLCBtZXRhXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKG1ldGEgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgIGZpbHRlcnNbZmllbGRdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgdGhpcy5maXJzdCAgICAgPSBmaXJzdDtcclxuICB0aGlzLnJvd3MgICAgICA9IHJvd3M7XHJcbiAgdGhpcy5zb3J0RmllbGQgPSBzb3J0RmllbGQ7XHJcbiAgdGhpcy5zb3J0T3JkZXIgPSBzb3J0T3JkZXIgYXMgMXwgLTE7XHJcbmNvbnN0IGRpciA9IHNvcnRPcmRlciA9PT0gMSA/ICdhc2MnIDogJ2Rlc2MnO1xyXG4gY29uc3Qgc29ydCA9IHNvcnRGaWVsZCA/IGAke3NvcnRGaWVsZH0gJHtkaXJ9YCA6IHVuZGVmaW5lZDtcclxuXHJcbiAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBmaXJzdCwgcm93cyAsc29ydCwgZmlsdGVycyB9KTtcclxuXHJcbiAgLy8g2YrYqNmG2Yog2KfZhNmG2LUg2YjYpdix2LPYp9mE2YdcclxuXHJcbn1cclxuXHJcblxyXG4gIC8qKiDYqti12YrZitixINin2YTYqNmK2KfZhtin2Kog2K3Ys9ioINin2YTYtdmB2K3YqSAqL1xyXG4gIGdldCBwYWdlZERhdGEoKTogVFtdIHtcclxuICAgIC8vIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuc2xpY2UodGhpcy5maXJzdCwgdGhpcy5maXJzdCArIHRoaXMucm93cykgOiBbXTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0IGdsb2JhbEZpbHRlckZpZWxkcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoYyA9PiBTdHJpbmcoYy5rZXkpKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLyoqINij2LHYs9mEINil2YTZiSDYp9mE2KPYqCDZhNij2KrZhdiq2Kkg2LTZg9mEINin2YTYqNit2Ksg2KXYsNinINmK2K3Yqtin2KwgKi9cclxuLy8gZnJvbSBnZW5lcmljLWNydWQtdGFibGUuY29tcG9uZW50LnRzXHJcblxyXG4vKiog2KjYr9mR2YQgYXBwbHlTZWFyY2gg2YTYqtio2KsgcGFnZUNoYW5nZSDZhdio2KfYtNix2KnZiyAqL1xyXG4gYXBwbHlTZWFyY2goZmlsdGVyczogYW55KSB7XHJcbiAgICAvLyB0aGlzLmdlbmVyaWNUYWJsZS5hcHBseUZpbHRlcihnbG9iYWwpO1xyXG4gICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuXHJcbiAvKiog2K/Yp9mE2Kkg2KrZhtmB2ZHYsCDYudmG2K8g2KfZhNmG2YLYsSDYudmE2Ykg2LXZgSAqL1xyXG4gIG9uUm93Q2xpY2socm93OiBUKSB7XHJcbiAgICBpZiAodGhpcy5yb3dTZWxlY3RhYmxlKSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0LmVtaXQocm93KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAgQElucHV0KCkgYmVmb3JlU2F2ZTogKHJlY29yZDogVCkgPT4gVCA9IChyZWNvcmQpID0+IHJlY29yZDtcclxuXHJcbiAgLy8gb25TdWJtaXQoKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAvLyAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAvLyAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cclxuICAvLyAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuc2VydmljZSAvKiBhcyBDcnVkU2VydmljZTxUPiAqLztcclxuICAvLyAgICAgY29uc3QgaWQgPSB0aGlzLmlzRWRpdE1vZGUgPyAodGhpcy5tb2RlbCBhcyBhbnkpW3RoaXMuaWRGaWVsZF0gOiBudWxsO1xyXG5cclxuICAvLyAgICAgY29uc3QgcmVjb3JkVG9TYXZlID0gdGhpcy5iZWZvcmVTYXZlKHsgLi4udGhpcy5tb2RlbCB9KTtcclxuXHJcblxyXG4gIC8vICAgICBjb25zdCBvcGVyYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmlzRWRpdE1vZGVcclxuICAvLyAgICAgICA/IHNlcnZpY2UudXBkYXRlKGlkLCByZWNvcmRUb1NhdmUpXHJcbiAgLy8gICAgICAgOiBzZXJ2aWNlLmNyZWF0ZShyZWNvcmRUb1NhdmUpO1xyXG5cclxuICAvLyAgICAgLy8gb3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAvLyAgICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gIC8vICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAvLyAgICAgICAgIC8vIHRoaXMucmVmLmNsb3NlKHRydWUpOyAvLyDZhtis2KfYrSDYp9mE2LnZhdmE2YrYqVxyXG4gIC8vICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpXHJcbiAgLy8gICAgICAgICAgIC8vIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgZmlyc3QsIHJvd3MgLHNvcnQsIGZpbHRlcnMgfSk7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuYXBwbHlTZWFyY2goJycpO1xyXG4gIC8vICAgICAgICAgLy8gdGhpcy5tZVxyXG4gIC8vICAgICAgIH0sXHJcbiAgLy8gICAgICAgZXJyb3I6IChlcnI6YW55KSA9PiB7XHJcbiAgLy8gICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgLy8gICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVyci5lcnJvcj8udGl0bGUgfHxcclxuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIubWVzc2FnZSB8fFxyXG4gIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICfYrdiv2Ksg2K7Yt9ijINij2KvZhtin2KEg2KfZhNit2YHYuC4g2YrYsdis2Ykg2KfZhNmF2K3Yp9mI2YTYqSDZhdix2Kkg2KPYrtix2YkuJztcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcclxuXHJcbiAgLy8g4pyFINij2YjZhCDYtNmK2KEg2YbYt9mE2Kgg2KrYo9mD2YrYryDZhdmGINin2YTZhdiz2KrYrtiv2YVcclxuICB0aGlzLnN3YWxTZXJ2aWNlLmNvbmZpcm0oXHJcbiAgICB0aGlzLmlzRWRpdE1vZGUgPyAn2KrYo9mD2YrYryDYp9mE2KrYudiv2YrZhCcgOiAn2KrYo9mD2YrYryDYp9mE2K3Zgdi4JyxcclxuICAgIHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICA/ICfZh9mEINiq2LHZitivINit2YHYuCDYp9mE2KrYudiv2YrZhNin2Kog2LnZhNmJINmH2LDYpyDYp9mE2LPYrNmE2J8nXHJcbiAgICAgIDogJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INmH2LDYpyDYp9mE2LPYrNmE2J8nLFxyXG4gICAgJ9mG2LnZhScsXHJcbiAgICAn2KXZhNi62KfYoSdcclxuICApLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKCFyZXN1bHQuaXNDb25maXJtZWQpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLnNlcnZpY2U7XHJcbiAgICBjb25zdCBpZCA9IHRoaXMuaXNFZGl0TW9kZSA/ICh0aGlzLm1vZGVsIGFzIGFueSlbdGhpcy5pZEZpZWxkXSA6IG51bGw7XHJcblxyXG4gICAgY29uc3QgcmVjb3JkVG9TYXZlID0gdGhpcy5iZWZvcmVTYXZlKHsgLi4udGhpcy5tb2RlbCB9KTtcclxuXHJcbiAgICBjb25zdCBvcGVyYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmlzRWRpdE1vZGVcclxuICAgICAgPyBzZXJ2aWNlLnVwZGF0ZShpZCwgcmVjb3JkVG9TYXZlKVxyXG4gICAgICA6IHNlcnZpY2UuY3JlYXRlKHJlY29yZFRvU2F2ZSk7XHJcblxyXG4gICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIOKchSDYsdiz2KfZhNipINmG2KzYp9itXHJcbiAgICAgICAgdGhpcy5zd2FsU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID8gJ9iq2YUg2KfZhNiq2LnYr9mK2YQg2KjZhtis2KfYrScgOiAn2KrZhSDYp9mE2K3Zgdi4INio2YbYrNin2K0nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTZWFyY2goJycpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IG1zZyA9XHJcbiAgICAgICAgICBlcnIuZXJyb3I/LnRpdGxlIHx8XHJcbiAgICAgICAgICBlcnIubWVzc2FnZSB8fFxyXG4gICAgICAgICAgJ9it2K/YqyDYrti32KMg2KPYq9mG2KfYoSDYp9mE2K3Zgdi4LiDZitix2KzZiSDYp9mE2YXYrdin2YjZhNipINmF2LHYqSDYo9iu2LHZiS4nO1xyXG5cclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG1zZztcclxuXHJcbiAgICAgICAgLy8g4p2MINix2LPYp9mE2Kkg2K7Yt9ijXHJcbiAgICAgICAgdGhpcy5zd2FsU2VydmljZS5lcnJvcign2YHYtNmEINin2YTYrdmB2LgnLCBtc2cpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG5cclxuXHJcbiAgICAgdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuXHJcbm9uU2luZ2xlSXRlbUFjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc1NpbmdsZUl0ZW1TZWxlY3RlZCkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9zZWxlY3RlZFJvd3NbMF07XHJcbiAgdGhpcy5zaW5nbGVBY3Rpb24uZW1pdCh7XHJcbiAgICBuYW1lOiBidG4uYWN0aW9uTmFtZSA/PyAnc2luZ2xlQWN0aW9uJyxcclxuICAgIGl0ZW06IHNlbGVjdGVkSXRlbVxyXG4gIH0pO1xyXG59XHJcblxyXG5vbkludGVybmFsQnVsa0FjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc011bHRpcGxlSXRlbVNlbGVjdGVkKSByZXR1cm47XHJcblxyXG4gIHRoaXMuYnVsa0FjdGlvbi5lbWl0KHtcclxuICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdidWxrQWN0aW9uJyxcclxuICAgIGl0ZW1zOiBbLi4udGhpcy5fc2VsZWN0ZWRSb3dzXSAgLy8g2YbYsdiz2YQg2YbYs9iu2Kkg2YXZhiDYp9mE2YXYtdmB2YjZgdipXHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG59XHJcbiIsIlxyXG4gPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnQgZ2FwLTIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRleHQtMnhsIGxlYWRpbmctOCBmb250LW1lZGl1bSBiZy1zbGF0ZS04MDAgcC00IHJvdW5kZWQtbWRcIj5cclxuICAgICAgICAgICAgPHAtYnJlYWRjcnVtYlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJicmVhZGNydW1iX1wiXHJcbiAgICAgICAgICAgICAgW2hvbWVdPVwiaG9tZVwiXHJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImN1c3RvbS1icmVhZGNydW1iXCJcclxuICAgICAgICAgICAgPjwvcC1icmVhZGNydW1iPlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuPGFwcC1icmVhZGNydW1iIFticmVhZGNydW1iXT1cImJyZWFkY3J1bWJfXCI+PC9hcHAtYnJlYWRjcnVtYj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGp1c3RpZnktZW5kIGZsZXgtd3JhcFwiPlxyXG4gICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2luZ2xlSXRlbVNlbGVjdGVkXCI+XHJcbiA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2Ygc2luZ2xlQWN0aW9uQnV0dG9uczsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxyXG4gPGxpYi1nZW5lcmljLWJ1dHRvblxyXG5cclxuICBbaWNvbl09XCJidG4uaWNvblwiXHJcbltsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG5bdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiBbc2l6ZV09XCJidG4uc2l6ZVwiXHJcbiBbcGVybWlzc2lvbl09XCJidG4ucGVybWlzc2lvblwiXHJcbiAoY2xpY2tlZCk9XCJvblNpbmdsZUl0ZW1BY3Rpb24oYnRuKVwiXHJcbiA+PC9saWItZ2VuZXJpYy1idXR0b24+XHJcbjwvbmctY29udGFpbmVyPlxyXG4gPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkSXRlbXMubGVuZ3RoID4gMFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2YgYnVsa0FjdGlvbkJ1dHRvbnM7IHRyYWNrQnk6IHRyYWNrQnlJZHhcIj5cclxuICAgICAgICA8bGliLWdlbmVyaWMtYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuICAgICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAgIChjbGlja2VkKT1cIm9uSW50ZXJuYWxCdWxrQWN0aW9uKGJ0bilcIlxyXG4gICAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBhZGRCdXR0b25Db25maWdzOyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XHJcbiAgICAgIDxsaWItZ2VuZXJpYy1idXR0b25cclxuICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICBbcGVybWlzc2lvbl09XCJidG4ucGVybWlzc2lvblwiXHJcbiAgICAgICAgKGNsaWNrZWQpPVwiIHRoaXMuYWN0aW9uLmVtaXQoeyBuYW1lOiBidG4uYWN0aW9uTmFtZSA/PyAnYWRkJywgcm93OiBudWxsISB9KTtcIlxyXG4gICAgICA+PC9saWItZ2VuZXJpYy1idXR0b24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgQGlmICgoc2hvd0FkZEJ1dHRvbiB8fCBzcGxpdEFjdGlvbnMubGVuZ3RoID4gMCkmJiBhZGRCdXR0b25Db25maWdzLmxlbmd0aCA9PT0gMCkge1xyXG5cclxuICAgICAgICAgICAgICBAaWYgKHNob3dBZGRCdXR0b24gJiYgc3BsaXRBY3Rpb25zLmxlbmd0aCAgPT09IDApIHtcclxuXHJcbiAgICAgICAgICAgICAgICAgPCEtLSA8cC1idXR0b25cclxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLWNpcmNsZS1maWxsIHRleHQtZ3JlZW4tNTAwXCIgKm5nSWY9XCJzaG93QWRkQnV0dG9uICYmIGFkZEJ1dHRvbkNvbmZpZ3MubGVuZ3RoID09PSAwXCJcclxuICAgICAgICAgICAgW2xhYmVsXT1cIihhZGRCdXR0b25MYWJlbCB8IHRyYW5zbGF0ZSlcclxuICAgICAgICAgICAgXCIob25DbGljayk9XCJhY3Rpb24uZW1pdCh7IG5hbWU6ICdhZGQnLCByb3c6IG51bGwhIH0pXCJcclxuICAgICAgICAgICAgb3V0bGluZWQgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIiAvPiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICA8dWktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIFtjb25maWddPVwie1xyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBhZGRCdXR0b25MYWJlbHwgdHJhbnNsYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdwaSBwaS1wbHVzJyxcclxuICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogJ3ByaW1hcnknLFxyXG4gICAgICAgICAgICAgICAgICAgIG91dGxpbmVkOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICBzdHlsZUNsYXNzOicnXHJcbiAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAob25DbGljayk9XCJhY3Rpb24uZW1pdCh7IG5hbWU6ICdhZGQnLCByb3c6IG51bGwhIH0pXCI+XHJcbiAgICAgICAgICAgICAgICA8L3VpLWJ1dHRvbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgQGVsc2Uge1xyXG4gICAgICAgICAgICAgICA8IS0tIFNwbGl0IEJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgPHVpLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3NwbGl0JyxcclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBhZGRCdXR0b25MYWJlbHwgdHJhbnNsYXRlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3BpIHBpLXBsdXMnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgc2V2ZXJpdHk6ICdwcmltYXJ5JyxcclxuICAgICAgICAgICAgICAgICAgICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgb3V0bGluZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHNwbGl0QWN0aW9uc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFjdGlvbi5lbWl0KHsgbmFtZTogJ2FkZCcsIHJvdzogbnVsbCEgfSlcIj5cclxuICAgICAgICAgICAgICAgICAgPC91aS1idXR0b24+XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgICAgIH1cclxuXHJcblxyXG5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIG1iLTQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dTZWFyY2ggJiYgZmlsdGVyczsgZWxzZSBlbXB0eVNlYXJjaFwiPlxyXG4gICAgICAgICAgIDxsaWItZ2VuZXJpYy1zZWFyY2hcclxuICAgICAgICAgICAgICAgIFttb2RlbF09XCJmaWx0ZXJNb2RlbFwiXHJcbiAgICAgICAgICAgICAgICBbZmllbGRzXT1cImZpbHRlcnNcIlxyXG4gICAgICAgICAgICAgICAgKHNlYXJjaCk9XCJhcHBseVNlYXJjaCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChyZXNldCk9XCJhcHBseVNlYXJjaCgnJylcIlxyXG4gICAgICAgICAgICAgID48L2xpYi1nZW5lcmljLXNlYXJjaD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5U2VhcmNoPlxyXG4gICAgPCEtLSBSZW5kZXIgYSBkdW1teSBkaXYgdG8gcHJlc2VydmUgZXhwZWN0ZWQgRE9NIHNoYXBlIC0tPlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwibWluLWgtWzIuNXJlbV0gdy1bMTJyZW1dXCI+PC9kaXY+IC0tPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cclxuXHJcbiAgICAgICAgICAgICAgPHAtYnV0dG9uIGljb249XCJwaSBwaS1yZWZyZXNoXCIgb3V0bGluZWQgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIiAob25DbGljayk9XCJhcHBseVNlYXJjaCgnJylcIiAvPlxyXG4gICAgICAgICAgICAgIDxwLWRpdmlkZXIgbGF5b3V0PVwidmVydGljYWxcIiBjbGFzcz1cIm0tMCBwLTBcIiAvPlxyXG4gICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktc29ydFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgLz5cclxuICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBsYWJlbD1cIjEgb2YgMTVcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZXZyb24tcmlnaHRcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZXZyb24tbGVmdFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuXHJcbjxsaWItZ2VuZXJpYy10YWJsZVxyXG4gIFtzaG93QWRkQnV0dG9uXT1cInNob3dBZGRCdXR0b25cIlxyXG4gIFtkYXRhXT1cImRhdGFcIlxyXG4gIFtjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG4gIFtwYWdpbmF0b3JdPVwicGFnaW5hdG9yXCJcclxuICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICBbYWN0aW9uc109XCJhY3Rpb25zXCJcclxuICBbYWN0aW9uc01vZGVdPVwiYWN0aW9uc01vZGVcIlxyXG4gIFtmaXJzdF09XCJmaXJzdFwiXHJcbiAgW3Jvd3NdPVwicm93c1wiXHJcbiAgW3RvdGFsUmVjb3Jkc109XCJ0b3RhbFJlY29yZHNcIlxyXG4gIFtzb3J0RmllbGRdPVwic29ydEZpZWxkXCJcclxuICBbc29ydE9yZGVyXT1cInNvcnRPcmRlclwiXHJcbiAgW2dsb2JhbEZpbHRlckZpZWxkc109XCJnbG9iYWxGaWx0ZXJGaWVsZHNcIlxyXG4gIFtzY3JvbGxIZWlnaHRdPVwic2Nyb2xsSGVpZ2h0XCJcclxuICBbc2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XT1cInNob3dSb3dTZWxlY3Rpb25DaGVja2JveFwiXHJcbiAgKGFjdGlvbik9XCJhY3Rpb24uZW1pdCgkZXZlbnQpXCJcclxuICAob25BZGROZXcpPVwiYWN0aW9uLmVtaXQoeyBuYW1lOiAnYWRkJywgcm93OiBudWxsISB9KVwiXHJcbiAgKHBhZ2VDaGFuZ2UpPVwib25MYXp5TG9hZCgkZXZlbnQpXCJcclxuICBbcm93U2VsZWN0YWJsZV09XCJyb3dTZWxlY3RhYmxlXCJcclxuICAocm93U2VsZWN0KT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgWyhzZWxlY3Rpb24pXT1cIl9zZWxlY3RlZFJvd3NcIlxyXG4gICNnZW5lcmljVGFibGVcclxuPjwvbGliLWdlbmVyaWMtdGFibGU+XHJcblxyXG5cclxuXHJcblxyXG48IS0tIERyYXdlciAtLT5cclxuPHAtZHJhd2VyXHJcbiAgKm5nSWY9XCIodHlwZW9mIGRpc3BsYXlNb2RlID09PSAnc3RyaW5nJyA/IGRpc3BsYXlNb2RlIDogaXNFZGl0TW9kZSA/IGRpc3BsYXlNb2RlWydlZGl0J10gOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/IGRpc3BsYXlNb2RlWydhZGQnXSA6IGRpc3BsYXlNb2RlWyd2aWV3J10gICkgPT09ICdkcmF3ZXInICYmIGRyYXdlclZpc2libGVcIlxyXG4gIFsodmlzaWJsZSldPVwiZHJhd2VyVmlzaWJsZVwiXHJcbiAgW2Nsb3NhYmxlXT1cInRydWVcIlxyXG4gIFtkaXNtaXNzaWJsZV09XCJmYWxzZVwiXHJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXHJcbiAgKHZpc2libGVDaGFuZ2UpPVwidmlzaWJsZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gIHN0eWxlQ2xhc3M9XCIhdy1mdWxsIG1kOiF3LTgwIGxnOiF3LVs0MHJlbV1cIj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImhlYWRlclwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC1sZ1wiPlxyXG4gICAgICB7eyBpc0VkaXRNb2RlID8gJ9iq2LnYr9mK2YQnIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyAn2KXYttin2YHYqScgOiAn2LnYsdi2JyB9fVxyXG4gICAgPC9zcGFuPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwhLS0gKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiAtLT5cclxuICA8Zm9ybSAqbmdJZj1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAgY2xhc3M9XCJwLTRcIj5cclxuICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtRmllbGRzX1wiIFttb2RlbF09XCJtb2RlbFwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIj48L2Zvcm1seS1mb3JtPlxyXG4gIDwvZm9ybT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiICpuZ0lmPVwiIWlzVmlld01vZGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgW2xhYmVsXT1cImlzRWRpdE1vZGUgPyAoJ1VQREFURScgfCB0cmFuc2xhdGUpIDogKCdTQVZFJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBmb3JtLmludmFsaWRcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgbGFiZWw9XCJ7eyAnQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJkYW5nZXJcIlxyXG4gICAgICAgIChjbGljayk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpXCI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRyYXdlcj5cclxuXHJcbjwhLS0gRGlhbG9nIC0tPlxyXG48cC1kaWFsb2dcclxuICAqbmdJZj1cIih0eXBlb2YgZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnID8gZGlzcGxheU1vZGUgOiBpc0VkaXRNb2RlID8gZGlzcGxheU1vZGVbJ2VkaXQnXSA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gZGlzcGxheU1vZGVbJ2FkZCddIDogZGlzcGxheU1vZGVbJ3ZpZXcnXSAgKSA9PT0gJ2RpYWxvZycgJiYgZGlhbG9nVmlzaWJsZVwiXHJcbiAgWyh2aXNpYmxlKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICBbbW9kYWxdPVwidHJ1ZVwiXHJcbiAgW2Nsb3NhYmxlXT1cInRydWVcIlxyXG4gIFtkaXNtaXNzYWJsZU1hc2tdPVwidHJ1ZVwiXHJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXHJcbiAgKHZpc2libGVDaGFuZ2UpPVwidmlzaWJsZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gIFtzdHlsZV09XCJ7IHdpZHRoOiAnOTV2dycsIG1heFdpZHRoOiBkaWFsb2dNYXhXaWR0aCB9XCJcclxuICBbaGVhZGVyXT1cImlzRWRpdE1vZGUgPyAn2KrYudiv2YrZhCcgOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/ICfYpdi22KfZgdipJyA6IHZpZXdIZWFkZXJUaXRsZVwiPlxyXG48IS0tIFticmVha3BvaW50c109XCJ7ICcxMjAwcHgnOiAnNTB2dycsICc3NjhweCc6ICc3MHZ3JywgJzU2MHB4JzogJzk1dncnIH1cIiAtLT5cclxuICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJpc1ZpZXdNb2RlXCIgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIHotMTAgYmctd2hpdGUvNTAgcG9pbnRlci1ldmVudHMtYXV0byByb3VuZGVkLW1kXCI+PC9kaXY+XHJcbiAgICA8Zm9ybSAqbmdJZj1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cInAtNFwiPlxyXG4gICAgICA8Zm9ybWx5LWZvcm0gW2Zvcm1dPVwiZm9ybVwiIFtmaWVsZHNdPVwiZm9ybUZpZWxkc19cIiBbbW9kZWxdPVwibW9kZWxcIiBbb3B0aW9uc109XCJvcHRpb25zXCI+PC9mb3JtbHktZm9ybT5cclxuICAgIDwvZm9ybT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgZ2FwLTJcIj5cclxuICAgICAgPGJ1dHRvbiAqbmdJZj1cIiFpc1ZpZXdNb2RlXCJcclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgW2xhYmVsXT1cImlzRWRpdE1vZGUgPyAoJ1VQREFURScgfCB0cmFuc2xhdGUpIDogKCdTQVZFJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgbGFiZWw9XCJ7eyBpc1ZpZXdNb2RlID8gKCdDTE9TRScgfCB0cmFuc2xhdGUpIDogKCdDQU5DRUwnIHwgdHJhbnNsYXRlKSB9fVwiXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgIChjbGljayk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpXCI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRpYWxvZz5cclxuXHJcblxyXG5cclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-generic-crud-table.mjs","sources":["../tmp-esm2022/generic-crud-table/lib/generic-crud-table-module.js","../tmp-esm2022/generic-crud-table/lib/generic-crud-table.js","../tmp-esm2022/generic-crud-table/elite.framework-ng.ui.core-generic-crud-table.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GenericButtonModule } from '@elite.framework/ng.ui.core/generic-button';\nimport * as i0 from \"@angular/core\";\nexport class GenericCrudTableModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, imports: [CommonModule, GenericButtonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, imports: [CommonModule, GenericButtonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, GenericButtonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDOztBQUtqRixNQUFNLE9BQU8sc0JBQXNCO3VHQUF0QixzQkFBc0I7d0dBQXRCLHNCQUFzQixZQUZ2QixZQUFZLEVBQUMsbUJBQW1CO3dHQUUvQixzQkFBc0IsWUFGdkIsWUFBWSxFQUFDLG1CQUFtQjs7MkZBRS9CLHNCQUFzQjtrQkFIbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUMsbUJBQW1CLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBHZW5lcmljQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy51aS5jb3JlL2dlbmVyaWMtYnV0dG9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxHZW5lcmljQnV0dG9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRUYWJsZU1vZHVsZSB7fVxuIl19","import { DividerModule } from 'primeng/divider';\n// src/app/shared/generic-crud-table/generic-crud-table.component.ts\nimport { Component, Input, Output, EventEmitter, ViewChild, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MessageModule } from 'primeng/message';\nimport { ButtonModule } from 'primeng/button';\nimport { TableModule } from 'primeng/table';\nimport { ToolbarModule } from 'primeng/toolbar';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { FormlyForm } from '@ngx-formly/core';\nimport { IconFieldModule } from 'primeng/iconfield';\nimport { DrawerModule } from 'primeng/drawer';\nimport { DialogModule } from 'primeng/dialog';\nimport { FormsModule, ReactiveFormsModule, UntypedFormGroup } from '@angular/forms';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { BreadcrumbComponent } from '@elite.framework/ng.ui.core/breadcrumb';\nimport { GenericButton } from '@elite.framework/ng.ui.core/generic-button';\nimport { GenericTable } from '@elite.framework/ng.ui.core/generic-table';\nimport { GenericSearch } from '@elite.framework/ng.ui.core/generic-search';\nimport { UiButtonComponent } from '@elite.framework/ng.ui.core/ui-button';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/api\";\nimport * as i3 from \"primeng/button\";\nimport * as i4 from \"primeng/divider\";\nimport * as i5 from \"primeng/drawer\";\nimport * as i6 from \"@angular/forms\";\nimport * as i7 from \"primeng/dialog\";\nimport * as i8 from \"@ngx-translate/core\";\nexport class GenericCrudTableComponent {\n genericTable;\n translate = inject(TranslateService);\n swalService = inject(SwalService);\n home = { icon: 'pi pi-home', routerLink: '/' };\n data = [];\n formFields_ = []; // <-- هنا\n formFields = []; // <-- هنا\n columns = []; // <-- هنا\n dialogMaxWidth = '40rem'; // unset , fit-content\n isViewMode = false;\n displayMode = 'drawer';\n isEditMode = false;\n drawerVisible = false;\n dialogVisible = false;\n form = new UntypedFormGroup({});\n model;\n model_ = {};\n loading = false;\n errorMsg = '';\n errorMessage = '';\n options = {};\n actions = [];\n /** تحدد طريقة العرض: 'buttons' أو 'menu' */\n actionsMode = 'buttons';\n action = new EventEmitter();\n bulkAction = new EventEmitter();\n singleAction = new EventEmitter();\n // البحث\n // Search\n filters;\n filterModel = {};\n search = new EventEmitter();\n /** للتحكم بإظهار/إخفاء قسم البحث */\n showSearch = true;\n /** Pagination Inputs */\n first = 0;\n rows = 10;\n totalRecords = 0;\n pageChange = new EventEmitter();\n onSearch = new EventEmitter();\n visibleChange = new EventEmitter();\n ;\n // @Output() visibleChange = new EventEmitter<boolean>();\n viewHeaderTitle = 'عرض التفاصيل';\n /** لجعل الجدول قابل لاختيار الصفوف (افتراضي false) */\n rowSelectable = false;\n /** حدث يخرج الصف المحدّد */\n rowSelect = new EventEmitter();\n selection = null;\n // الفرز\n sortField;\n sortOrder = 1;\n scrollHeight = '400px';\n paginator = true;\n service;\n idField = 'id';\n showRowSelectionCheckbox = false;\n bulkActionButtons = [];\n singleActionButtons = [];\n _selectedRows = [];\n get isSingleItemSelected() {\n return this._selectedRows.length === 1;\n }\n get isMultipleItemSelected() {\n return this._selectedRows.length > 1;\n }\n get selectedItems() {\n return this._selectedRows;\n }\n /** للتحكم بإظهار زر الإضافة */\n showAddButton = true;\n splitActions = [];\n /** الأيقونة الافتراضية لزر الإضافة */\n addButtonIcon = 'pi pi-plus';\n /** النص الافتراضي لزر الإضافة */\n addButtonLabel = 'ADD';\n /** تتحكّم بموقع زر الإضافة: 'top' أو 'bottom' */\n addButtonPosition = 'top';\n addButtonConfigs = [];\n breadcrumb;\n get breadcrumb_() {\n return this.breadcrumb?.map(v => ({\n ...v,\n label: this.translate.instant(v.label ?? '')\n }));\n }\n get rtl() {\n try {\n return document?.documentElement?.dir === 'rtl';\n }\n catch (error) {\n return true;\n }\n }\n // private destroy$ = new Subject<void>();\n /** الآن يتلقّى pagination + sort في حدث واحد */\n onLazyLoad(event) {\n // this.model_= this.model ?? {};\n this.model = this.model ?? {};\n this.formFields_ = this.formFields;\n const first = event.first ?? this.first;\n const rows = event.rows ?? this.rows;\n const sortField = typeof event.sortField === 'string'\n ? event.sortField\n : this.sortField;\n const sortOrder = event.sortOrder === -1 ? -1 : 1;\n const filters = {};\n if (event.filters) {\n Object.entries(event.filters).forEach(([field, meta]) => {\n const value = meta.value;\n if (value != null && value !== '') {\n filters[field] = value;\n }\n });\n }\n this.first = first;\n this.rows = rows;\n this.sortField = sortField;\n this.sortOrder = sortOrder;\n const dir = sortOrder === 1 ? 'asc' : 'desc';\n const sort = sortField ? `${sortField} ${dir}` : undefined;\n this.pageChange.emit({ first, rows, sort, filters });\n // يبني النص وإرساله\n }\n /** تصيير البيانات حسب الصفحة */\n get pagedData() {\n // return this.data ? this.data.slice(this.first, this.first + this.rows) : [];\n return this.data;\n }\n get globalFilterFields() {\n return this.columns.map(c => String(c.key));\n }\n /** أرسل إلى الأب لأتمتة شكل البحث إذا يحتاج */\n // from generic-crud-table.component.ts\n /** بدّل applySearch لتبث pageChange مباشرةً */\n applySearch(filters) {\n // this.genericTable.applyFilter(global);\n this.onSearch.emit(filters);\n }\n /** دالة تنفّذ عند النقر على صف */\n onRowClick(row) {\n if (this.rowSelectable) {\n this.rowSelect.emit(row);\n }\n }\n beforeSave = (record) => record;\n // onSubmit() {\n // if (this.form.invalid) return;\n // this.loading = true;\n // this.errorMessage = null;\n // const service = this.service /* as CrudService<T> */;\n // const id = this.isEditMode ? (this.model as any)[this.idField] : null;\n // const recordToSave = this.beforeSave({ ...this.model });\n // const operation$: Observable<any> = this.isEditMode\n // ? service.update(id, recordToSave)\n // : service.create(recordToSave);\n // // operation$.pipe(takeUntil(this.destroy$)).subscribe({\n // operation$.subscribe({\n // next: () => {\n // // this.ref.close(true); // نجاح العملية\n // this.visibleChange.emit(false)\n // // this.pageChange.emit({ first, rows ,sort, filters });\n // this.applySearch('');\n // // this.me\n // },\n // error: (err:any) => {\n // this.loading = false;\n // this.errorMessage = err.error?.title ||\n // err.message ||\n // 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n // }\n // });\n // }\n onSubmit() {\n if (this.form.invalid)\n return;\n // ✅ أول شيء نطلب تأكيد من المستخدم\n this.swalService.confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode\n ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء').then((result) => {\n if (!result.isConfirmed)\n return;\n this.loading = true;\n this.errorMessage = null;\n const service = this.service;\n const id = this.isEditMode ? this.model[this.idField] : null;\n const recordToSave = this.beforeSave({ ...this.model });\n const operation$ = this.isEditMode\n ? service.update(id, recordToSave)\n : service.create(recordToSave);\n operation$.subscribe({\n next: () => {\n this.loading = false;\n // ✅ رسالة نجاح\n this.swalService.success(this.isEditMode ? 'تم التعديل بنجاح' : 'تم الحفظ بنجاح');\n this.visibleChange.emit(false);\n this.applySearch('');\n },\n error: (err) => {\n this.loading = false;\n const msg = err.error?.title ||\n err.message ||\n 'حدث خطأ أثناء الحفظ. يرجى المحاولة مرة أخرى.';\n this.errorMessage = msg;\n // ❌ رسالة خطأ\n this.swalService.error('فشل الحفظ', msg);\n }\n });\n });\n }\n trackByIdx(index, item) {\n return index;\n }\n onSingleItemAction(btn) {\n if (!this.isSingleItemSelected)\n return;\n const selectedItem = this._selectedRows[0];\n this.singleAction.emit({\n name: btn.actionName ?? 'singleAction',\n item: selectedItem\n });\n }\n onInternalBulkAction(btn) {\n if (!this.isMultipleItemSelected)\n return;\n this.bulkAction.emit({\n name: btn.actionName ?? 'bulkAction',\n items: [...this._selectedRows] // نرسل نسخة من المصفوفة\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: GenericCrudTableComponent, isStandalone: true, selector: \"app-generic-crud-table\", inputs: { data: \"data\", formFields: \"formFields\", columns: \"columns\", dialogMaxWidth: \"dialogMaxWidth\", isViewMode: \"isViewMode\", displayMode: \"displayMode\", isEditMode: \"isEditMode\", drawerVisible: \"drawerVisible\", dialogVisible: \"dialogVisible\", model: \"model\", loading: \"loading\", errorMsg: \"errorMsg\", errorMessage: \"errorMessage\", actions: \"actions\", actionsMode: \"actionsMode\", filters: \"filters\", filterModel: \"filterModel\", showSearch: \"showSearch\", first: \"first\", rows: \"rows\", totalRecords: \"totalRecords\", rowSelectable: \"rowSelectable\", scrollHeight: \"scrollHeight\", paginator: \"paginator\", service: \"service\", idField: \"idField\", showRowSelectionCheckbox: \"showRowSelectionCheckbox\", bulkActionButtons: \"bulkActionButtons\", singleActionButtons: \"singleActionButtons\", showAddButton: \"showAddButton\", splitActions: \"splitActions\", addButtonIcon: \"addButtonIcon\", addButtonLabel: \"addButtonLabel\", addButtonPosition: \"addButtonPosition\", addButtonConfigs: \"addButtonConfigs\", breadcrumb: \"breadcrumb\", beforeSave: \"beforeSave\" }, outputs: { action: \"action\", bulkAction: \"bulkAction\", singleAction: \"singleAction\", search: \"search\", pageChange: \"pageChange\", onSearch: \"onSearch\", visibleChange: \"visibleChange\", rowSelect: \"rowSelect\" }, host: { classAttribute: \"h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl p-4 bg-white\" }, viewQueries: [{ propertyName: \"genericTable\", first: true, predicate: [\"genericTable\"], descendants: true }], ngImport: i0, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <!-- <div class=\\\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\\\">\\r\\n <p-breadcrumb\\r\\n [model]=\\\"breadcrumb_\\\"\\r\\n [home]=\\\"home\\\"\\r\\n styleClass=\\\"custom-breadcrumb\\\"\\r\\n ></p-breadcrumb>\\r\\n </div> -->\\r\\n\\r\\n<app-breadcrumb class=\\\"xs:block hidden\\\" [breadcrumb]=\\\"breadcrumb_\\\"></app-breadcrumb>\\r\\n\\r\\n </div>\\r\\n\\r\\n<div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n <ng-container *ngIf=\\\"isSingleItemSelected\\\">\\r\\n <ng-container *ngFor=\\\"let btn of singleActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n[label]=\\\"btn.label | translate\\\"\\r\\n[variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n</ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngIf=\\\"selectedItems.length > 0\\\">\\r\\n <ng-container *ngFor=\\\"let btn of bulkActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n\\r\\n\\r\\n\\r\\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\\r\\n\\r\\n @if (showAddButton && splitActions.length === 0) {\\r\\n\\r\\n <!-- <p-button\\r\\n icon=\\\"pi pi-circle-fill text-green-500\\\" *ngIf=\\\"showAddButton && addButtonConfigs.length === 0\\\"\\r\\n [label]=\\\"(addButtonLabel | translate)\\r\\n \\\"(onClick)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n outlined severity=\\\"secondary\\\" /> -->\\r\\n\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'button',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n outlined: false,\\r\\n styleClass:''\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n @else {\\r\\n <!-- Split Button -->\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'split',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n loading: false,\\r\\n outlined: false,\\r\\n items: splitActions\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n\\r\\n <ng-container *ngIf=\\\"showSearch && filters; else emptySearch\\\">\\r\\n <lib-generic-search\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (reset)=\\\"applySearch('')\\\"\\r\\n ></lib-generic-search>\\r\\n </ng-container>\\r\\n\\r\\n <ng-template #emptySearch>\\r\\n <!-- Render a dummy div to preserve expected DOM shape -->\\r\\n <!-- <div class=\\\"min-h-[2.5rem] w-[12rem]\\\"></div> -->\\r\\n </ng-template>\\r\\n <!-- style=\\\"direction: ltr;\\\" -->\\r\\n <div class=\\\"flex items-center gap-3\\\">\\r\\n\\r\\n <p-button icon=\\\"pi pi-refresh\\\" outlined severity=\\\"secondary\\\" (onClick)=\\\"applySearch('')\\\" />\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-sort\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button label=\\\"1 of 15\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-right\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-left\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n<lib-generic-table\\r\\n [showAddButton]=\\\"showAddButton\\\"\\r\\n [data]=\\\"data\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [actionsMode]=\\\"actionsMode\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [showRowSelectionCheckbox]=\\\"showRowSelectionCheckbox\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (onAddNew)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n (pageChange)=\\\"onLazyLoad($event)\\\"\\r\\n [rowSelectable]=\\\"rowSelectable\\\"\\r\\n (rowSelect)=\\\"onRowClick($event)\\\"\\r\\n [(selection)]=\\\"_selectedRows\\\"\\r\\n #genericTable\\r\\n></lib-generic-table>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<!-- Drawer -->\\r\\n<p-drawer\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\\\"\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n styleClass=\\\"!w-full md:!w-80 lg:!w-[40rem]\\\">\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : '\\u0639\\u0631\\u0636' }}\\r\\n </span>\\r\\n </ng-template>\\r\\n<!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n\\r\\n<!-- Dialog -->\\r\\n<p-dialog\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\\\"\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [modal]=\\\"true\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissableMask]=\\\"true\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [style]=\\\"{ width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [header]=\\\"isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : viewHeaderTitle\\\">\\r\\n<!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div *ngIf=\\\"isViewMode\\\" class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n\\r\\n\\r\\n\\r\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: TableModule }, { kind: \"directive\", type: i2.PrimeTemplate, selector: \"[pTemplate]\", inputs: [\"type\", \"pTemplate\"] }, { kind: \"component\", type: GenericButton, selector: \"lib-generic-button\", inputs: [\"model\", \"type\", \"icon\", \"label\", \"variant\", \"severity\", \"size\", \"iconPosition\", \"disabled\", \"loading\", \"ariaLabel\", \"extraClasses\", \"permission\"], outputs: [\"clicked\", \"itemClick\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i3.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"component\", type: i3.Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"component\", type: GenericSearch, selector: \"lib-generic-search\", inputs: [\"placeholder\", \"model\", \"fields\"], outputs: [\"search\"] }, { kind: \"component\", type: GenericTable, selector: \"lib-generic-table\", inputs: [\"data\", \"columns\", \"loading\", \"actions\", \"actionsMode\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"globalFilterFields\", \"scrollHeight\", \"rowSelectable\", \"showAddButton\", \"selection\", \"paginator\", \"showRowSelectionCheckbox\"], outputs: [\"action\", \"pageChange\", \"onAddNew\", \"rowSelect\", \"selectionChange\"] }, { kind: \"ngmodule\", type: ToolbarModule }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: DividerModule }, { kind: \"component\", type: i4.Divider, selector: \"p-divider\", inputs: [\"styleClass\", \"layout\", \"type\", \"align\"] }, { kind: \"ngmodule\", type: IconFieldModule }, { kind: \"ngmodule\", type: DrawerModule }, { kind: \"component\", type: i5.Drawer, selector: \"p-drawer\", inputs: [\"appendTo\", \"blockScroll\", \"style\", \"styleClass\", \"ariaCloseLabel\", \"autoZIndex\", \"baseZIndex\", \"modal\", \"closeButtonProps\", \"dismissible\", \"showCloseIcon\", \"closeOnEscape\", \"transitionOptions\", \"visible\", \"position\", \"fullScreen\", \"header\", \"maskStyle\", \"closable\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\"] }, { kind: \"component\", type: FormlyForm, selector: \"formly-form\", inputs: [\"form\", \"model\", \"fields\", \"options\"], outputs: [\"modelChange\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i6.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i6.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i6.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: MessageModule }, { kind: \"component\", type: BreadcrumbComponent, selector: \"app-breadcrumb\", inputs: [\"breadcrumb\"] }, { kind: \"ngmodule\", type: DialogModule }, { kind: \"component\", type: i7.Dialog, selector: \"p-dialog\", inputs: [\"header\", \"draggable\", \"resizable\", \"contentStyle\", \"contentStyleClass\", \"modal\", \"closeOnEscape\", \"dismissableMask\", \"rtl\", \"closable\", \"breakpoints\", \"styleClass\", \"maskStyleClass\", \"maskStyle\", \"showHeader\", \"blockScroll\", \"autoZIndex\", \"baseZIndex\", \"minX\", \"minY\", \"focusOnShow\", \"maximizable\", \"keepInViewport\", \"focusTrap\", \"transitionOptions\", \"closeIcon\", \"closeAriaLabel\", \"closeTabindex\", \"minimizeIcon\", \"maximizeIcon\", \"closeButtonProps\", \"maximizeButtonProps\", \"visible\", \"style\", \"position\", \"role\", \"appendTo\", \"content\", \"contentTemplate\", \"footerTemplate\", \"closeIconTemplate\", \"maximizeIconTemplate\", \"minimizeIconTemplate\", \"headlessTemplate\"], outputs: [\"onShow\", \"onHide\", \"visibleChange\", \"onResizeInit\", \"onResizeEnd\", \"onDragEnd\", \"onMaximize\"] }, { kind: \"component\", type: UiButtonComponent, selector: \"ui-button\", inputs: [\"config\"], outputs: [\"onClick\"] }, { kind: \"pipe\", type: i8.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericCrudTableComponent, decorators: [{\n type: Component,\n args: [{ selector: 'app-generic-crud-table', standalone: true, imports: [\n CommonModule,\n TableModule,\n GenericButton,\n ButtonModule,\n GenericSearch,\n GenericTable,\n ToolbarModule,\n TranslateModule,\n DividerModule,\n IconFieldModule,\n DrawerModule,\n FormlyForm,\n ReactiveFormsModule,\n FormsModule,\n MessageModule,\n BreadcrumbComponent,\n DialogModule,\n UiButtonComponent\n ], host: {\n class: 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl p-4 bg-white'\n }, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\r\\n <div>\\r\\n <!-- <div class=\\\"text-2xl leading-8 font-medium bg-slate-800 p-4 rounded-md\\\">\\r\\n <p-breadcrumb\\r\\n [model]=\\\"breadcrumb_\\\"\\r\\n [home]=\\\"home\\\"\\r\\n styleClass=\\\"custom-breadcrumb\\\"\\r\\n ></p-breadcrumb>\\r\\n </div> -->\\r\\n\\r\\n<app-breadcrumb class=\\\"xs:block hidden\\\" [breadcrumb]=\\\"breadcrumb_\\\"></app-breadcrumb>\\r\\n\\r\\n </div>\\r\\n\\r\\n<div class=\\\"flex items-center gap-2 justify-end flex-wrap\\\">\\r\\n <ng-container *ngIf=\\\"isSingleItemSelected\\\">\\r\\n <ng-container *ngFor=\\\"let btn of singleActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n[label]=\\\"btn.label | translate\\\"\\r\\n[variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n</ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngIf=\\\"selectedItems.length > 0\\\">\\r\\n <ng-container *ngFor=\\\"let btn of bulkActionButtons; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n <lib-generic-button\\r\\n [icon]=\\\"btn.icon\\\"\\r\\n [label]=\\\"btn.label | translate\\\"\\r\\n [variant]=\\\"btn.variant\\\"\\r\\n [size]=\\\"btn.size\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\" this.action.emit({ name: btn.actionName ?? 'add', row: null! });\\\"\\r\\n ></lib-generic-button>\\r\\n </ng-container>\\r\\n\\r\\n\\r\\n\\r\\n @if ((showAddButton || splitActions.length > 0)&& addButtonConfigs.length === 0) {\\r\\n\\r\\n @if (showAddButton && splitActions.length === 0) {\\r\\n\\r\\n <!-- <p-button\\r\\n icon=\\\"pi pi-circle-fill text-green-500\\\" *ngIf=\\\"showAddButton && addButtonConfigs.length === 0\\\"\\r\\n [label]=\\\"(addButtonLabel | translate)\\r\\n \\\"(onClick)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n outlined severity=\\\"secondary\\\" /> -->\\r\\n\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'button',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n outlined: false,\\r\\n styleClass:''\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n @else {\\r\\n <!-- Split Button -->\\r\\n <ui-button\\r\\n [config]=\\\"{\\r\\n type: 'split',\\r\\n label: addButtonLabel| translate,\\r\\n icon: 'pi pi-plus',\\r\\n severity: 'primary',\\r\\n loading: false,\\r\\n outlined: false,\\r\\n items: splitActions\\r\\n }\\\"\\r\\n (onClick)=\\\"action.emit({ name: 'add', row: null! })\\\">\\r\\n </ui-button>\\r\\n }\\r\\n\\r\\n\\r\\n }\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n </div>\\r\\n </div>\\r\\n <div class=\\\"mt-2 mb-4 flex items-center justify-between\\\">\\r\\n\\r\\n <ng-container *ngIf=\\\"showSearch && filters; else emptySearch\\\">\\r\\n <lib-generic-search\\r\\n [model]=\\\"filterModel\\\"\\r\\n [fields]=\\\"filters\\\"\\r\\n (search)=\\\"applySearch($event)\\\"\\r\\n (reset)=\\\"applySearch('')\\\"\\r\\n ></lib-generic-search>\\r\\n </ng-container>\\r\\n\\r\\n <ng-template #emptySearch>\\r\\n <!-- Render a dummy div to preserve expected DOM shape -->\\r\\n <!-- <div class=\\\"min-h-[2.5rem] w-[12rem]\\\"></div> -->\\r\\n </ng-template>\\r\\n <!-- style=\\\"direction: ltr;\\\" -->\\r\\n <div class=\\\"flex items-center gap-3\\\">\\r\\n\\r\\n <p-button icon=\\\"pi pi-refresh\\\" outlined severity=\\\"secondary\\\" (onClick)=\\\"applySearch('')\\\" />\\r\\n <p-divider layout=\\\"vertical\\\" class=\\\"m-0 p-0 xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-sort\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button label=\\\"1 of 15\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-right\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n <p-button icon=\\\"pi pi-chevron-left\\\" outlined severity=\\\"secondary\\\" class=\\\"xs:block hidden\\\" />\\r\\n </div>\\r\\n </div>\\r\\n\\r\\n\\r\\n\\r\\n<lib-generic-table\\r\\n [showAddButton]=\\\"showAddButton\\\"\\r\\n [data]=\\\"data\\\"\\r\\n [columns]=\\\"columns\\\"\\r\\n [paginator]=\\\"paginator\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n [actions]=\\\"actions\\\"\\r\\n [actionsMode]=\\\"actionsMode\\\"\\r\\n [first]=\\\"first\\\"\\r\\n [rows]=\\\"rows\\\"\\r\\n [totalRecords]=\\\"totalRecords\\\"\\r\\n [sortField]=\\\"sortField\\\"\\r\\n [sortOrder]=\\\"sortOrder\\\"\\r\\n [globalFilterFields]=\\\"globalFilterFields\\\"\\r\\n [scrollHeight]=\\\"scrollHeight\\\"\\r\\n [showRowSelectionCheckbox]=\\\"showRowSelectionCheckbox\\\"\\r\\n (action)=\\\"action.emit($event)\\\"\\r\\n (onAddNew)=\\\"action.emit({ name: 'add', row: null! })\\\"\\r\\n (pageChange)=\\\"onLazyLoad($event)\\\"\\r\\n [rowSelectable]=\\\"rowSelectable\\\"\\r\\n (rowSelect)=\\\"onRowClick($event)\\\"\\r\\n [(selection)]=\\\"_selectedRows\\\"\\r\\n #genericTable\\r\\n></lib-generic-table>\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n<!-- Drawer -->\\r\\n<p-drawer\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'drawer' && drawerVisible\\\"\\r\\n [(visible)]=\\\"drawerVisible\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissible]=\\\"false\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n styleClass=\\\"!w-full md:!w-80 lg:!w-[40rem]\\\">\\r\\n\\r\\n <ng-template pTemplate=\\\"header\\\">\\r\\n <span class=\\\"font-bold text-lg\\\">\\r\\n {{ isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : '\\u0639\\u0631\\u0636' }}\\r\\n </span>\\r\\n </ng-template>\\r\\n<!-- (ngSubmit)=\\\"onSubmit()\\\" -->\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\" *ngIf=\\\"!isViewMode\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n (click)=\\\"onSubmit()\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ 'CANCEL' | translate }}\\\"\\r\\n severity=\\\"danger\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-drawer>\\r\\n\\r\\n<!-- Dialog -->\\r\\n<p-dialog\\r\\n *ngIf=\\\"(typeof displayMode === 'string' ? displayMode : isEditMode ? displayMode['edit'] : isViewMode === false ? displayMode['add'] : displayMode['view'] ) === 'dialog' && dialogVisible\\\"\\r\\n [(visible)]=\\\"dialogVisible\\\"\\r\\n [modal]=\\\"true\\\"\\r\\n [closable]=\\\"true\\\"\\r\\n [dismissableMask]=\\\"true\\\"\\r\\n [closeOnEscape]=\\\"true\\\"\\r\\n (visibleChange)=\\\"visibleChange.emit($event)\\\"\\r\\n [style]=\\\"{ width: '95vw', maxWidth: dialogMaxWidth }\\\"\\r\\n [header]=\\\"isEditMode ? '\\u062A\\u0639\\u062F\\u064A\\u0644' : isViewMode === false ? '\\u0625\\u0636\\u0627\\u0641\\u0629' : viewHeaderTitle\\\">\\r\\n<!-- [breakpoints]=\\\"{ '1200px': '50vw', '768px': '70vw', '560px': '95vw' }\\\" -->\\r\\n <div class=\\\"relative\\\">\\r\\n <div *ngIf=\\\"isViewMode\\\" class=\\\"absolute inset-0 z-10 bg-white/50 pointer-events-auto rounded-md\\\"></div>\\r\\n <form *ngIf=\\\"form\\\" [formGroup]=\\\"form\\\" class=\\\"p-4\\\">\\r\\n <formly-form [form]=\\\"form\\\" [fields]=\\\"formFields_\\\" [model]=\\\"model\\\" [options]=\\\"options\\\"></formly-form>\\r\\n </form>\\r\\n </div>\\r\\n\\r\\n <ng-template pTemplate=\\\"footer\\\">\\r\\n <div class=\\\"flex justify-end gap-2\\\">\\r\\n <button *ngIf=\\\"!isViewMode\\\"\\r\\n pButton\\r\\n [label]=\\\"isEditMode ? ('UPDATE' | translate) : ('SAVE' | translate)\\\"\\r\\n type=\\\"button\\\"\\r\\n [disabled]=\\\"loading || form.invalid\\\"\\r\\n [loading]=\\\"loading\\\"\\r\\n (click)=\\\"onSubmit()\\\">\\r\\n </button>\\r\\n <button\\r\\n pButton\\r\\n label=\\\"{{ isViewMode ? ('CLOSE' | translate) : ('CANCEL' | translate) }}\\\"\\r\\n severity=\\\"secondary\\\"\\r\\n (click)=\\\"visibleChange.emit(false)\\\">\\r\\n </button>\\r\\n </div>\\r\\n </ng-template>\\r\\n</p-dialog>\\r\\n\\r\\n\\r\\n\\r\\n\" }]\n }], propDecorators: { genericTable: [{\n type: ViewChild,\n args: ['genericTable']\n }], data: [{\n type: Input\n }], formFields: [{\n type: Input\n }], columns: [{\n type: Input\n }], dialogMaxWidth: [{\n type: Input\n }], isViewMode: [{\n type: Input\n }], displayMode: [{\n type: Input\n }], isEditMode: [{\n type: Input\n }], drawerVisible: [{\n type: Input\n }], dialogVisible: [{\n type: Input\n }], model: [{\n type: Input\n }], loading: [{\n type: Input\n }], errorMsg: [{\n type: Input\n }], errorMessage: [{\n type: Input\n }], actions: [{\n type: Input\n }], actionsMode: [{\n type: Input\n }], action: [{\n type: Output\n }], bulkAction: [{\n type: Output\n }], singleAction: [{\n type: Output\n }], filters: [{\n type: Input\n }], filterModel: [{\n type: Input\n }], search: [{\n type: Output\n }], showSearch: [{\n type: Input\n }], first: [{\n type: Input\n }], rows: [{\n type: Input\n }], totalRecords: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], onSearch: [{\n type: Output\n }], visibleChange: [{\n type: Output\n }], rowSelectable: [{\n type: Input\n }], rowSelect: [{\n type: Output\n }], scrollHeight: [{\n type: Input\n }], paginator: [{\n type: Input\n }], service: [{\n type: Input\n }], idField: [{\n type: Input\n }], showRowSelectionCheckbox: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], singleActionButtons: [{\n type: Input\n }], showAddButton: [{\n type: Input\n }], splitActions: [{\n type: Input\n }], addButtonIcon: [{\n type: Input\n }], addButtonLabel: [{\n type: Input\n }], addButtonPosition: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], breadcrumb: [{\n type: Input\n }], beforeSave: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvbGliL2dlbmVyaWMtY3J1ZC10YWJsZS50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWNydWQtdGFibGUvc3JjL2xpYi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsb0VBQW9FO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFdBQVcsRUFBc0IsTUFBTyxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFRLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQXFCLFVBQVUsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLGdCQUFn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O3NCQUFsQixNQUFNO2dCQVFBLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksU0FBUztzQkFBakIsS0FBSztnQkFFRSxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLHdCQUF3QjtzQkFBaEMsS0FBSztnQkFFSSxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQW1CQyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUcsYUFBYTtzQkFBckIsS0FBSztnQkFFRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFFSSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUUsVUFBVTtzQkFBbEIsS0FBSztnQkEwRk0sVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4ICovXHJcbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtbmF0aXZlICovXHJcbmltcG9ydCB7IEJyZWFkY3J1bWIgfSBmcm9tICdwcmltZW5nL2JyZWFkY3J1bWInO1xyXG5pbXBvcnQgeyBEaXZpZGVyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaXZpZGVyJztcclxuLy8gc3JjL2FwcC9zaGFyZWQvZ2VuZXJpYy1jcnVkLXRhYmxlL2dlbmVyaWMtY3J1ZC10YWJsZS5jb21wb25lbnQudHNcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgaW5qZWN0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1lc3NhZ2VNb2R1bGUgfSBmcm9tICdwcmltZW5nL21lc3NhZ2UnO1xyXG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XHJcbmltcG9ydCB7IFBhZ2luYXRvclN0YXRlIH0gZnJvbSAncHJpbWVuZy9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZU1vZHVsZSxUYWJsZUxhenlMb2FkRXZlbnQgIH0gIGZyb20gJ3ByaW1lbmcvdGFibGUnO1xyXG5pbXBvcnQgeyBUb29sYmFyTW9kdWxlIH0gICBmcm9tICdwcmltZW5nL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcsIEZvcm1seUZvcm0sIEZvcm1seUZvcm1PcHRpb25zIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XHJcbmltcG9ydCB7IEljb25GaWVsZE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvaWNvbmZpZWxkJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERyYXdlck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvZHJhd2VyJztcclxuaW1wb3J0IHsgRGlhbG9nTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQnV0dG9uQ29uZmlnIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFN3YWxTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgQWN0aW9uRGVmIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IEdlbmVyaWNCdXR0b24gfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24nO1xyXG5pbXBvcnQgeyBHZW5lcmljVGFibGUgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy10YWJsZSc7XHJcbmltcG9ydCB7IEdlbmVyaWNTZWFyY2ggfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLnVpLmNvcmUvZ2VuZXJpYy1zZWFyY2gnO1xyXG5pbXBvcnQgeyBVaUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS91aS1idXR0b24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQYWdlQ2hhbmdlUGF5bG9hZCBleHRlbmRzIFBhZ2luYXRvclN0YXRlIHtcclxuc29ydD86IHN0cmluZztcclxuZmlsdGVycz86IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEFjdGlvbnNNb2RlID0gJ2J1dHRvbnMnIHwgJ21lbnUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtZ2VuZXJpYy1jcnVkLXRhYmxlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIFRhYmxlTW9kdWxlLFxyXG4gICAgR2VuZXJpY0J1dHRvbixcclxuICAgIEJ1dHRvbk1vZHVsZSxcclxuICAgIEdlbmVyaWNTZWFyY2gsXHJcbiAgICBHZW5lcmljVGFibGUsXHJcbiAgICBUb29sYmFyTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgRGl2aWRlck1vZHVsZSxcclxuICAgIEljb25GaWVsZE1vZHVsZSxcclxuICAgIERyYXdlck1vZHVsZSxcclxuICAgIEZvcm1seUZvcm0sXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBNZXNzYWdlTW9kdWxlLFxyXG4gICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcclxuICAgIERpYWxvZ01vZHVsZSxcclxuICAgIFVpQnV0dG9uQ29tcG9uZW50XHJcbl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dlbmVyaWMtY3J1ZC10YWJsZS5odG1sJyxcclxuICAgaG9zdDoge1xyXG4gICAgICAgIGNsYXNzOiAnaC1mdWxsIGZsZXgtMSBmbGV4IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBib3JkZXIgYm9yZGVyLXN1cmZhY2Ugcm91bmRlZC0yeGwgcC00IGJnLXdoaXRlJ1xyXG4gICAgfSxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBHZW5lcmljQ3J1ZFRhYmxlQ29tcG9uZW50PFQ+IHtcclxuIEBWaWV3Q2hpbGQoJ2dlbmVyaWNUYWJsZScpIGdlbmVyaWNUYWJsZSE6IEdlbmVyaWNUYWJsZTxUPjtcclxuIHRyYW5zbGF0ZTpUcmFuc2xhdGVTZXJ2aWNlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gcHJpdmF0ZSBzd2FsU2VydmljZSA9IGluamVjdChTd2FsU2VydmljZSk7XHJcblxyXG4gICAgaG9tZTogTWVudUl0ZW0gfCB1bmRlZmluZWQgPSB7IGljb246ICdwaSBwaS1ob21lJywgcm91dGVyTGluazogJy8nIH07XHJcbiAgQElucHV0KCkgZGF0YTogVFtdID0gW107XHJcbiAgIGZvcm1GaWVsZHNfOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107ICAvLyA8LS0g2YfZhtinXHJcbiAgQElucHV0KCkgZm9ybUZpZWxkczogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAgLy8gPC0tINmH2YbYp1xyXG4gIEBJbnB1dCgpIGNvbHVtbnM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgIC8vIDwtLSDZh9mG2KdcclxuICBASW5wdXQoKSBkaWFsb2dNYXhXaWR0aCA9ICc0MHJlbSc7IC8vIHVuc2V0ICwgZml0LWNvbnRlbnRcclxuICBASW5wdXQoKSBpc1ZpZXdNb2RlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzcGxheU1vZGU6XHJcbiAgfCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJ1xyXG4gIHwgUGFydGlhbDxSZWNvcmQ8J2FkZCcgfCAnZWRpdCcgfCAndmlldycsICdkcmF3ZXInIHwgJ2RpYWxvZycgfCAncm91dGUnPj5cclxuICA9ICdkcmF3ZXInO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkcmF3ZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xyXG4gICBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xyXG4gQElucHV0KCkgbW9kZWw6IGFueTtcclxuICBtb2RlbF86IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvck1zZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZTogc3RyaW5nfGFueSA9ICcnO1xyXG5cclxub3B0aW9uczogRm9ybWx5Rm9ybU9wdGlvbnMgPSB7fTtcclxuXHJcbiAgQElucHV0KCkgYWN0aW9uczogQWN0aW9uRGVmPFQ+W10gPSBbXTtcclxuICAgIC8qKiDYqtit2K/YryDYt9ix2YrZgtipINin2YTYudix2LY6ICdidXR0b25zJyDYo9mIICdtZW51JyAqL1xyXG4gIEBJbnB1dCgpIGFjdGlvbnNNb2RlOiBBY3Rpb25zTW9kZSA9ICdidXR0b25zJztcclxuICBAT3V0cHV0KCkgYWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgcm93OiBUIH0+KCk7XHJcbiAgQE91dHB1dCgpIGJ1bGtBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyBpdGVtczogVFtdIH0+KCk7XHJcbiAgQE91dHB1dCgpIHNpbmdsZUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IGl0ZW06IFQgfT4oKTtcclxuXHJcbiAgLy8g2KfZhNio2K3Yq1xyXG4vLyBTZWFyY2hcclxuICBASW5wdXQoKSBmaWx0ZXJzOiBhbnk7XHJcbiAgIEBJbnB1dCgpIGZpbHRlck1vZGVsOiBhbnkgPSB7fTtcclxuICBAT3V0cHV0KCkgc2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjx7IGZpZWxkOiBzdHJpbmc7IGdsb2JhbDogc3RyaW5nIH0+KCk7XHJcblxyXG4vKiog2YTZhNiq2K3Zg9mFINio2KXYuNmH2KfYsS/Ypdiu2YHYp9ihINmC2LPZhSDYp9mE2KjYrdirICovXHJcbiAgQElucHV0KCkgc2hvd1NlYXJjaCA9IHRydWU7XHJcblxyXG4gIC8qKiBQYWdpbmF0aW9uIElucHV0cyAqL1xyXG4gIEBJbnB1dCgpIGZpcnN0ID0gMDtcclxuICBASW5wdXQoKSByb3dzID0gMTA7XHJcbiAgQElucHV0KCkgdG90YWxSZWNvcmRzID0gMDtcclxuICBAT3V0cHV0KCkgcGFnZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8UGFnZUNoYW5nZVBheWxvYWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9uU2VhcmNoID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG5AT3V0cHV0KCkgdmlzaWJsZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpOztcclxuLy8gQE91dHB1dCgpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbnZpZXdIZWFkZXJUaXRsZSA9ICfYudix2LYg2KfZhNiq2YHYp9i12YrZhCc7XHJcbiAgIC8qKiDZhNis2LnZhCDYp9mE2KzYr9mI2YQg2YLYp9io2YQg2YTYp9iu2KrZitin2LEg2KfZhNi12YHZiNmBICjYp9mB2KrYsdin2LbZiiBmYWxzZSkgKi9cclxuICBASW5wdXQoKSByb3dTZWxlY3RhYmxlID0gZmFsc2U7XHJcbiAgLyoqINit2K/YqyDZitiu2LHYrCDYp9mE2LXZgSDYp9mE2YXYrdiv2ZHYryAqL1xyXG4gIEBPdXRwdXQoKSByb3dTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblxyXG4gIHNlbGVjdGlvbjogVCB8IG51bGwgPSBudWxsO1xyXG5cclxuIC8vINin2YTZgdix2LJcclxuICBzb3J0RmllbGQ/OiBzdHJpbmc7XHJcbiAgc29ydE9yZGVyOiAxIHwgLTEgPSAxO1xyXG5cclxuQElucHV0KCkgc2Nyb2xsSGVpZ2h0ID0gJzQwMHB4JztcclxuXHJcbiBASW5wdXQoKSBwYWdpbmF0b3IgPSB0cnVlO1xyXG5cclxuQElucHV0KCkgc2VydmljZTogQmFzZVNlcnZpY2V8YW55O1xyXG5ASW5wdXQoKSBpZEZpZWxkID0gJ2lkJztcclxuXHJcbiBASW5wdXQoKSBzaG93Um93U2VsZWN0aW9uQ2hlY2tib3ggPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgYnVsa0FjdGlvbkJ1dHRvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgc2luZ2xlQWN0aW9uQnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbiBfc2VsZWN0ZWRSb3dzOiBUW10gPSBbXTtcclxuXHJcbmdldCBpc1NpbmdsZUl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gMTtcclxufVxyXG5cclxuZ2V0IGlzTXVsdGlwbGVJdGVtU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUm93cy5sZW5ndGggPiAxO1xyXG59XHJcblxyXG5nZXQgc2VsZWN0ZWRJdGVtcygpOiBUW10ge1xyXG4gIHJldHVybiB0aGlzLl9zZWxlY3RlZFJvd3M7XHJcbn1cclxuXHJcblxyXG5cclxuLyoqINmE2YTYqtit2YPZhSDYqNil2LjZh9in2LEg2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBzaG93QWRkQnV0dG9uID0gdHJ1ZTtcclxuQElucHV0KCkgc3BsaXRBY3Rpb25zOiBNZW51SXRlbVtdID0gW107XHJcbi8qKiDYp9mE2KPZitmC2YjZhtipINin2YTYp9mB2KrYsdin2LbZitipINmE2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBhZGRCdXR0b25JY29uID0gJ3BpIHBpLXBsdXMnO1xyXG4vKiog2KfZhNmG2LUg2KfZhNin2YHYqtix2KfYttmKINmE2LLYsSDYp9mE2KXYttin2YHYqSAqL1xyXG5ASW5wdXQoKSBhZGRCdXR0b25MYWJlbCA9ICdBREQnO1xyXG4gIC8qKiDYqtiq2K3Zg9mR2YUg2KjZhdmI2YLYuSDYstixINin2YTYpdi22KfZgdipOiAndG9wJyDYo9mIICdib3R0b20nICovXHJcbkBJbnB1dCgpIGFkZEJ1dHRvblBvc2l0aW9uOiAndG9wJyB8ICdib3R0b20nID0gJ3RvcCc7XHJcblxyXG4gQElucHV0KCkgYWRkQnV0dG9uQ29uZmlnczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbkBJbnB1dCgpIGJyZWFkY3J1bWI6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQ7XHJcblxyXG5cclxuZ2V0IGJyZWFkY3J1bWJfKCk6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQge1xyXG4gIHJldHVybiB0aGlzLmJyZWFkY3J1bWI/Lm1hcCh2ID0+ICh7XHJcbiAgICAuLi52LFxyXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodi5sYWJlbCA/PyAnJylcclxuICB9KSk7XHJcbn1cclxuZ2V0IHJ0bCgpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgcmV0dXJuIGRvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ/LmRpciA9PT0gJ3J0bCc7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG4vLyAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAvKiog2KfZhNii2YYg2YrYqtmE2YLZkdmJIHBhZ2luYXRpb24gKyBzb3J0INmB2Yog2K3Yr9irINmI2KfYrdivICovXHJcbm9uTGF6eUxvYWQoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCkge1xyXG4gIC8vIHRoaXMubW9kZWxfPSB0aGlzLm1vZGVsID8/IHt9O1xyXG4gIHRoaXMubW9kZWw9IHRoaXMubW9kZWwgPz8ge307XHJcblxyXG4gIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgY29uc3QgZmlyc3QgICAgID0gZXZlbnQuZmlyc3QgID8/IHRoaXMuZmlyc3Q7XHJcbiAgY29uc3Qgcm93cyAgICAgID0gZXZlbnQucm93cyAgID8/IHRoaXMucm93cztcclxuICBjb25zdCBzb3J0RmllbGQgPSB0eXBlb2YgZXZlbnQuc29ydEZpZWxkID09PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gZXZlbnQuc29ydEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnRGaWVsZDtcclxuICBjb25zdCBzb3J0T3JkZXIgPSBldmVudC5zb3J0T3JkZXIgPT09IC0xID8gLTEgOiAxO1xyXG5cclxuXHJcbiAgY29uc3QgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcclxuICAgICAgT2JqZWN0LmVudHJpZXMoZXZlbnQuZmlsdGVycykuZm9yRWFjaCgoW2ZpZWxkLCBtZXRhXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKG1ldGEgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgIGZpbHRlcnNbZmllbGRdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgdGhpcy5maXJzdCAgICAgPSBmaXJzdDtcclxuICB0aGlzLnJvd3MgICAgICA9IHJvd3M7XHJcbiAgdGhpcy5zb3J0RmllbGQgPSBzb3J0RmllbGQ7XHJcbiAgdGhpcy5zb3J0T3JkZXIgPSBzb3J0T3JkZXIgYXMgMXwgLTE7XHJcbmNvbnN0IGRpciA9IHNvcnRPcmRlciA9PT0gMSA/ICdhc2MnIDogJ2Rlc2MnO1xyXG4gY29uc3Qgc29ydCA9IHNvcnRGaWVsZCA/IGAke3NvcnRGaWVsZH0gJHtkaXJ9YCA6IHVuZGVmaW5lZDtcclxuXHJcbiAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBmaXJzdCwgcm93cyAsc29ydCwgZmlsdGVycyB9KTtcclxuXHJcbiAgLy8g2YrYqNmG2Yog2KfZhNmG2LUg2YjYpdix2LPYp9mE2YdcclxuXHJcbn1cclxuXHJcblxyXG4gIC8qKiDYqti12YrZitixINin2YTYqNmK2KfZhtin2Kog2K3Ys9ioINin2YTYtdmB2K3YqSAqL1xyXG4gIGdldCBwYWdlZERhdGEoKTogVFtdIHtcclxuICAgIC8vIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuc2xpY2UodGhpcy5maXJzdCwgdGhpcy5maXJzdCArIHRoaXMucm93cykgOiBbXTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0IGdsb2JhbEZpbHRlckZpZWxkcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoYyA9PiBTdHJpbmcoYy5rZXkpKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLyoqINij2LHYs9mEINil2YTZiSDYp9mE2KPYqCDZhNij2KrZhdiq2Kkg2LTZg9mEINin2YTYqNit2Ksg2KXYsNinINmK2K3Yqtin2KwgKi9cclxuLy8gZnJvbSBnZW5lcmljLWNydWQtdGFibGUuY29tcG9uZW50LnRzXHJcblxyXG4vKiog2KjYr9mR2YQgYXBwbHlTZWFyY2gg2YTYqtio2KsgcGFnZUNoYW5nZSDZhdio2KfYtNix2KnZiyAqL1xyXG4gYXBwbHlTZWFyY2goZmlsdGVyczogYW55KSB7XHJcbiAgICAvLyB0aGlzLmdlbmVyaWNUYWJsZS5hcHBseUZpbHRlcihnbG9iYWwpO1xyXG4gICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuXHJcbiAvKiog2K/Yp9mE2Kkg2KrZhtmB2ZHYsCDYudmG2K8g2KfZhNmG2YLYsSDYudmE2Ykg2LXZgSAqL1xyXG4gIG9uUm93Q2xpY2socm93OiBUKSB7XHJcbiAgICBpZiAodGhpcy5yb3dTZWxlY3RhYmxlKSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0LmVtaXQocm93KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAgQElucHV0KCkgYmVmb3JlU2F2ZTogKHJlY29yZDogVCkgPT4gVCA9IChyZWNvcmQpID0+IHJlY29yZDtcclxuXHJcbiAgLy8gb25TdWJtaXQoKSB7XHJcbiAgLy8gICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICAvLyAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAvLyAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cclxuICAvLyAgICAgY29uc3Qgc2VydmljZSA9IHRoaXMuc2VydmljZSAvKiBhcyBDcnVkU2VydmljZTxUPiAqLztcclxuICAvLyAgICAgY29uc3QgaWQgPSB0aGlzLmlzRWRpdE1vZGUgPyAodGhpcy5tb2RlbCBhcyBhbnkpW3RoaXMuaWRGaWVsZF0gOiBudWxsO1xyXG5cclxuICAvLyAgICAgY29uc3QgcmVjb3JkVG9TYXZlID0gdGhpcy5iZWZvcmVTYXZlKHsgLi4udGhpcy5tb2RlbCB9KTtcclxuXHJcblxyXG4gIC8vICAgICBjb25zdCBvcGVyYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmlzRWRpdE1vZGVcclxuICAvLyAgICAgICA/IHNlcnZpY2UudXBkYXRlKGlkLCByZWNvcmRUb1NhdmUpXHJcbiAgLy8gICAgICAgOiBzZXJ2aWNlLmNyZWF0ZShyZWNvcmRUb1NhdmUpO1xyXG5cclxuICAvLyAgICAgLy8gb3BlcmF0aW9uJC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAvLyAgICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gIC8vICAgICAgIG5leHQ6ICgpID0+IHtcclxuICAvLyAgICAgICAgIC8vIHRoaXMucmVmLmNsb3NlKHRydWUpOyAvLyDZhtis2KfYrSDYp9mE2LnZhdmE2YrYqVxyXG4gIC8vICAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpXHJcbiAgLy8gICAgICAgICAgIC8vIHRoaXMucGFnZUNoYW5nZS5lbWl0KHsgZmlyc3QsIHJvd3MgLHNvcnQsIGZpbHRlcnMgfSk7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuYXBwbHlTZWFyY2goJycpO1xyXG4gIC8vICAgICAgICAgLy8gdGhpcy5tZVxyXG4gIC8vICAgICAgIH0sXHJcbiAgLy8gICAgICAgZXJyb3I6IChlcnI6YW55KSA9PiB7XHJcbiAgLy8gICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgLy8gICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGVyci5lcnJvcj8udGl0bGUgfHxcclxuICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIubWVzc2FnZSB8fFxyXG4gIC8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICfYrdiv2Ksg2K7Yt9ijINij2KvZhtin2KEg2KfZhNit2YHYuC4g2YrYsdis2Ykg2KfZhNmF2K3Yp9mI2YTYqSDZhdix2Kkg2KPYrtix2YkuJztcclxuICAvLyAgICAgICB9XHJcbiAgLy8gICAgIH0pO1xyXG4gIC8vICAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHJldHVybjtcclxuXHJcbiAgLy8g4pyFINij2YjZhCDYtNmK2KEg2YbYt9mE2Kgg2KrYo9mD2YrYryDZhdmGINin2YTZhdiz2KrYrtiv2YVcclxuICB0aGlzLnN3YWxTZXJ2aWNlLmNvbmZpcm0oXHJcbiAgICB0aGlzLmlzRWRpdE1vZGUgPyAn2KrYo9mD2YrYryDYp9mE2KrYudiv2YrZhCcgOiAn2KrYo9mD2YrYryDYp9mE2K3Zgdi4JyxcclxuICAgIHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICA/ICfZh9mEINiq2LHZitivINit2YHYuCDYp9mE2KrYudiv2YrZhNin2Kog2LnZhNmJINmH2LDYpyDYp9mE2LPYrNmE2J8nXHJcbiAgICAgIDogJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INmH2LDYpyDYp9mE2LPYrNmE2J8nLFxyXG4gICAgJ9mG2LnZhScsXHJcbiAgICAn2KXZhNi62KfYoSdcclxuICApLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgaWYgKCFyZXN1bHQuaXNDb25maXJtZWQpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0IHNlcnZpY2UgPSB0aGlzLnNlcnZpY2U7XHJcbiAgICBjb25zdCBpZCA9IHRoaXMuaXNFZGl0TW9kZSA/ICh0aGlzLm1vZGVsIGFzIGFueSlbdGhpcy5pZEZpZWxkXSA6IG51bGw7XHJcblxyXG4gICAgY29uc3QgcmVjb3JkVG9TYXZlID0gdGhpcy5iZWZvcmVTYXZlKHsgLi4udGhpcy5tb2RlbCB9KTtcclxuXHJcbiAgICBjb25zdCBvcGVyYXRpb24kOiBPYnNlcnZhYmxlPGFueT4gPSB0aGlzLmlzRWRpdE1vZGVcclxuICAgICAgPyBzZXJ2aWNlLnVwZGF0ZShpZCwgcmVjb3JkVG9TYXZlKVxyXG4gICAgICA6IHNlcnZpY2UuY3JlYXRlKHJlY29yZFRvU2F2ZSk7XHJcblxyXG4gICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIOKchSDYsdiz2KfZhNipINmG2KzYp9itXHJcbiAgICAgICAgdGhpcy5zd2FsU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID8gJ9iq2YUg2KfZhNiq2LnYr9mK2YQg2KjZhtis2KfYrScgOiAn2KrZhSDYp9mE2K3Zgdi4INio2YbYrNin2K0nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTZWFyY2goJycpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIGNvbnN0IG1zZyA9XHJcbiAgICAgICAgICBlcnIuZXJyb3I/LnRpdGxlIHx8XHJcbiAgICAgICAgICBlcnIubWVzc2FnZSB8fFxyXG4gICAgICAgICAgJ9it2K/YqyDYrti32KMg2KPYq9mG2KfYoSDYp9mE2K3Zgdi4LiDZitix2KzZiSDYp9mE2YXYrdin2YjZhNipINmF2LHYqSDYo9iu2LHZiS4nO1xyXG5cclxuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IG1zZztcclxuXHJcbiAgICAgICAgLy8g4p2MINix2LPYp9mE2Kkg2K7Yt9ijXHJcbiAgICAgICAgdGhpcy5zd2FsU2VydmljZS5lcnJvcign2YHYtNmEINin2YTYrdmB2LgnLCBtc2cpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9KTtcclxufVxyXG5cclxuXHJcbiAgICAgdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuXHJcbm9uU2luZ2xlSXRlbUFjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc1NpbmdsZUl0ZW1TZWxlY3RlZCkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9zZWxlY3RlZFJvd3NbMF07XHJcbiAgdGhpcy5zaW5nbGVBY3Rpb24uZW1pdCh7XHJcbiAgICBuYW1lOiBidG4uYWN0aW9uTmFtZSA/PyAnc2luZ2xlQWN0aW9uJyxcclxuICAgIGl0ZW06IHNlbGVjdGVkSXRlbVxyXG4gIH0pO1xyXG59XHJcblxyXG5vbkludGVybmFsQnVsa0FjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc011bHRpcGxlSXRlbVNlbGVjdGVkKSByZXR1cm47XHJcblxyXG4gIHRoaXMuYnVsa0FjdGlvbi5lbWl0KHtcclxuICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdidWxrQWN0aW9uJyxcclxuICAgIGl0ZW1zOiBbLi4udGhpcy5fc2VsZWN0ZWRSb3dzXSAgLy8g2YbYsdiz2YQg2YbYs9iu2Kkg2YXZhiDYp9mE2YXYtdmB2YjZgdipXHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG59XHJcbiIsIlxyXG4gPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnQgZ2FwLTIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cInRleHQtMnhsIGxlYWRpbmctOCBmb250LW1lZGl1bSBiZy1zbGF0ZS04MDAgcC00IHJvdW5kZWQtbWRcIj5cclxuICAgICAgICAgICAgPHAtYnJlYWRjcnVtYlxyXG4gICAgICAgICAgICAgIFttb2RlbF09XCJicmVhZGNydW1iX1wiXHJcbiAgICAgICAgICAgICAgW2hvbWVdPVwiaG9tZVwiXHJcbiAgICAgICAgICAgICAgc3R5bGVDbGFzcz1cImN1c3RvbS1icmVhZGNydW1iXCJcclxuICAgICAgICAgICAgPjwvcC1icmVhZGNydW1iPlxyXG4gICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuPGFwcC1icmVhZGNydW1iIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgW2JyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYl9cIj48L2FwcC1icmVhZGNydW1iPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIganVzdGlmeS1lbmQgZmxleC13cmFwXCI+XHJcbiAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaW5nbGVJdGVtU2VsZWN0ZWRcIj5cclxuIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBzaW5nbGVBY3Rpb25CdXR0b25zOyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XHJcbiA8bGliLWdlbmVyaWMtYnV0dG9uXHJcblxyXG4gIFtpY29uXT1cImJ0bi5pY29uXCJcclxuW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcblt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuIFtzaXplXT1cImJ0bi5zaXplXCJcclxuIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuIChjbGlja2VkKT1cIm9uU2luZ2xlSXRlbUFjdGlvbihidG4pXCJcclxuID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBidWxrQWN0aW9uQnV0dG9uczsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxyXG4gICAgICAgIDxsaWItZ2VuZXJpYy1idXR0b25cclxuICAgICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcclxuICAgICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgICAgW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gICAgICAgICAgW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gICAgICAgICAgW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gICAgICAgICAgKGNsaWNrZWQpPVwib25JbnRlcm5hbEJ1bGtBY3Rpb24oYnRuKVwiXHJcbiAgICAgICAgPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIGFkZEJ1dHRvbkNvbmZpZ3M7IHRyYWNrQnk6IHRyYWNrQnlJZHhcIj5cclxuICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcclxuICAgICAgICBbbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiAgICAgICAgW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAoY2xpY2tlZCk9XCIgdGhpcy5hY3Rpb24uZW1pdCh7IG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdhZGQnLCByb3c6IG51bGwhIH0pO1wiXHJcbiAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICBAaWYgKChzaG93QWRkQnV0dG9uIHx8IHNwbGl0QWN0aW9ucy5sZW5ndGggPiAwKSYmIGFkZEJ1dHRvbkNvbmZpZ3MubGVuZ3RoID09PSAwKSB7XHJcblxyXG4gICAgICAgICAgICAgIEBpZiAoc2hvd0FkZEJ1dHRvbiAmJiBzcGxpdEFjdGlvbnMubGVuZ3RoICA9PT0gMCkge1xyXG5cclxuICAgICAgICAgICAgICAgICA8IS0tIDxwLWJ1dHRvblxyXG4gICAgICAgICAgICBpY29uPVwicGkgcGktY2lyY2xlLWZpbGwgdGV4dC1ncmVlbi01MDBcIiAqbmdJZj1cInNob3dBZGRCdXR0b24gJiYgYWRkQnV0dG9uQ29uZmlncy5sZW5ndGggPT09IDBcIlxyXG4gICAgICAgICAgICBbbGFiZWxdPVwiKGFkZEJ1dHRvbkxhYmVsIHwgdHJhbnNsYXRlKVxyXG4gICAgICAgICAgICBcIihvbkNsaWNrKT1cImFjdGlvbi5lbWl0KHsgbmFtZTogJ2FkZCcsIHJvdzogbnVsbCEgfSlcIlxyXG4gICAgICAgICAgICBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIC8+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDx1aS1idXR0b25cclxuICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGFkZEJ1dHRvbkxhYmVsfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgaWNvbjogJ3BpIHBpLXBsdXMnLFxyXG4gICAgICAgICAgICAgICAgICAgIHNldmVyaXR5OiAncHJpbWFyeScsXHJcbiAgICAgICAgICAgICAgICAgICAgb3V0bGluZWQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlQ2xhc3M6JydcclxuICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsaWNrKT1cImFjdGlvbi5lbWl0KHsgbmFtZTogJ2FkZCcsIHJvdzogbnVsbCEgfSlcIj5cclxuICAgICAgICAgICAgICAgIDwvdWktYnV0dG9uPlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgIDwhLS0gU3BsaXQgQnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICA8dWktYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3BsaXQnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGFkZEJ1dHRvbkxhYmVsfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uOiAncGkgcGktcGx1cycsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzZXZlcml0eTogJ3ByaW1hcnknLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lZDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtczogc3BsaXRBY3Rpb25zXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2xpY2spPVwiYWN0aW9uLmVtaXQoeyBuYW1lOiAnYWRkJywgcm93OiBudWxsISB9KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3VpLWJ1dHRvbj5cclxuICAgICAgICAgICAgICB9XHJcblxyXG5cclxuICAgICAgICAgICAgfVxyXG5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgbWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NlYXJjaCAmJiBmaWx0ZXJzOyBlbHNlIGVtcHR5U2VhcmNoXCI+XHJcbiAgICAgICAgICAgPGxpYi1nZW5lcmljLXNlYXJjaFxyXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cImZpbHRlck1vZGVsXCJcclxuICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAoc2VhcmNoKT1cImFwcGx5U2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHJlc2V0KT1cImFwcGx5U2VhcmNoKCcnKVwiXHJcbiAgICAgICAgICAgICAgPjwvbGliLWdlbmVyaWMtc2VhcmNoPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlTZWFyY2g+XHJcbiAgICA8IS0tIFJlbmRlciBhIGR1bW15IGRpdiB0byBwcmVzZXJ2ZSBleHBlY3RlZCBET00gc2hhcGUgLS0+XHJcbiAgICA8IS0tIDxkaXYgY2xhc3M9XCJtaW4taC1bMi41cmVtXSB3LVsxMnJlbV1cIj48L2Rpdj4gLS0+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwhLS0gc3R5bGU9XCJkaXJlY3Rpb246IGx0cjtcIiAtLT5cclxuICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG5cclxuICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXJlZnJlc2hcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIChvbkNsaWNrKT1cImFwcGx5U2VhcmNoKCcnKVwiIC8+XHJcbiAgICAgICAgICAgICAgPHAtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiICBjbGFzcz1cIm0tMCBwLTAgeHM6YmxvY2sgaGlkZGVuXCIgLz5cclxuICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXNvcnRcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBsYWJlbD1cIjEgb2YgMTVcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgIC8+XHJcbiAgICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZXZyb24tcmlnaHRcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgIC8+XHJcbiAgICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZXZyb24tbGVmdFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuPGxpYi1nZW5lcmljLXRhYmxlXHJcbiAgW3Nob3dBZGRCdXR0b25dPVwic2hvd0FkZEJ1dHRvblwiXHJcbiAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXHJcbiAgW3BhZ2luYXRvcl09XCJwYWdpbmF0b3JcIlxyXG4gIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gIFthY3Rpb25zXT1cImFjdGlvbnNcIlxyXG4gIFthY3Rpb25zTW9kZV09XCJhY3Rpb25zTW9kZVwiXHJcbiAgW2ZpcnN0XT1cImZpcnN0XCJcclxuICBbcm93c109XCJyb3dzXCJcclxuICBbdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbiAgW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxyXG4gIFtzb3J0T3JkZXJdPVwic29ydE9yZGVyXCJcclxuICBbZ2xvYmFsRmlsdGVyRmllbGRzXT1cImdsb2JhbEZpbHRlckZpZWxkc1wiXHJcbiAgW3Njcm9sbEhlaWdodF09XCJzY3JvbGxIZWlnaHRcIlxyXG4gIFtzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hdPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCJcclxuICAoYWN0aW9uKT1cImFjdGlvbi5lbWl0KCRldmVudClcIlxyXG4gIChvbkFkZE5ldyk9XCJhY3Rpb24uZW1pdCh7IG5hbWU6ICdhZGQnLCByb3c6IG51bGwhIH0pXCJcclxuICAocGFnZUNoYW5nZSk9XCJvbkxhenlMb2FkKCRldmVudClcIlxyXG4gIFtyb3dTZWxlY3RhYmxlXT1cInJvd1NlbGVjdGFibGVcIlxyXG4gIChyb3dTZWxlY3QpPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICBbKHNlbGVjdGlvbildPVwiX3NlbGVjdGVkUm93c1wiXHJcbiAgI2dlbmVyaWNUYWJsZVxyXG4+PC9saWItZ2VuZXJpYy10YWJsZT5cclxuXHJcblxyXG5cclxuXHJcbjwhLS0gRHJhd2VyIC0tPlxyXG48cC1kcmF3ZXJcclxuICAqbmdJZj1cIih0eXBlb2YgZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnID8gZGlzcGxheU1vZGUgOiBpc0VkaXRNb2RlID8gZGlzcGxheU1vZGVbJ2VkaXQnXSA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gZGlzcGxheU1vZGVbJ2FkZCddIDogZGlzcGxheU1vZGVbJ3ZpZXcnXSAgKSA9PT0gJ2RyYXdlcicgJiYgZHJhd2VyVmlzaWJsZVwiXHJcbiAgWyh2aXNpYmxlKV09XCJkcmF3ZXJWaXNpYmxlXCJcclxuICBbY2xvc2FibGVdPVwidHJ1ZVwiXHJcbiAgW2Rpc21pc3NpYmxlXT1cImZhbHNlXCJcclxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgc3R5bGVDbGFzcz1cIiF3LWZ1bGwgbWQ6IXctODAgbGc6IXctWzQwcmVtXVwiPlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+XHJcbiAgICAgIHt7IGlzRWRpdE1vZGUgPyAn2KrYudiv2YrZhCcgOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/ICfYpdi22KfZgdipJyA6ICfYudix2LYnIH19XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPCEtLSAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiIC0tPlxyXG4gIDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiICBjbGFzcz1cInAtNFwiPlxyXG4gICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cImZvcm1GaWVsZHNfXCIgW21vZGVsXT1cIm1vZGVsXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiPjwvZm9ybWx5LWZvcm0+XHJcbiAgPC9mb3JtPlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCIgKm5nSWY9XCIhaXNWaWV3TW9kZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1lbmQgZ2FwLTJcIj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBbbGFiZWxdPVwiaXNFZGl0TW9kZSA/ICgnVVBEQVRFJyB8IHRyYW5zbGF0ZSkgOiAoJ1NBVkUnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uU3VibWl0KClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nIHx8IGZvcm0uaW52YWxpZFwiXHJcbiAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBsYWJlbD1cInt7ICdDQU5DRUwnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgICBzZXZlcml0eT1cImRhbmdlclwiXHJcbiAgICAgICAgKGNsaWNrKT1cInZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSlcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZHJhd2VyPlxyXG5cclxuPCEtLSBEaWFsb2cgLS0+XHJcbjxwLWRpYWxvZ1xyXG4gICpuZ0lmPVwiKHR5cGVvZiBkaXNwbGF5TW9kZSA9PT0gJ3N0cmluZycgPyBkaXNwbGF5TW9kZSA6IGlzRWRpdE1vZGUgPyBkaXNwbGF5TW9kZVsnZWRpdCddIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyBkaXNwbGF5TW9kZVsnYWRkJ10gOiBkaXNwbGF5TW9kZVsndmlldyddICApID09PSAnZGlhbG9nJyAmJiBkaWFsb2dWaXNpYmxlXCJcclxuICBbKHZpc2libGUpXT1cImRpYWxvZ1Zpc2libGVcIlxyXG4gIFttb2RhbF09XCJ0cnVlXCJcclxuICBbY2xvc2FibGVdPVwidHJ1ZVwiXHJcbiAgW2Rpc21pc3NhYmxlTWFza109XCJ0cnVlXCJcclxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgW3N0eWxlXT1cInsgd2lkdGg6ICc5NXZ3JywgbWF4V2lkdGg6IGRpYWxvZ01heFdpZHRoIH1cIlxyXG4gIFtoZWFkZXJdPVwiaXNFZGl0TW9kZSA/ICfYqti52K/ZitmEJyA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gJ9il2LbYp9mB2KknIDogdmlld0hlYWRlclRpdGxlXCI+XHJcbjwhLS0gW2JyZWFrcG9pbnRzXT1cInsgJzEyMDBweCc6ICc1MHZ3JywgJzc2OHB4JzogJzcwdncnLCAnNTYwcHgnOiAnOTV2dycgfVwiIC0tPlxyXG4gIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZVwiPlxyXG4gICAgPGRpdiAqbmdJZj1cImlzVmlld01vZGVcIiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgei0xMCBiZy13aGl0ZS81MCBwb2ludGVyLWV2ZW50cy1hdXRvIHJvdW5kZWQtbWRcIj48L2Rpdj5cclxuICAgIDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwicC00XCI+XHJcbiAgICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtRmllbGRzX1wiIFttb2RlbF09XCJtb2RlbFwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIj48L2Zvcm1seS1mb3JtPlxyXG4gICAgPC9mb3JtPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxyXG4gICAgICA8YnV0dG9uICpuZ0lmPVwiIWlzVmlld01vZGVcIlxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBbbGFiZWxdPVwiaXNFZGl0TW9kZSA/ICgnVVBEQVRFJyB8IHRyYW5zbGF0ZSkgOiAoJ1NBVkUnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZm9ybS5pbnZhbGlkXCJcclxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCJcclxuICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIHBCdXR0b25cclxuICAgICAgICBsYWJlbD1cInt7IGlzVmlld01vZGUgPyAoJ0NMT1NFJyB8IHRyYW5zbGF0ZSkgOiAoJ0NBTkNFTCcgfCB0cmFuc2xhdGUpIH19XCJcclxuICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSlcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZGlhbG9nPlxyXG5cclxuXHJcblxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
@@ -103,7 +103,8 @@ class OptionTagTypeComponent extends FieldType {
|
|
|
103
103
|
[ngStyle]="{
|
|
104
104
|
backgroundColor: selectedOption.color,
|
|
105
105
|
color: textColor,
|
|
106
|
-
borderColor: selectedOption.color
|
|
106
|
+
borderColor: selectedOption.color,
|
|
107
|
+
width: 'max-content !important'
|
|
107
108
|
}"
|
|
108
109
|
[pTooltip]="selectedOption.label | translate"
|
|
109
110
|
>
|
|
@@ -125,7 +126,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
125
126
|
[ngStyle]="{
|
|
126
127
|
backgroundColor: selectedOption.color,
|
|
127
128
|
color: textColor,
|
|
128
|
-
borderColor: selectedOption.color
|
|
129
|
+
borderColor: selectedOption.color,
|
|
130
|
+
width: 'max-content !important'
|
|
129
131
|
}"
|
|
130
132
|
[pTooltip]="selectedOption.label | translate"
|
|
131
133
|
>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.ui.core-tag-type.mjs","sources":["../tmp-esm2022/tag-type/lib/tag-type-module.js","../tmp-esm2022/tag-type/lib/formly-tag-type.js","../tmp-esm2022/tag-type/lib/formly-option-tag-type.js","../tmp-esm2022/tag-type/lib/formly-color-tag-type.js","../tmp-esm2022/tag-type/elite.framework-ng.ui.core-tag-type.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class TagTypeModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLXR5cGUtbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3RhZy10eXBlL3NyYy9saWIvdGFnLXR5cGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sYUFBYTt1R0FBYixhQUFhO3dHQUFiLGFBQWEsWUFGZCxZQUFZO3dHQUVYLGFBQWEsWUFGZCxZQUFZOzsyRkFFWCxhQUFhO2tCQUh6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhZ1R5cGVNb2R1bGUge31cbiJdfQ==","import { Tag } from 'primeng/tag';\nimport { Component } from '@angular/core';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/tooltip\";\nexport class TagTypeComponent extends FieldType {\n getTooltip() {\n const tooltipFrom = this.props['table']['props']['tooltipFrom'];\n return this.model?.[tooltipFrom];\n }\n getValue() {\n const key = this.key;\n const val = this.model?.[key];\n return val;\n }\n getSeverity() {\n const value = this.getValue();\n if (value === true)\n return 'success';\n if (value === false)\n return 'danger';\n return 'info';\n }\n getDisplayValue() {\n const value = this.getValue();\n if (value === true)\n return 'مفعل';\n if (value === false)\n return 'معطل';\n return String(value ?? '-');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: TagTypeComponent, isStandalone: true, selector: \"formly-tag-type\", usesInheritance: true, ngImport: i0, template: `\n <!--\n [formControl]=\"formControl\" -->\n <p-tag\n [formlyAttributes]=\"field\"\n [pTooltip]=\"getTooltip()\"\n [severity]=\"to['severity'] || getSeverity()\"\n [value]=\"getDisplayValue()\"\n [class]=\"to['styleClass'] || 'font-medium'\">\n </p-tag>\n `, isInline: true, dependencies: [{ kind: \"component\", type: Tag, selector: \"p-tag\", inputs: [\"styleClass\", \"severity\", \"value\", \"icon\", \"rounded\"] }, { kind: \"directive\", type: FormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i1.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-tag-type',\n standalone: true,\n imports: [Tag, FormlyAttributes, TranslateModule, TooltipModule, CommonModule, ReactiveFormsModule],\n template: `\n <!--\n [formControl]=\"formControl\" -->\n <p-tag\n [formlyAttributes]=\"field\"\n [pTooltip]=\"getTooltip()\"\n [severity]=\"to['severity'] || getSeverity()\"\n [value]=\"getDisplayValue()\"\n [class]=\"to['styleClass'] || 'font-medium'\">\n </p-tag>\n `,\n // changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXRhZy10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3RhZy10eXBlL3NyYy9saWIvZm9ybWx5LXRhZy10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUEyQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBbUJyRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBMEI7SUFFOUQsVUFBVTtRQUNWLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUNDLFFBQVE7UUFDTixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBYSxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTlCLElBQUksS0FBSyxLQUFLLElBQUk7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNyQyxJQUFJLEtBQUssS0FBSyxLQUFLO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFDckMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUIsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQ2xDLElBQUksS0FBSyxLQUFLLEtBQUs7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQzt1R0ExQlUsZ0JBQWdCOzJGQUFoQixnQkFBZ0Isa0dBYmpCOzs7Ozs7Ozs7O0dBVVQsNERBWFMsR0FBRyxrSEFBQyxnQkFBZ0Isa0dBQUMsZUFBZSw4QkFBQyxhQUFhLHFYQUFDLFlBQVksOEJBQUUsbUJBQW1COzsyRkFjbkYsZ0JBQWdCO2tCQWpCNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFDLGdCQUFnQixFQUFDLGVBQWUsRUFBQyxhQUFhLEVBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUMvRixRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtvQkFDRCxtREFBbUQ7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFnIH0gZnJvbSAncHJpbWVuZy90YWcnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGaWVsZFR5cGVDb25maWcsIEZvcm1seUF0dHJpYnV0ZXMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybWx5LXRhZy10eXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RhZyxGb3JtbHlBdHRyaWJ1dGVzLFRyYW5zbGF0ZU1vZHVsZSxUb29sdGlwTW9kdWxlLENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gIDwhLS1cbiAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiAtLT5cbiAgICA8cC10YWdcbiAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgIFtwVG9vbHRpcF09XCJnZXRUb29sdGlwKClcIlxuICAgICAgW3NldmVyaXR5XT1cInRvWydzZXZlcml0eSddIHx8IGdldFNldmVyaXR5KClcIlxuICAgICAgW3ZhbHVlXT1cImdldERpc3BsYXlWYWx1ZSgpXCJcbiAgICAgIFtjbGFzc109XCJ0b1snc3R5bGVDbGFzcyddIHx8ICdmb250LW1lZGl1bSdcIj5cbiAgICA8L3AtdGFnPlxuICBgLFxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFnVHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc+IHtcblxuICBnZXRUb29sdGlwKCk6IHN0cmluZyB7XG4gIGNvbnN0IHRvb2x0aXBGcm9tID0gdGhpcy5wcm9wc1sndGFibGUnXVsncHJvcHMnXVsndG9vbHRpcEZyb20nXTtcbiAgcmV0dXJuIHRoaXMubW9kZWw/Llt0b29sdGlwRnJvbV1cbn1cbiAgZ2V0VmFsdWUoKTogYW55IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmtleSBhcyBzdHJpbmc7XG4gICAgY29uc3QgdmFsID0gIHRoaXMubW9kZWw/LltrZXldO1xuICAgIHJldHVybiB2YWw7XG4gIH1cblxuICBnZXRTZXZlcml0eSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuXG4gICAgaWYgKHZhbHVlID09PSB0cnVlKSByZXR1cm4gJ3N1Y2Nlc3MnO1xuICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiAnZGFuZ2VyJztcbiAgICByZXR1cm4gJ2luZm8nO1xuICB9XG5cbiAgZ2V0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG5cbiAgICBpZiAodmFsdWUgPT09IHRydWUpIHJldHVybiAn2YXZgdi52YQnO1xuICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiAn2YXYudi32YQnO1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUgPz8gJy0nKTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/tooltip\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@ngx-translate/core\";\nexport class OptionTagTypeComponent extends FieldType {\n get selectedOption() {\n return (this.props?.options ?? [])?.find((opt) => opt.value === this.formControl.value);\n }\n get textColor() {\n // Simple check for light/dark background for contrast\n const hex = this.selectedOption.color.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16) || 0;\n const g = parseInt(hex.substring(2, 4), 16) || 0;\n const b = parseInt(hex.substring(4, 6), 16) || 0;\n const brightness = (r * 299 + g * 587 + b * 114) / 1000;\n return brightness > 150 ? '#000' : '#fff';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: OptionTagTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: OptionTagTypeComponent, isStandalone: true, selector: \"formly-option-tag-type\", usesInheritance: true, ngImport: i0, template: `\n <ng-container *ngIf=\"selectedOption\">\n <div\n class=\"inline-block px-3 py-1 rounded-full border text-sm\"\n [ngStyle]=\"{\n backgroundColor: selectedOption.color,\n color: textColor,\n borderColor: selectedOption.color\n }\"\n [pTooltip]=\"selectedOption.label | translate\"\n >\n {{ selectedOption.label | translate}}\n </div>\n </ng-container>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i1.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: i3.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: OptionTagTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-option-tag-type',\n standalone: true,\n imports: [FormlyAttributes, TranslateModule, TooltipModule, CommonModule, ReactiveFormsModule, FormsModule],\n template: `\n <ng-container *ngIf=\"selectedOption\">\n <div\n class=\"inline-block px-3 py-1 rounded-full border text-sm\"\n [ngStyle]=\"{\n backgroundColor: selectedOption.color,\n color: textColor,\n borderColor: selectedOption.color\n }\"\n [pTooltip]=\"selectedOption.label | translate\"\n >\n {{ selectedOption.label | translate}}\n </div>\n </ng-container>\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LW9wdGlvbi10YWctdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS90YWctdHlwZS9zcmMvbGliL2Zvcm1seS1vcHRpb24tdGFnLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQXNCaEQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQVM7SUFDbkQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxFQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBQ0EsSUFBSSxTQUFTO1FBQ1osc0RBQXNEO1FBQ3RELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4RCxPQUFPLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7dUdBWlUsc0JBQXNCOzJGQUF0QixzQkFBc0IseUdBaEJ2Qjs7Ozs7Ozs7Ozs7Ozs7R0FjVCwyREFmMkIsZUFBZSw4QkFBRSxhQUFhLHFYQUFFLFlBQVksdU5BQUUsbUJBQW1CLDhCQUFFLFdBQVc7OzJGQWlCL0Ysc0JBQXNCO2tCQXBCbEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsV0FBVyxDQUFDO29CQUMzRyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7O0dBY1Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRm9ybWx5QXR0cmlidXRlcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybWx5LW9wdGlvbi10YWctdHlwZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3JtbHlBdHRyaWJ1dGVzLCBUcmFuc2xhdGVNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvblwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImlubGluZS1ibG9jayBweC0zIHB5LTEgcm91bmRlZC1mdWxsIGJvcmRlciB0ZXh0LXNtXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogc2VsZWN0ZWRPcHRpb24uY29sb3IsXG4gICAgICAgICAgY29sb3I6IHRleHRDb2xvcixcbiAgICAgICAgICBib3JkZXJDb2xvcjogc2VsZWN0ZWRPcHRpb24uY29sb3JcbiAgICAgICAgfVwiXG4gICAgICAgIFtwVG9vbHRpcF09XCJzZWxlY3RlZE9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIHt7IHNlbGVjdGVkT3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25UYWdUeXBlQ29tcG9uZW50IGV4dGVuZHMgRmllbGRUeXBlIHtcbiAgZ2V0IHNlbGVjdGVkT3B0aW9uKCkge1xuICAgIHJldHVybiAodGhpcy5wcm9wcz8ub3B0aW9ucyA/PyBbXSBhcyBhbnkpPy5maW5kKChvcHQ6IGFueSkgPT4gb3B0LnZhbHVlID09PSB0aGlzLmZvcm1Db250cm9sLnZhbHVlKTtcbiAgfVxuICAgZ2V0IHRleHRDb2xvcigpOiBzdHJpbmcge1xuICAgIC8vIFNpbXBsZSBjaGVjayBmb3IgbGlnaHQvZGFyayBiYWNrZ3JvdW5kIGZvciBjb250cmFzdFxuICAgIGNvbnN0IGhleCA9IHRoaXMuc2VsZWN0ZWRPcHRpb24uY29sb3IucmVwbGFjZSgnIycsICcnKTtcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygwLCAyKSwgMTYpIHx8IDA7XG4gICAgY29uc3QgZyA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoMiwgNCksIDE2KSB8fCAwO1xuICAgIGNvbnN0IGIgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDQsIDYpLCAxNikgfHwgMDtcbiAgICBjb25zdCBicmlnaHRuZXNzID0gKHIgKiAyOTkgKyBnICogNTg3ICsgYiAqIDExNCkgLyAxMDAwO1xuICAgIHJldHVybiBicmlnaHRuZXNzID4gMTUwID8gJyMwMDAnIDogJyNmZmYnO1xuICB9XG59XG5cblxuLy8ge1xuLy8gICBrZXk6ICd0YWdDb2xvcicsXG4vLyAgIHR5cGU6ICdjb2xvci10YWcnLFxuLy8gICB0ZW1wbGF0ZU9wdGlvbnM6IHtcbi8vICAgICBvcHRpb25zOiBbXG4vLyAgICAgICB7IGxhYmVsOiAnUmVkJywgdmFsdWU6ICdyZWQnLCBjb2xvcjogJyNlZjQ0NDQnIH0sXG4vLyAgICAgICB7IGxhYmVsOiAnQmx1ZScsIHZhbHVlOiAnYmx1ZScsIGNvbG9yOiAnIzNiODJmNicgfSxcbi8vICAgICAgIHsgbGFiZWw6ICdHcmVlbicsIHZhbHVlOiAnZ3JlZW4nLCBjb2xvcjogJyMxMGI5ODEnIH0sXG4vLyAgICAgXSxcbi8vICAgfSxcbi8vICAgaGlkZUxhYmVsOiB0cnVlLFxuLy8gICBob29rczoge1xuLy8gICAgIG9uSW5pdDogKGZpZWxkKSA9PiB7XG4vLyAgICAgICBmaWVsZC50ZW1wbGF0ZU9wdGlvbnMucmVhZG9ubHkgPSB0cnVlO1xuLy8gICAgIH1cbi8vICAgfVxuLy8gfVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/tooltip\";\nimport * as i2 from \"@angular/common\";\nexport class ColorTagTypeComponent extends FieldType {\n get colorValue() {\n const val = this.formControl.value;\n return val && typeof val === 'string' && val.startsWith('#') ? val : '#cccccc';\n }\n get textColor() {\n // Simple check for light/dark background for contrast\n const hex = this.colorValue.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16) || 0;\n const g = parseInt(hex.substring(2, 4), 16) || 0;\n const b = parseInt(hex.substring(4, 6), 16) || 0;\n const brightness = (r * 299 + g * 587 + b * 114) / 1000;\n return brightness > 150 ? '#000' : '#fff';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ColorTagTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: ColorTagTypeComponent, isStandalone: true, selector: \"formly-color-tag-type\", usesInheritance: true, ngImport: i0, template: `\n <div\n class=\"inline-block px-3 py-1 rounded-full border text-sm\"\n [ngStyle]=\"{\n direction:'ltr',\n backgroundColor: colorValue,\n color: textColor,\n borderColor: colorValue\n }\"\n [pTooltip]=\"colorValue\"\n >\n {{ colorValue }}\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i1.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: FormsModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ColorTagTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-color-tag-type',\n standalone: true,\n imports: [\n FormlyAttributes,\n TranslateModule,\n TooltipModule,\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n ],\n template: `\n <div\n class=\"inline-block px-3 py-1 rounded-full border text-sm\"\n [ngStyle]=\"{\n direction:'ltr',\n backgroundColor: colorValue,\n color: textColor,\n borderColor: colorValue\n }\"\n [pTooltip]=\"colorValue\"\n >\n {{ colorValue }}\n </div>\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWNvbG9yLXRhZy10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3RhZy10eXBlL3NyYy9saWIvZm9ybWx5LWNvbG9yLXRhZy10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQTRCaEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQVM7SUFDbEQsSUFBSSxVQUFVO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbkMsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxzREFBc0Q7UUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDeEQsT0FBTyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO3VHQWRVLHFCQUFxQjsyRkFBckIscUJBQXFCLHdHQWZ0Qjs7Ozs7Ozs7Ozs7OztHQWFULDJEQW5CQyxlQUFlLDhCQUNmLGFBQWEscVhBQ2IsWUFBWSxtSEFDWixtQkFBbUIsOEJBQ25CLFdBQVc7OzJGQWlCRixxQkFBcUI7a0JBMUJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7cUJBQ1o7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRm9ybWx5QXR0cmlidXRlcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybWx5LWNvbG9yLXRhZy10eXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1seUF0dHJpYnV0ZXMsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgcHgtMyBweS0xIHJvdW5kZWQtZnVsbCBib3JkZXIgdGV4dC1zbVwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIGRpcmVjdGlvbjonbHRyJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvclZhbHVlLFxuICAgICAgICBjb2xvcjogdGV4dENvbG9yLFxuICAgICAgICBib3JkZXJDb2xvcjogY29sb3JWYWx1ZVxuICAgICAgfVwiXG4gICAgICBbcFRvb2x0aXBdPVwiY29sb3JWYWx1ZVwiXG4gICAgPlxuICAgICAge3sgY29sb3JWYWx1ZSB9fVxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDb2xvclRhZ1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICBnZXQgY29sb3JWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgcmV0dXJuIHZhbCAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuc3RhcnRzV2l0aCgnIycpID8gdmFsIDogJyNjY2NjY2MnO1xuICB9XG5cbiAgZ2V0IHRleHRDb2xvcigpOiBzdHJpbmcge1xuICAgIC8vIFNpbXBsZSBjaGVjayBmb3IgbGlnaHQvZGFyayBiYWNrZ3JvdW5kIGZvciBjb250cmFzdFxuICAgIGNvbnN0IGhleCA9IHRoaXMuY29sb3JWYWx1ZS5yZXBsYWNlKCcjJywgJycpO1xuICAgIGNvbnN0IHIgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDAsIDIpLCAxNikgfHwgMDtcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygyLCA0KSwgMTYpIHx8IDA7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoNCwgNiksIDE2KSB8fCAwO1xuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XG4gICAgcmV0dXJuIGJyaWdodG5lc3MgPiAxNTAgPyAnIzAwMCcgOiAnI2ZmZic7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtdGFnLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvdGFnLXR5cGUvc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLXRhZy10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.ui.core-tag-type.mjs","sources":["../tmp-esm2022/tag-type/lib/tag-type-module.js","../tmp-esm2022/tag-type/lib/formly-tag-type.js","../tmp-esm2022/tag-type/lib/formly-option-tag-type.js","../tmp-esm2022/tag-type/lib/formly-color-tag-type.js","../tmp-esm2022/tag-type/elite.framework-ng.ui.core-tag-type.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class TagTypeModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLXR5cGUtbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3RhZy10eXBlL3NyYy9saWIvdGFnLXR5cGUtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sYUFBYTt1R0FBYixhQUFhO3dHQUFiLGFBQWEsWUFGZCxZQUFZO3dHQUVYLGFBQWEsWUFGZCxZQUFZOzsyRkFFWCxhQUFhO2tCQUh6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIFRhZ1R5cGVNb2R1bGUge31cbiJdfQ==","import { Tag } from 'primeng/tag';\nimport { Component } from '@angular/core';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/tooltip\";\nexport class TagTypeComponent extends FieldType {\n getTooltip() {\n const tooltipFrom = this.props['table']['props']['tooltipFrom'];\n return this.model?.[tooltipFrom];\n }\n getValue() {\n const key = this.key;\n const val = this.model?.[key];\n return val;\n }\n getSeverity() {\n const value = this.getValue();\n if (value === true)\n return 'success';\n if (value === false)\n return 'danger';\n return 'info';\n }\n getDisplayValue() {\n const value = this.getValue();\n if (value === true)\n return 'مفعل';\n if (value === false)\n return 'معطل';\n return String(value ?? '-');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: TagTypeComponent, isStandalone: true, selector: \"formly-tag-type\", usesInheritance: true, ngImport: i0, template: `\n <!--\n [formControl]=\"formControl\" -->\n <p-tag\n [formlyAttributes]=\"field\"\n [pTooltip]=\"getTooltip()\"\n [severity]=\"to['severity'] || getSeverity()\"\n [value]=\"getDisplayValue()\"\n [class]=\"to['styleClass'] || 'font-medium'\">\n </p-tag>\n `, isInline: true, dependencies: [{ kind: \"component\", type: Tag, selector: \"p-tag\", inputs: [\"styleClass\", \"severity\", \"value\", \"icon\", \"rounded\"] }, { kind: \"directive\", type: FormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i1.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ReactiveFormsModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: TagTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-tag-type',\n standalone: true,\n imports: [Tag, FormlyAttributes, TranslateModule, TooltipModule, CommonModule, ReactiveFormsModule],\n template: `\n <!--\n [formControl]=\"formControl\" -->\n <p-tag\n [formlyAttributes]=\"field\"\n [pTooltip]=\"getTooltip()\"\n [severity]=\"to['severity'] || getSeverity()\"\n [value]=\"getDisplayValue()\"\n [class]=\"to['styleClass'] || 'font-medium'\">\n </p-tag>\n `,\n // changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LXRhZy10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3RhZy10eXBlL3NyYy9saWIvZm9ybWx5LXRhZy10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEMsT0FBTyxFQUEyQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBbUJyRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsU0FBMEI7SUFFOUQsVUFBVTtRQUNWLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbEMsQ0FBQztJQUNDLFFBQVE7UUFDTixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBYSxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRTlCLElBQUksS0FBSyxLQUFLLElBQUk7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNyQyxJQUFJLEtBQUssS0FBSyxLQUFLO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFDckMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFOUIsSUFBSSxLQUFLLEtBQUssSUFBSTtZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQ2xDLElBQUksS0FBSyxLQUFLLEtBQUs7WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUNuQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQUM7SUFDOUIsQ0FBQzt1R0ExQlUsZ0JBQWdCOzJGQUFoQixnQkFBZ0Isa0dBYmpCOzs7Ozs7Ozs7O0dBVVQsNERBWFMsR0FBRyxrSEFBQyxnQkFBZ0Isa0dBQUMsZUFBZSw4QkFBQyxhQUFhLHFYQUFDLFlBQVksOEJBQUUsbUJBQW1COzsyRkFjbkYsZ0JBQWdCO2tCQWpCNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsaUJBQWlCO29CQUMzQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFDLGdCQUFnQixFQUFDLGVBQWUsRUFBQyxhQUFhLEVBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO29CQUMvRixRQUFRLEVBQUU7Ozs7Ozs7Ozs7R0FVVDtvQkFDRCxtREFBbUQ7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGFnIH0gZnJvbSAncHJpbWVuZy90YWcnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBGaWVsZFR5cGVDb25maWcsIEZvcm1seUF0dHJpYnV0ZXMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICdwcmltZW5nL3Rvb2x0aXAnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybWx5LXRhZy10eXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1RhZyxGb3JtbHlBdHRyaWJ1dGVzLFRyYW5zbGF0ZU1vZHVsZSxUb29sdGlwTW9kdWxlLENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXG4gIHRlbXBsYXRlOiBgXG4gIDwhLS1cbiAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybUNvbnRyb2xcIiAtLT5cbiAgICA8cC10YWdcbiAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgIFtwVG9vbHRpcF09XCJnZXRUb29sdGlwKClcIlxuICAgICAgW3NldmVyaXR5XT1cInRvWydzZXZlcml0eSddIHx8IGdldFNldmVyaXR5KClcIlxuICAgICAgW3ZhbHVlXT1cImdldERpc3BsYXlWYWx1ZSgpXCJcbiAgICAgIFtjbGFzc109XCJ0b1snc3R5bGVDbGFzcyddIHx8ICdmb250LW1lZGl1bSdcIj5cbiAgICA8L3AtdGFnPlxuICBgLFxuICAvLyBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgVGFnVHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZTxGaWVsZFR5cGVDb25maWc+IHtcblxuICBnZXRUb29sdGlwKCk6IHN0cmluZyB7XG4gIGNvbnN0IHRvb2x0aXBGcm9tID0gdGhpcy5wcm9wc1sndGFibGUnXVsncHJvcHMnXVsndG9vbHRpcEZyb20nXTtcbiAgcmV0dXJuIHRoaXMubW9kZWw/Llt0b29sdGlwRnJvbV1cbn1cbiAgZ2V0VmFsdWUoKTogYW55IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmtleSBhcyBzdHJpbmc7XG4gICAgY29uc3QgdmFsID0gIHRoaXMubW9kZWw/LltrZXldO1xuICAgIHJldHVybiB2YWw7XG4gIH1cblxuICBnZXRTZXZlcml0eSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xuXG4gICAgaWYgKHZhbHVlID09PSB0cnVlKSByZXR1cm4gJ3N1Y2Nlc3MnO1xuICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiAnZGFuZ2VyJztcbiAgICByZXR1cm4gJ2luZm8nO1xuICB9XG5cbiAgZ2V0RGlzcGxheVZhbHVlKCk6IHN0cmluZyB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG5cbiAgICBpZiAodmFsdWUgPT09IHRydWUpIHJldHVybiAn2YXZgdi52YQnO1xuICAgIGlmICh2YWx1ZSA9PT0gZmFsc2UpIHJldHVybiAn2YXYudi32YQnO1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUgPz8gJy0nKTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/tooltip\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@ngx-translate/core\";\nexport class OptionTagTypeComponent extends FieldType {\n get selectedOption() {\n return (this.props?.options ?? [])?.find((opt) => opt.value === this.formControl.value);\n }\n get textColor() {\n // Simple check for light/dark background for contrast\n const hex = this.selectedOption.color.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16) || 0;\n const g = parseInt(hex.substring(2, 4), 16) || 0;\n const b = parseInt(hex.substring(4, 6), 16) || 0;\n const brightness = (r * 299 + g * 587 + b * 114) / 1000;\n return brightness > 150 ? '#000' : '#fff';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: OptionTagTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: OptionTagTypeComponent, isStandalone: true, selector: \"formly-option-tag-type\", usesInheritance: true, ngImport: i0, template: `\n <ng-container *ngIf=\"selectedOption\">\n <div\n class=\"inline-block px-3 py-1 rounded-full border text-sm\"\n [ngStyle]=\"{\n backgroundColor: selectedOption.color,\n color: textColor,\n borderColor: selectedOption.color,\n width: 'max-content !important'\n }\"\n [pTooltip]=\"selectedOption.label | translate\"\n >\n {{ selectedOption.label | translate}}\n </div>\n </ng-container>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i1.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: i3.TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: OptionTagTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-option-tag-type',\n standalone: true,\n imports: [FormlyAttributes, TranslateModule, TooltipModule, CommonModule, ReactiveFormsModule, FormsModule],\n template: `\n <ng-container *ngIf=\"selectedOption\">\n <div\n class=\"inline-block px-3 py-1 rounded-full border text-sm\"\n [ngStyle]=\"{\n backgroundColor: selectedOption.color,\n color: textColor,\n borderColor: selectedOption.color,\n width: 'max-content !important'\n }\"\n [pTooltip]=\"selectedOption.label | translate\"\n >\n {{ selectedOption.label | translate}}\n </div>\n </ng-container>\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LW9wdGlvbi10YWctdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS90YWctdHlwZS9zcmMvbGliL2Zvcm1seS1vcHRpb24tdGFnLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQXVCaEQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFNBQVM7SUFDbkQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxFQUFTLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBQ0EsSUFBSSxTQUFTO1FBQ1osc0RBQXNEO1FBQ3RELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztRQUN4RCxPQUFPLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVDLENBQUM7dUdBWlUsc0JBQXNCOzJGQUF0QixzQkFBc0IseUdBakJ2Qjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsMkRBaEIyQixlQUFlLDhCQUFFLGFBQWEscVhBQUUsWUFBWSx1TkFBRSxtQkFBbUIsOEJBQUUsV0FBVzs7MkZBa0IvRixzQkFBc0I7a0JBckJsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUM7b0JBQzNHLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7O0dBZVQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRm9ybWx5QXR0cmlidXRlcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybWx5LW9wdGlvbi10YWctdHlwZScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtGb3JtbHlBdHRyaWJ1dGVzLCBUcmFuc2xhdGVNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIENvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvblwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImlubGluZS1ibG9jayBweC0zIHB5LTEgcm91bmRlZC1mdWxsIGJvcmRlciB0ZXh0LXNtXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogc2VsZWN0ZWRPcHRpb24uY29sb3IsXG4gICAgICAgICAgY29sb3I6IHRleHRDb2xvcixcbiAgICAgICAgICBib3JkZXJDb2xvcjogc2VsZWN0ZWRPcHRpb24uY29sb3IsXG4gICAgICAgICAgd2lkdGg6ICdtYXgtY29udGVudCAhaW1wb3J0YW50J1xuICAgICAgICB9XCJcbiAgICAgICAgW3BUb29sdGlwXT1cInNlbGVjdGVkT3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgID5cbiAgICAgICAge3sgc2VsZWN0ZWRPcHRpb24ubGFiZWwgfCB0cmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE9wdGlvblRhZ1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICBnZXQgc2VsZWN0ZWRPcHRpb24oKSB7XG4gICAgcmV0dXJuICh0aGlzLnByb3BzPy5vcHRpb25zID8/IFtdIGFzIGFueSk/LmZpbmQoKG9wdDogYW55KSA9PiBvcHQudmFsdWUgPT09IHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpO1xuICB9XG4gICBnZXQgdGV4dENvbG9yKCk6IHN0cmluZyB7XG4gICAgLy8gU2ltcGxlIGNoZWNrIGZvciBsaWdodC9kYXJrIGJhY2tncm91bmQgZm9yIGNvbnRyYXN0XG4gICAgY29uc3QgaGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbi5jb2xvci5yZXBsYWNlKCcjJywgJycpO1xuICAgIGNvbnN0IHIgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDAsIDIpLCAxNikgfHwgMDtcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygyLCA0KSwgMTYpIHx8IDA7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoNCwgNiksIDE2KSB8fCAwO1xuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XG4gICAgcmV0dXJuIGJyaWdodG5lc3MgPiAxNTAgPyAnIzAwMCcgOiAnI2ZmZic7XG4gIH1cbn1cblxuXG4vLyB7XG4vLyAgIGtleTogJ3RhZ0NvbG9yJyxcbi8vICAgdHlwZTogJ2NvbG9yLXRhZycsXG4vLyAgIHRlbXBsYXRlT3B0aW9uczoge1xuLy8gICAgIG9wdGlvbnM6IFtcbi8vICAgICAgIHsgbGFiZWw6ICdSZWQnLCB2YWx1ZTogJ3JlZCcsIGNvbG9yOiAnI2VmNDQ0NCcgfSxcbi8vICAgICAgIHsgbGFiZWw6ICdCbHVlJywgdmFsdWU6ICdibHVlJywgY29sb3I6ICcjM2I4MmY2JyB9LFxuLy8gICAgICAgeyBsYWJlbDogJ0dyZWVuJywgdmFsdWU6ICdncmVlbicsIGNvbG9yOiAnIzEwYjk4MScgfSxcbi8vICAgICBdLFxuLy8gICB9LFxuLy8gICBoaWRlTGFiZWw6IHRydWUsXG4vLyAgIGhvb2tzOiB7XG4vLyAgICAgb25Jbml0OiAoZmllbGQpID0+IHtcbi8vICAgICAgIGZpZWxkLnRlbXBsYXRlT3B0aW9ucy5yZWFkb25seSA9IHRydWU7XG4vLyAgICAgfVxuLy8gICB9XG4vLyB9XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyAttributes } from '@ngx-formly/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from 'primeng/tooltip';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"primeng/tooltip\";\nimport * as i2 from \"@angular/common\";\nexport class ColorTagTypeComponent extends FieldType {\n get colorValue() {\n const val = this.formControl.value;\n return val && typeof val === 'string' && val.startsWith('#') ? val : '#cccccc';\n }\n get textColor() {\n // Simple check for light/dark background for contrast\n const hex = this.colorValue.replace('#', '');\n const r = parseInt(hex.substring(0, 2), 16) || 0;\n const g = parseInt(hex.substring(2, 4), 16) || 0;\n const b = parseInt(hex.substring(4, 6), 16) || 0;\n const brightness = (r * 299 + g * 587 + b * 114) / 1000;\n return brightness > 150 ? '#000' : '#fff';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ColorTagTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: ColorTagTypeComponent, isStandalone: true, selector: \"formly-color-tag-type\", usesInheritance: true, ngImport: i0, template: `\n <div\n class=\"inline-block px-3 py-1 rounded-full border text-sm\"\n [ngStyle]=\"{\n direction:'ltr',\n backgroundColor: colorValue,\n color: textColor,\n borderColor: colorValue\n }\"\n [pTooltip]=\"colorValue\"\n >\n {{ colorValue }}\n </div>\n `, isInline: true, dependencies: [{ kind: \"ngmodule\", type: TranslateModule }, { kind: \"ngmodule\", type: TooltipModule }, { kind: \"directive\", type: i1.Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i2.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"ngmodule\", type: FormsModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: ColorTagTypeComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-color-tag-type',\n standalone: true,\n imports: [\n FormlyAttributes,\n TranslateModule,\n TooltipModule,\n CommonModule,\n ReactiveFormsModule,\n FormsModule,\n ],\n template: `\n <div\n class=\"inline-block px-3 py-1 rounded-full border text-sm\"\n [ngStyle]=\"{\n direction:'ltr',\n backgroundColor: colorValue,\n color: textColor,\n borderColor: colorValue\n }\"\n [pTooltip]=\"colorValue\"\n >\n {{ colorValue }}\n </div>\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWNvbG9yLXRhZy10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL3RhZy10eXBlL3NyYy9saWIvZm9ybWx5LWNvbG9yLXRhZy10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQTRCaEQsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQVM7SUFDbEQsSUFBSSxVQUFVO1FBQ1osTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDbkMsT0FBTyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2pGLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxzREFBc0Q7UUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakQsTUFBTSxDQUFDLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqRCxNQUFNLENBQUMsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDeEQsT0FBTyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUM1QyxDQUFDO3VHQWRVLHFCQUFxQjsyRkFBckIscUJBQXFCLHdHQWZ0Qjs7Ozs7Ozs7Ozs7OztHQWFULDJEQW5CQyxlQUFlLDhCQUNmLGFBQWEscVhBQ2IsWUFBWSxtSEFDWixtQkFBbUIsOEJBQ25CLFdBQVc7OzJGQWlCRixxQkFBcUI7a0JBMUJqQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixPQUFPLEVBQUU7d0JBQ1AsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7cUJBQ1o7b0JBQ0QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7O0dBYVQ7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkVHlwZSwgRm9ybWx5QXR0cmlidXRlcyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZm9ybWx5LWNvbG9yLXRhZy10eXBlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEZvcm1seUF0dHJpYnV0ZXMsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgcHgtMyBweS0xIHJvdW5kZWQtZnVsbCBib3JkZXIgdGV4dC1zbVwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIGRpcmVjdGlvbjonbHRyJyxcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiBjb2xvclZhbHVlLFxuICAgICAgICBjb2xvcjogdGV4dENvbG9yLFxuICAgICAgICBib3JkZXJDb2xvcjogY29sb3JWYWx1ZVxuICAgICAgfVwiXG4gICAgICBbcFRvb2x0aXBdPVwiY29sb3JWYWx1ZVwiXG4gICAgPlxuICAgICAge3sgY29sb3JWYWx1ZSB9fVxuICAgIDwvZGl2PlxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBDb2xvclRhZ1R5cGVDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge1xuICBnZXQgY29sb3JWYWx1ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbCA9IHRoaXMuZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgcmV0dXJuIHZhbCAmJiB0eXBlb2YgdmFsID09PSAnc3RyaW5nJyAmJiB2YWwuc3RhcnRzV2l0aCgnIycpID8gdmFsIDogJyNjY2NjY2MnO1xuICB9XG5cbiAgZ2V0IHRleHRDb2xvcigpOiBzdHJpbmcge1xuICAgIC8vIFNpbXBsZSBjaGVjayBmb3IgbGlnaHQvZGFyayBiYWNrZ3JvdW5kIGZvciBjb250cmFzdFxuICAgIGNvbnN0IGhleCA9IHRoaXMuY29sb3JWYWx1ZS5yZXBsYWNlKCcjJywgJycpO1xuICAgIGNvbnN0IHIgPSBwYXJzZUludChoZXguc3Vic3RyaW5nKDAsIDIpLCAxNikgfHwgMDtcbiAgICBjb25zdCBnID0gcGFyc2VJbnQoaGV4LnN1YnN0cmluZygyLCA0KSwgMTYpIHx8IDA7XG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleC5zdWJzdHJpbmcoNCwgNiksIDE2KSB8fCAwO1xuICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XG4gICAgcmV0dXJuIGJyaWdodG5lc3MgPiAxNTAgPyAnIzAwMCcgOiAnI2ZmZic7XG4gIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtdGFnLXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvdGFnLXR5cGUvc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLXRhZy10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elite.framework/ng.ui.core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.40",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^20.1.0",
|
|
6
6
|
"@angular/core": "^20.1.0"
|
|
@@ -48,14 +48,14 @@
|
|
|
48
48
|
"types": "./custom-switch/index.d.ts",
|
|
49
49
|
"default": "./fesm2022/elite.framework-ng.ui.core-custom-switch.mjs"
|
|
50
50
|
},
|
|
51
|
-
"./deactivation-reason": {
|
|
52
|
-
"types": "./deactivation-reason/index.d.ts",
|
|
53
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs"
|
|
54
|
-
},
|
|
55
51
|
"./datepicker": {
|
|
56
52
|
"types": "./datepicker/index.d.ts",
|
|
57
53
|
"default": "./fesm2022/elite.framework-ng.ui.core-datepicker.mjs"
|
|
58
54
|
},
|
|
55
|
+
"./deactivation-reason": {
|
|
56
|
+
"types": "./deactivation-reason/index.d.ts",
|
|
57
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-deactivation-reason.mjs"
|
|
58
|
+
},
|
|
59
59
|
"./excel-import": {
|
|
60
60
|
"types": "./excel-import/index.d.ts",
|
|
61
61
|
"default": "./fesm2022/elite.framework-ng.ui.core-excel-import.mjs"
|
|
@@ -144,14 +144,14 @@
|
|
|
144
144
|
"types": "./generic-selector/index.d.ts",
|
|
145
145
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-selector.mjs"
|
|
146
146
|
},
|
|
147
|
-
"./header-wrapper": {
|
|
148
|
-
"types": "./header-wrapper/index.d.ts",
|
|
149
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-header-wrapper.mjs"
|
|
150
|
-
},
|
|
151
147
|
"./generic-table": {
|
|
152
148
|
"types": "./generic-table/index.d.ts",
|
|
153
149
|
"default": "./fesm2022/elite.framework-ng.ui.core-generic-table.mjs"
|
|
154
150
|
},
|
|
151
|
+
"./header-wrapper": {
|
|
152
|
+
"types": "./header-wrapper/index.d.ts",
|
|
153
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-header-wrapper.mjs"
|
|
154
|
+
},
|
|
155
155
|
"./icon-picker": {
|
|
156
156
|
"types": "./icon-picker/index.d.ts",
|
|
157
157
|
"default": "./fesm2022/elite.framework-ng.ui.core-icon-picker.mjs"
|
|
@@ -180,14 +180,14 @@
|
|
|
180
180
|
"types": "./radio/index.d.ts",
|
|
181
181
|
"default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
|
|
182
182
|
},
|
|
183
|
-
"./repeat": {
|
|
184
|
-
"types": "./repeat/index.d.ts",
|
|
185
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
|
|
186
|
-
},
|
|
187
183
|
"./select": {
|
|
188
184
|
"types": "./select/index.d.ts",
|
|
189
185
|
"default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"
|
|
190
186
|
},
|
|
187
|
+
"./repeat": {
|
|
188
|
+
"types": "./repeat/index.d.ts",
|
|
189
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
|
|
190
|
+
},
|
|
191
191
|
"./sidebar-cards": {
|
|
192
192
|
"types": "./sidebar-cards/index.d.ts",
|
|
193
193
|
"default": "./fesm2022/elite.framework-ng.ui.core-sidebar-cards.mjs"
|
|
@@ -196,14 +196,14 @@
|
|
|
196
196
|
"types": "./sidebar-toggles/index.d.ts",
|
|
197
197
|
"default": "./fesm2022/elite.framework-ng.ui.core-sidebar-toggles.mjs"
|
|
198
198
|
},
|
|
199
|
-
"./tabs": {
|
|
200
|
-
"types": "./tabs/index.d.ts",
|
|
201
|
-
"default": "./fesm2022/elite.framework-ng.ui.core-tabs.mjs"
|
|
202
|
-
},
|
|
203
199
|
"./tag-type": {
|
|
204
200
|
"types": "./tag-type/index.d.ts",
|
|
205
201
|
"default": "./fesm2022/elite.framework-ng.ui.core-tag-type.mjs"
|
|
206
202
|
},
|
|
203
|
+
"./tabs": {
|
|
204
|
+
"types": "./tabs/index.d.ts",
|
|
205
|
+
"default": "./fesm2022/elite.framework-ng.ui.core-tabs.mjs"
|
|
206
|
+
},
|
|
207
207
|
"./text-editor": {
|
|
208
208
|
"types": "./text-editor/index.d.ts",
|
|
209
209
|
"default": "./fesm2022/elite.framework-ng.ui.core-text-editor.mjs"
|