@elite.framework/ng.ui.core 1.0.54 → 1.0.55

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.
@@ -7,6 +7,8 @@ import { ButtonModule } from 'primeng/button';
7
7
  import * as i3 from 'primeng/splitbutton';
8
8
  import { SplitButtonModule } from 'primeng/splitbutton';
9
9
  import { HasPermissionDirective } from '@elite.framework/ng.core/directives';
10
+ import * as i4 from '@ngx-translate/core';
11
+ import { TranslateModule } from '@ngx-translate/core';
10
12
 
11
13
  class GenericButtonModule {
12
14
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -29,7 +31,7 @@ class GenericButton {
29
31
  label = '';
30
32
  variant = 'raised';
31
33
  severity = 'primary';
32
- size = 'normal';
34
+ size = 'small';
33
35
  iconPosition = 'left';
34
36
  disabled = false;
35
37
  loading = false;
@@ -50,7 +52,7 @@ class GenericButton {
50
52
  secondary: 'bg-gray-600 hover:bg-gray-700 focus:ring-gray-500 text-white',
51
53
  success: 'bg-green-600 hover:bg-green-700 focus:ring-green-500 text-white',
52
54
  info: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',
53
- warning: 'bg-yellow-500 hover:bg-yellow-600 focus:ring-yellow-400 text-white',
55
+ warn: 'bg-yellow-500 hover:bg-yellow-600 focus:ring-yellow-400 text-white',
54
56
  danger: 'bg-red-600 hover:bg-red-700 focus:ring-red-500 text-white',
55
57
  };
56
58
  // خريطة حدوده للـ outlined
@@ -59,7 +61,7 @@ class GenericButton {
59
61
  secondary: 'border border-gray-600 text-gray-600 hover:bg-gray-50 focus:ring-gray-500',
60
62
  success: 'border border-green-600 text-green-600 hover:bg-green-50 focus:ring-green-500',
61
63
  info: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',
62
- warning: 'border border-yellow-500 text-yellow-500 hover:bg-yellow-50 focus:ring-yellow-400',
64
+ warn: 'border border-yellow-500 text-yellow-500 hover:bg-yellow-50 focus:ring-yellow-400',
63
65
  danger: 'border border-red-600 text-red-600 hover:bg-red-50 focus:ring-red-500',
64
66
  };
65
67
  get twClasses() {
@@ -101,11 +103,11 @@ class GenericButton {
101
103
  this.itemClick.emit(evt);
102
104
  }
103
105
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericButton, deps: [], target: i0.ɵɵFactoryTarget.Component });
104
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: GenericButton, isStandalone: true, selector: "lib-generic-button", inputs: { model: "model", type: "type", icon: "icon", label: "label", variant: "variant", severity: "severity", size: "size", iconPosition: "iconPosition", disabled: "disabled", loading: "loading", ariaLabel: "ariaLabel", extraClasses: "extraClasses", permission: "permission" }, outputs: { clicked: "clicked", itemClick: "itemClick" }, ngImport: i0, template: "\n\n<ng-container *hasPermission=\"permission ? [permission] : []\">\n <ng-container *ngIf=\"model && model?.length; else simpleBtn\">\n <!-- \u062D\u0627\u0644\u0629 \u0627\u0644\u0640 splitButton -->\n <p-splitButton\n [model]=\"model\"\n [icon]=\"icon\"\n [label]=\"label\"\n [styleClass]=\"twClasses\"\n [disabled]=\"disabled || loading\" (onClick)=\"onClick()\"\n (onClick)=\"onClick()\"\n (onItemClick)=\"onItemClick($event)\"\n ></p-splitButton>\n </ng-container>\n\n <ng-template #simpleBtn>\n <!-- \u062D\u0627\u0644\u0629 \u0627\u0644\u0632\u0631\u0651 \u0627\u0644\u0639\u0627\u062F\u064A -->\n <button\n [attr.type]=\"type\"\n pButton\n [icon]=\"loading ? 'pi pi-spin pi-spinner' : icon\"\n [label]=\"label\"\n [ngClass]=\"twClasses\"\n [attr.aria-label]=\"ariaLabel || label\"\n [disabled]=\"disabled || loading\" (onClick)=\"onClick()\"\n (click)=\"onClick()\"\n >\n\n <!-- \u0645\u062D\u062A\u0648\u0649 \u0645\u062E\u0635\u0651\u0635 -->\n <ng-content *ngIf=\"!label && !icon && !loading\"></ng-content>\n </button>\n </ng-template>\n </ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i3.SplitButton, selector: "p-splitbutton, p-splitButton, p-split-button", inputs: ["model", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "icon", "iconPos", "label", "tooltip", "tooltipOptions", "styleClass", "menuStyle", "menuStyleClass", "dropdownIcon", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "buttonProps", "menuButtonProps", "autofocus", "disabled", "tabindex", "menuButtonDisabled", "buttonDisabled"], outputs: ["onClick", "onMenuHide", "onMenuShow", "onDropdownClick"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
106
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: GenericButton, isStandalone: true, selector: "lib-generic-button", inputs: { model: "model", type: "type", icon: "icon", label: "label", variant: "variant", severity: "severity", size: "size", iconPosition: "iconPosition", disabled: "disabled", loading: "loading", ariaLabel: "ariaLabel", extraClasses: "extraClasses", permission: "permission" }, outputs: { clicked: "clicked", itemClick: "itemClick" }, ngImport: i0, template: "\n\n<ng-container *hasPermission=\"permission ? [permission] : []\">\n <ng-container *ngIf=\"model && model?.length; else simpleBtn\">\n <!-- Split Button -->\n <!-- [class]=\"twClasses\" -->\n <!-- [outlined]=\"outlined\" -->\n <p-splitButton\n [label]=\"label | translate\"\n [icon]=\"loading ? 'pi pi-spin pi-spinner' : icon\"\n [model]=\"model || []\"\n [disabled]=\"disabled || loading\"\n [severity]=\"severity || 'primary'\"\n (onClick)=\"onClick()\"\n (onItemClick)=\"onItemClick($event)\"\n >\n </p-splitButton>\n </ng-container>\n\n <ng-template #simpleBtn>\n <!-- \u062D\u0627\u0644\u0629 \u0627\u0644\u0632\u0631\u0651 \u0627\u0644\u0639\u0627\u062F\u064A -->\n <button\n [attr.type]=\"type\"\n pButton\n [icon]=\"loading ? 'pi pi-spin pi-spinner' : icon\"\n [label]=\"label | translate\"\n [ngClass]=\"twClasses\"\n [attr.aria-label]=\"(ariaLabel || label) | translate\"\n [disabled]=\"disabled || loading\" (onClick)=\"onClick()\"\n (click)=\"onClick()\"\n >\n\n <!-- \u0645\u062D\u062A\u0648\u0649 \u0645\u062E\u0635\u0651\u0635 -->\n <ng-content *ngIf=\"!label && !icon && !loading\"></ng-content>\n </button>\n </ng-template>\n </ng-container>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "fluid", "label", "icon", "buttonProps"] }, { kind: "ngmodule", type: SplitButtonModule }, { kind: "component", type: i3.SplitButton, selector: "p-splitbutton, p-splitButton, p-split-button", inputs: ["model", "severity", "raised", "rounded", "text", "outlined", "size", "plain", "icon", "iconPos", "label", "tooltip", "tooltipOptions", "styleClass", "menuStyle", "menuStyleClass", "dropdownIcon", "appendTo", "dir", "expandAriaLabel", "showTransitionOptions", "hideTransitionOptions", "buttonProps", "menuButtonProps", "autofocus", "disabled", "tabindex", "menuButtonDisabled", "buttonDisabled"], outputs: ["onClick", "onMenuHide", "onMenuShow", "onDropdownClick"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
107
  }
106
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericButton, decorators: [{
107
109
  type: Component,
108
- args: [{ selector: 'lib-generic-button', standalone: true, imports: [CommonModule, ButtonModule, SplitButtonModule, HasPermissionDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "\n\n<ng-container *hasPermission=\"permission ? [permission] : []\">\n <ng-container *ngIf=\"model && model?.length; else simpleBtn\">\n <!-- \u062D\u0627\u0644\u0629 \u0627\u0644\u0640 splitButton -->\n <p-splitButton\n [model]=\"model\"\n [icon]=\"icon\"\n [label]=\"label\"\n [styleClass]=\"twClasses\"\n [disabled]=\"disabled || loading\" (onClick)=\"onClick()\"\n (onClick)=\"onClick()\"\n (onItemClick)=\"onItemClick($event)\"\n ></p-splitButton>\n </ng-container>\n\n <ng-template #simpleBtn>\n <!-- \u062D\u0627\u0644\u0629 \u0627\u0644\u0632\u0631\u0651 \u0627\u0644\u0639\u0627\u062F\u064A -->\n <button\n [attr.type]=\"type\"\n pButton\n [icon]=\"loading ? 'pi pi-spin pi-spinner' : icon\"\n [label]=\"label\"\n [ngClass]=\"twClasses\"\n [attr.aria-label]=\"ariaLabel || label\"\n [disabled]=\"disabled || loading\" (onClick)=\"onClick()\"\n (click)=\"onClick()\"\n >\n\n <!-- \u0645\u062D\u062A\u0648\u0649 \u0645\u062E\u0635\u0651\u0635 -->\n <ng-content *ngIf=\"!label && !icon && !loading\"></ng-content>\n </button>\n </ng-template>\n </ng-container>\n" }]
110
+ args: [{ selector: 'lib-generic-button', standalone: true, imports: [CommonModule, ButtonModule, SplitButtonModule, HasPermissionDirective, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "\n\n<ng-container *hasPermission=\"permission ? [permission] : []\">\n <ng-container *ngIf=\"model && model?.length; else simpleBtn\">\n <!-- Split Button -->\n <!-- [class]=\"twClasses\" -->\n <!-- [outlined]=\"outlined\" -->\n <p-splitButton\n [label]=\"label | translate\"\n [icon]=\"loading ? 'pi pi-spin pi-spinner' : icon\"\n [model]=\"model || []\"\n [disabled]=\"disabled || loading\"\n [severity]=\"severity || 'primary'\"\n (onClick)=\"onClick()\"\n (onItemClick)=\"onItemClick($event)\"\n >\n </p-splitButton>\n </ng-container>\n\n <ng-template #simpleBtn>\n <!-- \u062D\u0627\u0644\u0629 \u0627\u0644\u0632\u0631\u0651 \u0627\u0644\u0639\u0627\u062F\u064A -->\n <button\n [attr.type]=\"type\"\n pButton\n [icon]=\"loading ? 'pi pi-spin pi-spinner' : icon\"\n [label]=\"label | translate\"\n [ngClass]=\"twClasses\"\n [attr.aria-label]=\"(ariaLabel || label) | translate\"\n [disabled]=\"disabled || loading\" (onClick)=\"onClick()\"\n (click)=\"onClick()\"\n >\n\n <!-- \u0645\u062D\u062A\u0648\u0649 \u0645\u062E\u0635\u0651\u0635 -->\n <ng-content *ngIf=\"!label && !icon && !loading\"></ng-content>\n </button>\n </ng-template>\n </ng-container>\n" }]
109
111
  }], propDecorators: { model: [{
110
112
  type: Input
111
113
  }], type: [{
@@ -1 +1 @@
1
- {"version":3,"file":"elite.framework-ng.ui.core-generic-button.mjs","sources":["../tmp-esm2022/generic-button/lib/generic-button-module.js","../tmp-esm2022/generic-button/lib/generic-button.js","../tmp-esm2022/generic-button/elite.framework-ng.ui.core-generic-button.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericButtonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1idXR0b24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtYnV0dG9uL3NyYy9saWIvZ2VuZXJpYy1idXR0b24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixZQUZwQixZQUFZO3dHQUVYLG1CQUFtQixZQUZwQixZQUFZOzsyRkFFWCxtQkFBbUI7a0JBSC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0J1dHRvbk1vZHVsZSB7fVxuIl19","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { HasPermissionDirective } from '@elite.framework/ng.core/directives';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/button\";\nimport * as i3 from \"primeng/splitbutton\";\nexport class GenericButton {\n // permissionChecker = inject(PermissionCheckerService);\n // لو وُجدت هذه المصفوفة، نُستخدم splitButton\n model;\n type = 'button';\n icon = '';\n label = '';\n variant = 'raised';\n severity = 'primary';\n size = 'normal';\n iconPosition = 'left';\n disabled = false;\n loading = false;\n ariaLabel;\n extraClasses = ''; // لأي Tailwind إضافي\n permission;\n clicked = new EventEmitter();\n itemClick = new EventEmitter();\n // خريطة أحجام\n sizeMap = {\n small: 'px-2 py-1 text-sm',\n normal: 'px-4 py-2 text-base',\n large: 'px-6 py-3 text-lg',\n };\n // خريطة ألوان للـ raised و rounded\n colorMap = {\n primary: 'bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 text-white',\n secondary: 'bg-gray-600 hover:bg-gray-700 focus:ring-gray-500 text-white',\n success: 'bg-green-600 hover:bg-green-700 focus:ring-green-500 text-white',\n info: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',\n warning: 'bg-yellow-500 hover:bg-yellow-600 focus:ring-yellow-400 text-white',\n danger: 'bg-red-600 hover:bg-red-700 focus:ring-red-500 text-white',\n };\n // خريطة حدوده للـ outlined\n outlinedMap = {\n primary: 'border border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500',\n secondary: 'border border-gray-600 text-gray-600 hover:bg-gray-50 focus:ring-gray-500',\n success: 'border border-green-600 text-green-600 hover:bg-green-50 focus:ring-green-500',\n info: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',\n warning: 'border border-yellow-500 text-yellow-500 hover:bg-yellow-50 focus:ring-yellow-400',\n danger: 'border border-red-600 text-red-600 hover:bg-red-50 focus:ring-red-500',\n };\n get twClasses() {\n const base = [\n 'inline-flex items-center justify-center font-medium',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 transition',\n this.sizeMap[this.size]\n ];\n // variant-specific\n if (this.variant === 'outlined') {\n base.push(this.outlinedMap[this.severity]);\n }\n else {\n base.push(this.colorMap[this.severity]);\n }\n if (this.variant === 'text') {\n base.push('bg-transparent hover:bg-gray-100 focus:ring-gray-200 text-gray-700');\n }\n if (this.variant === 'rounded') {\n base.push('rounded-full');\n }\n else {\n base.push('rounded-md');\n }\n if (this.disabled || this.loading) {\n base.push('opacity-50 cursor-not-allowed');\n }\n if (this.extraClasses) {\n base.push(this.extraClasses);\n }\n return base.join(' ');\n }\n onClick() {\n if (!this.disabled && !this.loading) {\n this.clicked.emit();\n }\n }\n onItemClick(evt) {\n this.itemClick.emit(evt);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButton, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: GenericButton, isStandalone: true, selector: \"lib-generic-button\", inputs: { model: \"model\", type: \"type\", icon: \"icon\", label: \"label\", variant: \"variant\", severity: \"severity\", size: \"size\", iconPosition: \"iconPosition\", disabled: \"disabled\", loading: \"loading\", ariaLabel: \"ariaLabel\", extraClasses: \"extraClasses\", permission: \"permission\" }, outputs: { clicked: \"clicked\", itemClick: \"itemClick\" }, ngImport: i0, template: \"\\n\\n<ng-container *hasPermission=\\\"permission ? [permission] : []\\\">\\n <ng-container *ngIf=\\\"model && model?.length; else simpleBtn\\\">\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0640 splitButton -->\\n <p-splitButton\\n [model]=\\\"model\\\"\\n [icon]=\\\"icon\\\"\\n [label]=\\\"label\\\"\\n [styleClass]=\\\"twClasses\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (onClick)=\\\"onClick()\\\"\\n (onItemClick)=\\\"onItemClick($event)\\\"\\n ></p-splitButton>\\n </ng-container>\\n\\n <ng-template #simpleBtn>\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0632\\u0631\\u0651 \\u0627\\u0644\\u0639\\u0627\\u062F\\u064A -->\\n <button\\n [attr.type]=\\\"type\\\"\\n pButton\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [label]=\\\"label\\\"\\n [ngClass]=\\\"twClasses\\\"\\n [attr.aria-label]=\\\"ariaLabel || label\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (click)=\\\"onClick()\\\"\\n >\\n\\n <!-- \\u0645\\u062D\\u062A\\u0648\\u0649 \\u0645\\u062E\\u0635\\u0651\\u0635 -->\\n <ng-content *ngIf=\\\"!label && !icon && !loading\\\"></ng-content>\\n </button>\\n </ng-template>\\n </ng-container>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i2.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"ngmodule\", type: SplitButtonModule }, { kind: \"component\", type: i3.SplitButton, selector: \"p-splitbutton, p-splitButton, p-split-button\", inputs: [\"model\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"icon\", \"iconPos\", \"label\", \"tooltip\", \"tooltipOptions\", \"styleClass\", \"menuStyle\", \"menuStyleClass\", \"dropdownIcon\", \"appendTo\", \"dir\", \"expandAriaLabel\", \"showTransitionOptions\", \"hideTransitionOptions\", \"buttonProps\", \"menuButtonProps\", \"autofocus\", \"disabled\", \"tabindex\", \"menuButtonDisabled\", \"buttonDisabled\"], outputs: [\"onClick\", \"onMenuHide\", \"onMenuShow\", \"onDropdownClick\"] }, { kind: \"directive\", type: HasPermissionDirective, selector: \"[hasPermission]\", inputs: [\"hasPermission\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButton, decorators: [{\n type: Component,\n args: [{ selector: 'lib-generic-button', standalone: true, imports: [CommonModule, ButtonModule, SplitButtonModule, HasPermissionDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\n\\n<ng-container *hasPermission=\\\"permission ? [permission] : []\\\">\\n <ng-container *ngIf=\\\"model && model?.length; else simpleBtn\\\">\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0640 splitButton -->\\n <p-splitButton\\n [model]=\\\"model\\\"\\n [icon]=\\\"icon\\\"\\n [label]=\\\"label\\\"\\n [styleClass]=\\\"twClasses\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (onClick)=\\\"onClick()\\\"\\n (onItemClick)=\\\"onItemClick($event)\\\"\\n ></p-splitButton>\\n </ng-container>\\n\\n <ng-template #simpleBtn>\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0632\\u0631\\u0651 \\u0627\\u0644\\u0639\\u0627\\u062F\\u064A -->\\n <button\\n [attr.type]=\\\"type\\\"\\n pButton\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [label]=\\\"label\\\"\\n [ngClass]=\\\"twClasses\\\"\\n [attr.aria-label]=\\\"ariaLabel || label\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (click)=\\\"onClick()\\\"\\n >\\n\\n <!-- \\u0645\\u062D\\u062A\\u0648\\u0649 \\u0645\\u062E\\u0635\\u0651\\u0635 -->\\n <ng-content *ngIf=\\\"!label && !icon && !loading\\\"></ng-content>\\n </button>\\n </ng-template>\\n </ng-container>\\n\" }]\n }], propDecorators: { model: [{\n type: Input\n }], type: [{\n type: Input\n }], icon: [{\n type: Input\n }], label: [{\n type: Input\n }], variant: [{\n type: Input\n }], severity: [{\n type: Input\n }], size: [{\n type: Input\n }], iconPosition: [{\n type: Input\n }], disabled: [{\n type: Input\n }], loading: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], extraClasses: [{\n type: Input\n }], permission: [{\n type: Input\n }], clicked: [{\n type: Output\n }], itemClick: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24vc3JjL2xpYi9nZW5lcmljLWJ1dHRvbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWJ1dHRvbi9zcmMvbGliL2dlbmVyaWMtYnV0dG9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7OztBQWM3RSxNQUFNLE9BQU8sYUFBYTtJQUV4Qix5REFBeUQ7SUFFekQsNkNBQTZDO0lBQ3BDLEtBQUssQ0FBYztJQUVuQixJQUFJLEdBQWtDLFFBQVEsQ0FBQztJQUMvQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ1YsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLE9BQU8sR0FBa0IsUUFBUSxDQUFDO0lBQ2xDLFFBQVEsR0FBbUIsU0FBUyxDQUFDO0lBQ3JDLElBQUksR0FBZSxRQUFRLENBQUM7SUFDNUIsWUFBWSxHQUFpQixNQUFNLENBQUM7SUFDcEMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFNBQVMsQ0FBVTtJQUNuQixZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUUscUJBQXFCO0lBQ3pDLFVBQVUsQ0FBVTtJQUNuQixPQUFPLEdBQUcsSUFBSSxZ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LG1CQUNqRSx1QkFBdUIsQ0FBQyxNQUFNOzhCQVF0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0ksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgU3BsaXRCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3NwbGl0YnV0dG9uJztcbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgSGFzUGVybWlzc2lvbkRpcmVjdGl2ZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9kaXJlY3RpdmVzJztcblxudHlwZSBCdXR0b25WYXJpYW50ID0gJ3RleHQnIHwgJ291dGxpbmVkJyB8ICdyYWlzZWQnIHwgJ3JvdW5kZWQnO1xudHlwZSBCdXR0b25TZXZlcml0eSA9ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3N1Y2Nlc3MnIHwgJ2luZm8nIHwgJ3dhcm5pbmcnIHwgJ2RhbmdlcicgO1xudHlwZSBCdXR0b25TaXplID0gJ3NtYWxsJyB8ICdub3JtYWwnIHwgJ2xhcmdlJztcbnR5cGUgSWNvblBvc2l0aW9uID0gJ2xlZnQnIHwgJ3JpZ2h0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWdlbmVyaWMtYnV0dG9uJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgIGltcG9ydHM6IFsgQ29tbW9uTW9kdWxlICwgQnV0dG9uTW9kdWxlLCBTcGxpdEJ1dHRvbk1vZHVsZSxIYXNQZXJtaXNzaW9uRGlyZWN0aXZlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWJ1dHRvbi5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0J1dHRvbiB7XG5cbiAgLy8gIHBlcm1pc3Npb25DaGVja2VyID0gaW5qZWN0KFBlcm1pc3Npb25DaGVja2VyU2VydmljZSk7XG5cbiAgLy8g2YTZiCDZiNmP2KzYr9iqINmH2LDZhyDYp9mE2YXYtdmB2YjZgdip2Iwg2YbZj9iz2KrYrtiv2YUgc3BsaXRCdXR0b25cbiAgQElucHV0KCkgbW9kZWw/OiBNZW51SXRlbVtdO1xuXG4gIEBJbnB1dCgpIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnID0gJ2J1dHRvbic7XG4gIEBJbnB1dCgpIGljb24gPSAnJztcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgdmFyaWFudDogQnV0dG9uVmFyaWFudCA9ICdyYWlzZWQnO1xuICBASW5wdXQoKSBzZXZlcml0eTogQnV0dG9uU2V2ZXJpdHkgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNpemU6IEJ1dHRvblNpemUgPSAnbm9ybWFsJztcbiAgQElucHV0KCkgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24gPSAnbGVmdCc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBleHRyYUNsYXNzZXMgPSAnJzsgIC8vINmE2KPZiiBUYWlsd2luZCDYpdi22KfZgdmKXG4gIEBJbnB1dCgpIHBlcm1pc3Npb24/OiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBjbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgaXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cblxuICAvLyDYrtix2YrYt9ipINij2K3YrNin2YVcbiAgcHJpdmF0ZSBzaXplTWFwOiBSZWNvcmQ8QnV0dG9uU2l6ZSxzdHJpbmc+ID0ge1xuICAgIHNtYWxsOiAncHgtMiBweS0xIHRleHQtc20nLFxuICAgIG5vcm1hbDogJ3B4LTQgcHktMiB0ZXh0LWJhc2UnLFxuICAgIGxhcmdlOiAncHgtNiBweS0zIHRleHQtbGcnLFxuICB9O1xuXG4gIC8vINiu2LHZiti32Kkg2KPZhNmI2KfZhiDZhNmE2YAgcmFpc2VkINmIIHJvdW5kZWRcbiAgcHJpdmF0ZSBjb2xvck1hcDogUmVjb3JkPEJ1dHRvblNldmVyaXR5LHN0cmluZz4gPSB7XG4gICAgcHJpbWFyeTogICAnYmctYmx1ZS02MDAgaG92ZXI6YmctYmx1ZS03MDAgZm9jdXM6cmluZy1ibHVlLTUwMCB0ZXh0LXdoaXRlJyxcbiAgICBzZWNvbmRhcnk6ICdiZy1ncmF5LTYwMCBob3ZlcjpiZy1ncmF5LTcwMCBmb2N1czpyaW5nLWdyYXktNTAwIHRleHQtd2hpdGUnLFxuICAgIHN1Y2Nlc3M6ICAgJ2JnLWdyZWVuLTYwMCBob3ZlcjpiZy1ncmVlbi03MDAgZm9jdXM6cmluZy1ncmVlbi01MDAgdGV4dC13aGl0ZScsXG4gICAgaW5mbzogICAgICAnYmctdGVhbC02MDAgaG92ZXI6YmctdGVhbC03MDAgZm9jdXM6cmluZy10ZWFsLTUwMCB0ZXh0LXdoaXRlJyxcbiAgICB3YXJuaW5nOiAgICdiZy15ZWxsb3ctNTAwIGhvdmVyOmJnLXllbGxvdy02MDAgZm9jdXM6cmluZy15ZWxsb3ctNDAwIHRleHQtd2hpdGUnLFxuICAgIGRhbmdlcjogICAgJ2JnLXJlZC02MDAgaG92ZXI6YmctcmVkLTcwMCBmb2N1czpyaW5nLXJlZC01MDAgdGV4dC13aGl0ZScsXG4gIH07XG5cbiAgLy8g2K7YsdmK2LfYqSDYrdiv2YjYr9mHINmE2YTZgCBvdXRsaW5lZFxuICBwcml2YXRlIG91dGxpbmVkTWFwOiBSZWNvcmQ8QnV0dG9uU2V2ZXJpdHksc3RyaW5nPiA9IHtcbiAgICBwcmltYXJ5OiAgICdib3JkZXIgYm9yZGVyLWJsdWUtNjAwIHRleHQtYmx1ZS02MDAgaG92ZXI6YmctYmx1ZS01MCBmb2N1czpyaW5nLWJsdWUtNTAwJyxcbiAgICBzZWNvbmRhcnk6ICdib3JkZXIgYm9yZGVyLWdyYXktNjAwIHRleHQtZ3JheS02MDAgaG92ZXI6YmctZ3JheS01MCBmb2N1czpyaW5nLWdyYXktNTAwJyxcbiAgICBzdWNjZXNzOiAgICdib3JkZXIgYm9yZGVyLWdyZWVuLTYwMCB0ZXh0LWdyZWVuLTYwMCBob3ZlcjpiZy1ncmVlbi01MCBmb2N1czpyaW5nLWdyZWVuLTUwMCcsXG4gICAgaW5mbzogICAgICAnYm9yZGVyIGJvcmRlci10ZWFsLTYwMCB0ZXh0LXRlYWwtNjAwIGhvdmVyOmJnLXRlYWwtNTAgZm9jdXM6cmluZy10ZWFsLTUwMCcsXG4gICAgd2FybmluZzogICAnYm9yZGVyIGJvcmRlci15ZWxsb3ctNTAwIHRleHQteWVsbG93LTUwMCBob3ZlcjpiZy15ZWxsb3ctNTAgZm9jdXM6cmluZy15ZWxsb3ctNDAwJyxcbiAgICBkYW5nZXI6ICAgICdib3JkZXIgYm9yZGVyLXJlZC02MDAgdGV4dC1yZWQtNjAwIGhvdmVyOmJnLXJlZC01MCBmb2N1czpyaW5nLXJlZC01MDAnLFxuICB9O1xuXG4gIGdldCB0d0NsYXNzZXMoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlID0gW1xuICAgICAgJ2lubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBmb250LW1lZGl1bScsXG4gICAgICAnZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLW9mZnNldC0yIHRyYW5zaXRpb24nLFxuICAgICAgdGhpcy5zaXplTWFwW3RoaXMuc2l6ZV1cbiAgICBdO1xuICAgIC8vIHZhcmlhbnQtc3BlY2lmaWNcbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAnb3V0bGluZWQnKSB7XG4gICAgICBiYXNlLnB1c2godGhpcy5vdXRsaW5lZE1hcFt0aGlzLnNldmVyaXR5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhc2UucHVzaCh0aGlzLmNvbG9yTWFwW3RoaXMuc2V2ZXJpdHldKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudmFyaWFudCA9PT0gJ3RleHQnKSB7XG4gICAgICBiYXNlLnB1c2goJ2JnLXRyYW5zcGFyZW50IGhvdmVyOmJnLWdyYXktMTAwIGZvY3VzOnJpbmctZ3JheS0yMDAgdGV4dC1ncmF5LTcwMCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAncm91bmRlZCcpIHtcbiAgICAgIGJhc2UucHVzaCgncm91bmRlZC1mdWxsJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJhc2UucHVzaCgncm91bmRlZC1tZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmxvYWRpbmcpIHtcbiAgICAgIGJhc2UucHVzaCgnb3BhY2l0eS01MCBjdXJzb3Itbm90LWFsbG93ZWQnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZXh0cmFDbGFzc2VzKSB7XG4gICAgICBiYXNlLnB1c2godGhpcy5leHRyYUNsYXNzZXMpO1xuICAgIH1cbiAgICByZXR1cm4gYmFzZS5qb2luKCcgJyk7XG4gIH1cblxuICBvbkNsaWNrKCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5sb2FkaW5nKSB7XG4gICAgICB0aGlzLmNsaWNrZWQuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gb25JdGVtQ2xpY2soZXZ0OiBhbnkpIHtcbiAgIHRoaXMuaXRlbUNsaWNrLmVtaXQoZXZ0KTtcbiB9XG5cbiAgLy8g2K/Yp9mE2Kkg2YXYs9in2LnYr9ipINmE2K/ZhdisINit2KfZhNipINin2YTYqti52LfZitmEINmF2Lkg2K3Yp9mE2Kkg2KfZhNi12YTYp9it2YrYqVxuICAvLyBnZXQgaXNEaXNhYmxlZE9yTG9hZGluZ09yTm9QZXJtaXNzaW9uKCk6IGJvb2xlYW4ge1xuICAvLyAgIC8vINil2LDYpyDZg9in2YYg2KfZhNiy2LEg2YXYudi32YTYp9mLINio2LTZg9mEINi12LHZititINij2Ygg2YHZiiDYrdin2YTYqSDYqtit2YXZitmE2Iwg2YHZh9mIINmF2LnYt9mEXG4gIC8vICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5sb2FkaW5nKSB7XG4gIC8vICAgICByZXR1cm4gdHJ1ZTtcbiAgLy8gICB9XG4gIC8vICAgLy8g2KXYsNinINiq2YUg2KrYrdiv2YrYryDYtdmE2KfYrdmK2Kkg2YTZhNiy2LHYjCDYqtit2YLZgiDZhdmG2YfYp1xuICAvLyAgIGlmICh0aGlzLnBlcm1pc3Npb24pIHtcbiAgLy8gICAgIHJldHVybiAhdGhpcy5wZXJtaXNzaW9uQ2hlY2tlci5pc0dyYW50ZWQodGhpcy5wZXJtaXNzaW9uKTtcbiAgLy8gICB9XG4gIC8vICAgLy8g2KXYsNinINmE2YUg2YrYqtmFINiq2K3Yr9mK2K8g2LXZhNin2K3Zitip2Iwg2YHYp9mE2LLYsSDZhNmK2LMg2YXYudi32YTYp9mLINio2LPYqNioINin2YTYtdmE2KfYrdmK2KfYqlxuICAvLyAgIHJldHVybiBmYWxzZTtcbiAgLy8gfVxuXG59XG4iLCJcblxuPG5nLWNvbnRhaW5lciAqaGFzUGVybWlzc2lvbj1cInBlcm1pc3Npb24gPyBbcGVybWlzc2lvbl0gOiBbXVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwgJiYgbW9kZWw/Lmxlbmd0aDsgZWxzZSBzaW1wbGVCdG5cIj5cbiAgICA8IS0tINit2KfZhNipINin2YTZgCBzcGxpdEJ1dHRvbiAtLT5cbiAgICA8cC1zcGxpdEJ1dHRvblxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcbiAgICAgIFtpY29uXT1cImljb25cIlxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICAgIFtzdHlsZUNsYXNzXT1cInR3Q2xhc3Nlc1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiIChvbkNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAob25DbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgKG9uSXRlbUNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgID48L3Atc3BsaXRCdXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjc2ltcGxlQnRuPlxuICAgIDwhLS0g2K3Yp9mE2Kkg2KfZhNiy2LHZkSDYp9mE2LnYp9iv2YogLS0+XG4gICAgPGJ1dHRvblxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgIHBCdXR0b25cbiAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAncGkgcGktc3BpbiBwaS1zcGlubmVyJyA6IGljb25cIlxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICAgIFtuZ0NsYXNzXT1cInR3Q2xhc3Nlc1wiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCB8fCBsYWJlbFwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9hZGluZ1wiIChvbkNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAoY2xpY2spPVwib25DbGljaygpXCJcbiAgICA+XG5cbiAgICAgIDwhLS0g2YXYrdiq2YjZiSDZhdiu2LXZkdi1IC0tPlxuICAgICAgPG5nLWNvbnRlbnQgKm5nSWY9XCIhbGFiZWwgJiYgIWljb24gJiYgIWxvYWRpbmdcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9idXR0b24+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24vc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLWdlbmVyaWMtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"elite.framework-ng.ui.core-generic-button.mjs","sources":["../tmp-esm2022/generic-button/lib/generic-button-module.js","../tmp-esm2022/generic-button/lib/generic-button.js","../tmp-esm2022/generic-button/elite.framework-ng.ui.core-generic-button.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class GenericButtonModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButtonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1idXR0b24tbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtYnV0dG9uL3NyYy9saWIvZ2VuZXJpYy1idXR0b24tbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sbUJBQW1CO3VHQUFuQixtQkFBbUI7d0dBQW5CLG1CQUFtQixZQUZwQixZQUFZO3dHQUVYLG1CQUFtQixZQUZwQixZQUFZOzsyRkFFWCxtQkFBbUI7a0JBSC9CLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0J1dHRvbk1vZHVsZSB7fVxuIl19","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonModule } from 'primeng/button';\nimport { SplitButtonModule } from 'primeng/splitbutton';\nimport { HasPermissionDirective } from '@elite.framework/ng.core/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"primeng/button\";\nimport * as i3 from \"primeng/splitbutton\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class GenericButton {\n // permissionChecker = inject(PermissionCheckerService);\n // لو وُجدت هذه المصفوفة، نُستخدم splitButton\n model;\n type = 'button';\n icon = '';\n label = '';\n variant = 'raised';\n severity = 'primary';\n size = 'small';\n iconPosition = 'left';\n disabled = false;\n loading = false;\n ariaLabel;\n extraClasses = ''; // لأي Tailwind إضافي\n permission;\n clicked = new EventEmitter();\n itemClick = new EventEmitter();\n // خريطة أحجام\n sizeMap = {\n small: 'px-2 py-1 text-sm',\n normal: 'px-4 py-2 text-base',\n large: 'px-6 py-3 text-lg',\n };\n // خريطة ألوان للـ raised و rounded\n colorMap = {\n primary: 'bg-blue-600 hover:bg-blue-700 focus:ring-blue-500 text-white',\n secondary: 'bg-gray-600 hover:bg-gray-700 focus:ring-gray-500 text-white',\n success: 'bg-green-600 hover:bg-green-700 focus:ring-green-500 text-white',\n info: 'bg-teal-600 hover:bg-teal-700 focus:ring-teal-500 text-white',\n warn: 'bg-yellow-500 hover:bg-yellow-600 focus:ring-yellow-400 text-white',\n danger: 'bg-red-600 hover:bg-red-700 focus:ring-red-500 text-white',\n };\n // خريطة حدوده للـ outlined\n outlinedMap = {\n primary: 'border border-blue-600 text-blue-600 hover:bg-blue-50 focus:ring-blue-500',\n secondary: 'border border-gray-600 text-gray-600 hover:bg-gray-50 focus:ring-gray-500',\n success: 'border border-green-600 text-green-600 hover:bg-green-50 focus:ring-green-500',\n info: 'border border-teal-600 text-teal-600 hover:bg-teal-50 focus:ring-teal-500',\n warn: 'border border-yellow-500 text-yellow-500 hover:bg-yellow-50 focus:ring-yellow-400',\n danger: 'border border-red-600 text-red-600 hover:bg-red-50 focus:ring-red-500',\n };\n get twClasses() {\n const base = [\n 'inline-flex items-center justify-center font-medium',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2 transition',\n this.sizeMap[this.size]\n ];\n // variant-specific\n if (this.variant === 'outlined') {\n base.push(this.outlinedMap[this.severity]);\n }\n else {\n base.push(this.colorMap[this.severity]);\n }\n if (this.variant === 'text') {\n base.push('bg-transparent hover:bg-gray-100 focus:ring-gray-200 text-gray-700');\n }\n if (this.variant === 'rounded') {\n base.push('rounded-full');\n }\n else {\n base.push('rounded-md');\n }\n if (this.disabled || this.loading) {\n base.push('opacity-50 cursor-not-allowed');\n }\n if (this.extraClasses) {\n base.push(this.extraClasses);\n }\n return base.join(' ');\n }\n onClick() {\n if (!this.disabled && !this.loading) {\n this.clicked.emit();\n }\n }\n onItemClick(evt) {\n this.itemClick.emit(evt);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButton, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.8\", type: GenericButton, isStandalone: true, selector: \"lib-generic-button\", inputs: { model: \"model\", type: \"type\", icon: \"icon\", label: \"label\", variant: \"variant\", severity: \"severity\", size: \"size\", iconPosition: \"iconPosition\", disabled: \"disabled\", loading: \"loading\", ariaLabel: \"ariaLabel\", extraClasses: \"extraClasses\", permission: \"permission\" }, outputs: { clicked: \"clicked\", itemClick: \"itemClick\" }, ngImport: i0, template: \"\\n\\n<ng-container *hasPermission=\\\"permission ? [permission] : []\\\">\\n <ng-container *ngIf=\\\"model && model?.length; else simpleBtn\\\">\\n <!-- Split Button -->\\n <!-- [class]=\\\"twClasses\\\" -->\\n <!-- [outlined]=\\\"outlined\\\" -->\\n <p-splitButton\\n [label]=\\\"label | translate\\\"\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [model]=\\\"model || []\\\"\\n [disabled]=\\\"disabled || loading\\\"\\n [severity]=\\\"severity || 'primary'\\\"\\n (onClick)=\\\"onClick()\\\"\\n (onItemClick)=\\\"onItemClick($event)\\\"\\n >\\n </p-splitButton>\\n </ng-container>\\n\\n <ng-template #simpleBtn>\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0632\\u0631\\u0651 \\u0627\\u0644\\u0639\\u0627\\u062F\\u064A -->\\n <button\\n [attr.type]=\\\"type\\\"\\n pButton\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [label]=\\\"label | translate\\\"\\n [ngClass]=\\\"twClasses\\\"\\n [attr.aria-label]=\\\"(ariaLabel || label) | translate\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (click)=\\\"onClick()\\\"\\n >\\n\\n <!-- \\u0645\\u062D\\u062A\\u0648\\u0649 \\u0645\\u062E\\u0635\\u0651\\u0635 -->\\n <ng-content *ngIf=\\\"!label && !icon && !loading\\\"></ng-content>\\n </button>\\n </ng-template>\\n </ng-container>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"ngmodule\", type: ButtonModule }, { kind: \"directive\", type: i2.ButtonDirective, selector: \"[pButton]\", inputs: [\"iconPos\", \"loadingIcon\", \"loading\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"fluid\", \"label\", \"icon\", \"buttonProps\"] }, { kind: \"ngmodule\", type: SplitButtonModule }, { kind: \"component\", type: i3.SplitButton, selector: \"p-splitbutton, p-splitButton, p-split-button\", inputs: [\"model\", \"severity\", \"raised\", \"rounded\", \"text\", \"outlined\", \"size\", \"plain\", \"icon\", \"iconPos\", \"label\", \"tooltip\", \"tooltipOptions\", \"styleClass\", \"menuStyle\", \"menuStyleClass\", \"dropdownIcon\", \"appendTo\", \"dir\", \"expandAriaLabel\", \"showTransitionOptions\", \"hideTransitionOptions\", \"buttonProps\", \"menuButtonProps\", \"autofocus\", \"disabled\", \"tabindex\", \"menuButtonDisabled\", \"buttonDisabled\"], outputs: [\"onClick\", \"onMenuHide\", \"onMenuShow\", \"onDropdownClick\"] }, { kind: \"directive\", type: HasPermissionDirective, selector: \"[hasPermission]\", inputs: [\"hasPermission\"] }, { kind: \"ngmodule\", type: TranslateModule }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: GenericButton, decorators: [{\n type: Component,\n args: [{ selector: 'lib-generic-button', standalone: true, imports: [CommonModule, ButtonModule, SplitButtonModule, HasPermissionDirective, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, template: \"\\n\\n<ng-container *hasPermission=\\\"permission ? [permission] : []\\\">\\n <ng-container *ngIf=\\\"model && model?.length; else simpleBtn\\\">\\n <!-- Split Button -->\\n <!-- [class]=\\\"twClasses\\\" -->\\n <!-- [outlined]=\\\"outlined\\\" -->\\n <p-splitButton\\n [label]=\\\"label | translate\\\"\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [model]=\\\"model || []\\\"\\n [disabled]=\\\"disabled || loading\\\"\\n [severity]=\\\"severity || 'primary'\\\"\\n (onClick)=\\\"onClick()\\\"\\n (onItemClick)=\\\"onItemClick($event)\\\"\\n >\\n </p-splitButton>\\n </ng-container>\\n\\n <ng-template #simpleBtn>\\n <!-- \\u062D\\u0627\\u0644\\u0629 \\u0627\\u0644\\u0632\\u0631\\u0651 \\u0627\\u0644\\u0639\\u0627\\u062F\\u064A -->\\n <button\\n [attr.type]=\\\"type\\\"\\n pButton\\n [icon]=\\\"loading ? 'pi pi-spin pi-spinner' : icon\\\"\\n [label]=\\\"label | translate\\\"\\n [ngClass]=\\\"twClasses\\\"\\n [attr.aria-label]=\\\"(ariaLabel || label) | translate\\\"\\n [disabled]=\\\"disabled || loading\\\" (onClick)=\\\"onClick()\\\"\\n (click)=\\\"onClick()\\\"\\n >\\n\\n <!-- \\u0645\\u062D\\u062A\\u0648\\u0649 \\u0645\\u062E\\u0635\\u0651\\u0635 -->\\n <ng-content *ngIf=\\\"!label && !icon && !loading\\\"></ng-content>\\n </button>\\n </ng-template>\\n </ng-container>\\n\" }]\n }], propDecorators: { model: [{\n type: Input\n }], type: [{\n type: Input\n }], icon: [{\n type: Input\n }], label: [{\n type: Input\n }], variant: [{\n type: Input\n }], severity: [{\n type: Input\n }], size: [{\n type: Input\n }], iconPosition: [{\n type: Input\n }], disabled: [{\n type: Input\n }], loading: [{\n type: Input\n }], ariaLabel: [{\n type: Input\n }], extraClasses: [{\n type: Input\n }], permission: [{\n type: Input\n }], clicked: [{\n type: Output\n }], itemClick: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24vc3JjL2xpYi9nZW5lcmljLWJ1dHRvbi50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcudWkuY29yZS9nZW5lcmljLWJ1dHRvbi9zcmMvbGliL2dlbmVyaWMtYnV0dG9uLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXhELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBY3RELE1BQU0sT0FBTyxhQUFhO0lBRXhCLHlEQUF5RDtJQUV6RCw2Q0FBNkM7SUFDcEMsS0FBSyxDQUFjO0lBRW5CLElBQUksR0FBa0MsUUFBUSxDQUFDO0lBQy9DLElBQUksR0FBRyxFQUFFLENBQUM7SUFDVixLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUFrQixRQUFRLENBQUM7SUFDbEMsUUFBUSxHQUFtQixTQUFTLENBQUM7SUFDckMsSUFBSSxHQUFlLE9BQU8sQ0FBQztJQUMzQixZQUFZLEdBQWlCLE1BQU0sQ0FBQztJQUNwQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsU0FBUyxDQUFVO0lBQ25CLFlBQVksR0FBRyxFQUFFLENBQUMsQ0FBRSxxQkFBcUI7SUFDekMsVUFBVSxDQUFVO0lBQ25CLE9BQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ25DLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBRzlDLGNBQWM7SUFDTixPQUFPLEdBQThCO1FBQzNDLEtBQUssRUFBRSxtQkFBbUI7UUFDMUIsTUFBTSxFQUFFLHFCQUFxQjtRQUM3QixLQUFLLEVBQUUsbUJBQW1CO0tBQzNCLENBQUM7SUFFRixtQ0FBbUM7SUFDM0IsUUFBUSxHQUFrQztRQUNoRCxPQUFPLEVBQUksOERBQThEO1FBQ3pFLFNBQVMsRUFBRSw4REFBOEQ7UUFDekUsT0FBTyxFQUFJLGlFQUFpRTtRQUM1RSxJQUFJLEVBQU8sOERBQThEO1FBQ3pFLElBQUksRUFBSSxvRUFBb0U7UUFDNUUsTUFBTSxFQUFLLDJEQUEyRDtLQUN2RSxDQUFDO0lBRUYsMkJBQTJCO0lBQ25CLFdBQVcsR0FBa0M7UUFDbkQsT0FBTyxFQUFJLDJFQUEyRTtRQUN0RixTQUFTLEVBQUUsMkVBQTJFO1FBQ3RGLE9BQU8sRUFBSSwrRUFBK0U7UUFDMUYsSUFBSSxFQUFPLDJFQUEyRTtRQUN0RixJQUFJLEVBQUksbUZBQW1GO1FBQzNGLE1BQU0sRUFBSyx1RUFBdUU7S0FDbkYsQ0FBQztJQUVGLElBQUksU0FBUztRQUNYLE1BQU0sSUFBSSxHQUFHO1lBQ1gscURBQXFEO1lBQ3JELGdFQUFnRTtZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDeEIsQ0FBQztRQUNGLG1CQUFtQjtRQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVGLFdBQVcsQ0FBQyxHQUFRO1FBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7dUdBdkZXLGFBQWE7MkZBQWIsYUFBYSwrWkNwQjFCLHd5Q0FxQ0EsMkNEckJjLFlBQVksZ09BQUcsWUFBWSxvUUFBRSxpQkFBaUIsaW1CQUFDLHNCQUFzQixzRkFBQyxlQUFlOzsyRkFJdEYsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxvQkFBb0IsY0FDbEIsSUFBSSxXQUNOLENBQUUsWUFBWSxFQUFHLFlBQVksRUFBRSxpQkFBaUIsRUFBQyxzQkFBc0IsRUFBQyxlQUFlLENBQUMsbUJBQ2pGLHVCQUF1QixDQUFDLE1BQU07OEJBUXRDLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL2J1dHRvbic7XG5pbXBvcnQgeyBTcGxpdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc3BsaXRidXR0b24nO1xuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBIYXNQZXJtaXNzaW9uRGlyZWN0aXZlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbnR5cGUgQnV0dG9uVmFyaWFudCA9ICd0ZXh0JyB8ICdvdXRsaW5lZCcgfCAncmFpc2VkJyB8ICdyb3VuZGVkJztcbnR5cGUgQnV0dG9uU2V2ZXJpdHkgPSAnc3VjY2VzcycgfCAnaW5mbycgfCAnd2FybicgfCAnZGFuZ2VyJyB8ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIC8qIHwgJ2NvbnRyYXN0JyB8ICdoZWxwJyAqLyA7XG50eXBlIEJ1dHRvblNpemUgPSAnc21hbGwnIHwgJ25vcm1hbCcgfCAnbGFyZ2UnO1xudHlwZSBJY29uUG9zaXRpb24gPSAnbGVmdCcgfCAncmlnaHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZ2VuZXJpYy1idXR0b24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICAgaW1wb3J0czogWyBDb21tb25Nb2R1bGUgLCBCdXR0b25Nb2R1bGUsIFNwbGl0QnV0dG9uTW9kdWxlLEhhc1Blcm1pc3Npb25EaXJlY3RpdmUsVHJhbnNsYXRlTW9kdWxlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWJ1dHRvbi5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgR2VuZXJpY0J1dHRvbiB7XG5cbiAgLy8gIHBlcm1pc3Npb25DaGVja2VyID0gaW5qZWN0KFBlcm1pc3Npb25DaGVja2VyU2VydmljZSk7XG5cbiAgLy8g2YTZiCDZiNmP2KzYr9iqINmH2LDZhyDYp9mE2YXYtdmB2YjZgdip2Iwg2YbZj9iz2KrYrtiv2YUgc3BsaXRCdXR0b25cbiAgQElucHV0KCkgbW9kZWw/OiBNZW51SXRlbVtdO1xuXG4gIEBJbnB1dCgpIHR5cGU6ICdidXR0b24nIHwgJ3N1Ym1pdCcgfCAncmVzZXQnID0gJ2J1dHRvbic7XG4gIEBJbnB1dCgpIGljb24gPSAnJztcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgdmFyaWFudDogQnV0dG9uVmFyaWFudCA9ICdyYWlzZWQnO1xuICBASW5wdXQoKSBzZXZlcml0eTogQnV0dG9uU2V2ZXJpdHkgPSAncHJpbWFyeSc7XG4gIEBJbnB1dCgpIHNpemU6IEJ1dHRvblNpemUgPSAnc21hbGwnO1xuICBASW5wdXQoKSBpY29uUG9zaXRpb246IEljb25Qb3NpdGlvbiA9ICdsZWZ0JztcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBhcmlhTGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGV4dHJhQ2xhc3NlcyA9ICcnOyAgLy8g2YTYo9mKIFRhaWx3aW5kINil2LbYp9mB2YpcbiAgQElucHV0KCkgcGVybWlzc2lvbj86IHN0cmluZztcbiAgQE91dHB1dCgpIGNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuXG4gIC8vINiu2LHZiti32Kkg2KPYrdis2KfZhVxuICBwcml2YXRlIHNpemVNYXA6IFJlY29yZDxCdXR0b25TaXplLHN0cmluZz4gPSB7XG4gICAgc21hbGw6ICdweC0yIHB5LTEgdGV4dC1zbScsXG4gICAgbm9ybWFsOiAncHgtNCBweS0yIHRleHQtYmFzZScsXG4gICAgbGFyZ2U6ICdweC02IHB5LTMgdGV4dC1sZycsXG4gIH07XG5cbiAgLy8g2K7YsdmK2LfYqSDYo9mE2YjYp9mGINmE2YTZgCByYWlzZWQg2Yggcm91bmRlZFxuICBwcml2YXRlIGNvbG9yTWFwOiBSZWNvcmQ8QnV0dG9uU2V2ZXJpdHksc3RyaW5nPiA9IHtcbiAgICBwcmltYXJ5OiAgICdiZy1ibHVlLTYwMCBob3ZlcjpiZy1ibHVlLTcwMCBmb2N1czpyaW5nLWJsdWUtNTAwIHRleHQtd2hpdGUnLFxuICAgIHNlY29uZGFyeTogJ2JnLWdyYXktNjAwIGhvdmVyOmJnLWdyYXktNzAwIGZvY3VzOnJpbmctZ3JheS01MDAgdGV4dC13aGl0ZScsXG4gICAgc3VjY2VzczogICAnYmctZ3JlZW4tNjAwIGhvdmVyOmJnLWdyZWVuLTcwMCBmb2N1czpyaW5nLWdyZWVuLTUwMCB0ZXh0LXdoaXRlJyxcbiAgICBpbmZvOiAgICAgICdiZy10ZWFsLTYwMCBob3ZlcjpiZy10ZWFsLTcwMCBmb2N1czpyaW5nLXRlYWwtNTAwIHRleHQtd2hpdGUnLFxuICAgIHdhcm46ICAgJ2JnLXllbGxvdy01MDAgaG92ZXI6YmcteWVsbG93LTYwMCBmb2N1czpyaW5nLXllbGxvdy00MDAgdGV4dC13aGl0ZScsXG4gICAgZGFuZ2VyOiAgICAnYmctcmVkLTYwMCBob3ZlcjpiZy1yZWQtNzAwIGZvY3VzOnJpbmctcmVkLTUwMCB0ZXh0LXdoaXRlJyxcbiAgfTtcblxuICAvLyDYrtix2YrYt9ipINit2K/ZiNiv2Ycg2YTZhNmAIG91dGxpbmVkXG4gIHByaXZhdGUgb3V0bGluZWRNYXA6IFJlY29yZDxCdXR0b25TZXZlcml0eSxzdHJpbmc+ID0ge1xuICAgIHByaW1hcnk6ICAgJ2JvcmRlciBib3JkZXItYmx1ZS02MDAgdGV4dC1ibHVlLTYwMCBob3ZlcjpiZy1ibHVlLTUwIGZvY3VzOnJpbmctYmx1ZS01MDAnLFxuICAgIHNlY29uZGFyeTogJ2JvcmRlciBib3JkZXItZ3JheS02MDAgdGV4dC1ncmF5LTYwMCBob3ZlcjpiZy1ncmF5LTUwIGZvY3VzOnJpbmctZ3JheS01MDAnLFxuICAgIHN1Y2Nlc3M6ICAgJ2JvcmRlciBib3JkZXItZ3JlZW4tNjAwIHRleHQtZ3JlZW4tNjAwIGhvdmVyOmJnLWdyZWVuLTUwIGZvY3VzOnJpbmctZ3JlZW4tNTAwJyxcbiAgICBpbmZvOiAgICAgICdib3JkZXIgYm9yZGVyLXRlYWwtNjAwIHRleHQtdGVhbC02MDAgaG92ZXI6YmctdGVhbC01MCBmb2N1czpyaW5nLXRlYWwtNTAwJyxcbiAgICB3YXJuOiAgICdib3JkZXIgYm9yZGVyLXllbGxvdy01MDAgdGV4dC15ZWxsb3ctNTAwIGhvdmVyOmJnLXllbGxvdy01MCBmb2N1czpyaW5nLXllbGxvdy00MDAnLFxuICAgIGRhbmdlcjogICAgJ2JvcmRlciBib3JkZXItcmVkLTYwMCB0ZXh0LXJlZC02MDAgaG92ZXI6YmctcmVkLTUwIGZvY3VzOnJpbmctcmVkLTUwMCcsXG4gIH07XG5cbiAgZ2V0IHR3Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGJhc2UgPSBbXG4gICAgICAnaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGZvbnQtbWVkaXVtJyxcbiAgICAgICdmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctb2Zmc2V0LTIgdHJhbnNpdGlvbicsXG4gICAgICB0aGlzLnNpemVNYXBbdGhpcy5zaXplXVxuICAgIF07XG4gICAgLy8gdmFyaWFudC1zcGVjaWZpY1xuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdvdXRsaW5lZCcpIHtcbiAgICAgIGJhc2UucHVzaCh0aGlzLm91dGxpbmVkTWFwW3RoaXMuc2V2ZXJpdHldKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZS5wdXNoKHRoaXMuY29sb3JNYXBbdGhpcy5zZXZlcml0eV0pO1xuICAgIH1cbiAgICBpZiAodGhpcy52YXJpYW50ID09PSAndGV4dCcpIHtcbiAgICAgIGJhc2UucHVzaCgnYmctdHJhbnNwYXJlbnQgaG92ZXI6YmctZ3JheS0xMDAgZm9jdXM6cmluZy1ncmF5LTIwMCB0ZXh0LWdyYXktNzAwJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLnZhcmlhbnQgPT09ICdyb3VuZGVkJykge1xuICAgICAgYmFzZS5wdXNoKCdyb3VuZGVkLWZ1bGwnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYmFzZS5wdXNoKCdyb3VuZGVkLW1kJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpc2FibGVkIHx8IHRoaXMubG9hZGluZykge1xuICAgICAgYmFzZS5wdXNoKCdvcGFjaXR5LTUwIGN1cnNvci1ub3QtYWxsb3dlZCcpO1xuICAgIH1cbiAgICBpZiAodGhpcy5leHRyYUNsYXNzZXMpIHtcbiAgICAgIGJhc2UucHVzaCh0aGlzLmV4dHJhQ2xhc3Nlcyk7XG4gICAgfVxuICAgIHJldHVybiBiYXNlLmpvaW4oJyAnKTtcbiAgfVxuXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMuY2xpY2tlZC5lbWl0KCk7XG4gICAgfVxuICB9XG5cbiBvbkl0ZW1DbGljayhldnQ6IGFueSkge1xuICAgdGhpcy5pdGVtQ2xpY2suZW1pdChldnQpO1xuIH1cblxuXG59XG4iLCJcblxuPG5nLWNvbnRhaW5lciAqaGFzUGVybWlzc2lvbj1cInBlcm1pc3Npb24gPyBbcGVybWlzc2lvbl0gOiBbXVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZWwgJiYgbW9kZWw/Lmxlbmd0aDsgZWxzZSBzaW1wbGVCdG5cIj5cbiAgICAgICA8IS0tIFNwbGl0IEJ1dHRvbiAtLT5cbiAgICAgICAgPCEtLSBbY2xhc3NdPVwidHdDbGFzc2VzXCIgLS0+XG4gICAgICAgIDwhLS0gW291dGxpbmVkXT1cIm91dGxpbmVkXCIgLS0+XG4gICAgICA8cC1zcGxpdEJ1dHRvblxuICAgICAgICBbbGFiZWxdPVwibGFiZWwgIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2ljb25dPVwibG9hZGluZyA/ICdwaSBwaS1zcGluIHBpLXNwaW5uZXInIDogaWNvblwiXG4gICAgICAgIFttb2RlbF09XCJtb2RlbCB8fCBbXVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2FkaW5nXCJcbiAgICAgICAgW3NldmVyaXR5XT1cInNldmVyaXR5IHx8ICdwcmltYXJ5J1wiXG4gICAgICAgIChvbkNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgICAgKG9uSXRlbUNsaWNrKT1cIm9uSXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICA8L3Atc3BsaXRCdXR0b24+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjc2ltcGxlQnRuPlxuICAgIDwhLS0g2K3Yp9mE2Kkg2KfZhNiy2LHZkSDYp9mE2LnYp9iv2YogLS0+XG4gICAgPGJ1dHRvblxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgIHBCdXR0b25cbiAgICAgIFtpY29uXT1cImxvYWRpbmcgPyAncGkgcGktc3BpbiBwaS1zcGlubmVyJyA6IGljb25cIlxuICAgICAgW2xhYmVsXT1cImxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtuZ0NsYXNzXT1cInR3Q2xhc3Nlc1wiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIihhcmlhTGFiZWwgfHwgbGFiZWwpIHwgdHJhbnNsYXRlXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2FkaW5nXCIgKG9uQ2xpY2spPVwib25DbGljaygpXCJcbiAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgID5cblxuICAgICAgPCEtLSDZhdit2KrZiNmJINmF2K7YtdmR2LUgLS0+XG4gICAgICA8bmctY29udGVudCAqbmdJZj1cIiFsYWJlbCAmJiAhaWNvbiAmJiAhbG9hZGluZ1wiPjwvbmctY29udGVudD5cbiAgICA8L2J1dHRvbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1idXR0b24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLnVpLmNvcmUvZ2VuZXJpYy1idXR0b24vc3JjL2VsaXRlLmZyYW1ld29yay1uZy51aS5jb3JlLWdlbmVyaWMtYnV0dG9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -102,10 +102,10 @@ class GenericCrudTableComponent {
102
102
  addButtonConfigs = [
103
103
  {
104
104
  icon: 'pi pi-plus',
105
- label: 'Add',
105
+ label: 'ADD',
106
106
  variant: 'raised',
107
107
  severity: 'primary',
108
- size: 'normal',
108
+ size: 'small',
109
109
  actionName: 'add',
110
110
  visible: this.showAddButton,
111
111
  permission: this.addPermissionName,
@@ -272,7 +272,7 @@ class GenericCrudTableComponent {
272
272
  });
273
273
  }
274
274
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericCrudTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
275
- 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", useConfirmOnSave: "useConfirmOnSave", 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", showAddButton: "showAddButton", addPermissionName: "addPermissionName", addButtonConfigs: "addButtonConfigs", bulkActionButtons: "bulkActionButtons", singleActionButtons: "singleActionButtons", 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 xs: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\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onSingleItemAction(btn)\"\r\n ></lib-generic-button>\r\n }\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onInternalBulkAction(btn)\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"handleButtonClick(btn)\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\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 </ng-template>\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[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[addButtonConfigs]=\"addButtonConfigs\"\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 ? 'UPDATE' : isViewMode === false ? 'ADD' : 'VIEW' }}\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 ? 'UPDATE' : isViewMode === false ? 'ADD' : 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: ["model", "fields"], outputs: ["search"] }, { kind: "component", type: GenericTable, selector: "lib-generic-table", inputs: ["data", "columns", "loading", "actions", "actionsMode", "first", "rows", "totalRecords", "sortField", "sortOrder", "globalFilterFields", "addButtonConfigs", "scrollHeight", "rowSelectable", "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: "pipe", type: i8.TranslatePipe, name: "translate" }] });
275
+ 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", useConfirmOnSave: "useConfirmOnSave", 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", showAddButton: "showAddButton", addPermissionName: "addPermissionName", addButtonConfigs: "addButtonConfigs", bulkActionButtons: "bulkActionButtons", singleActionButtons: "singleActionButtons", 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 xs: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\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onSingleItemAction(btn)\"\r\n ></lib-generic-button>\r\n }\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onInternalBulkAction(btn)\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"handleButtonClick(btn)\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\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 </ng-template>\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[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[addButtonConfigs]=\"addButtonConfigs\"\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 ? 'UPDATE' : isViewMode === false ? ('ADD' | translate): ('VIEW' | translate) }}\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 ? ('UPDATE' | translate) : isViewMode === false ? ('ADD'| translate) : 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: ["model", "fields"], outputs: ["search"] }, { kind: "component", type: GenericTable, selector: "lib-generic-table", inputs: ["data", "columns", "loading", "actions", "actionsMode", "first", "rows", "totalRecords", "sortField", "sortOrder", "globalFilterFields", "addButtonConfigs", "scrollHeight", "rowSelectable", "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: "pipe", type: i8.TranslatePipe, name: "translate" }] });
276
276
  }
277
277
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: GenericCrudTableComponent, decorators: [{
278
278
  type: Component,
@@ -296,7 +296,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
296
296
  DialogModule,
297
297
  ], host: {
298
298
  class: 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white'
299
- }, template: "\r\n <div class=\"flex items-start gap-2 justify-between\">\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onSingleItemAction(btn)\"\r\n ></lib-generic-button>\r\n }\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onInternalBulkAction(btn)\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"handleButtonClick(btn)\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\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 </ng-template>\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[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[addButtonConfigs]=\"addButtonConfigs\"\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 ? 'UPDATE' : isViewMode === false ? 'ADD' : 'VIEW' }}\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 ? 'UPDATE' : isViewMode === false ? 'ADD' : 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" }]
299
+ }, template: "\r\n <div class=\"flex items-start gap-2 justify-between\">\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onSingleItemAction(btn)\"\r\n ></lib-generic-button>\r\n }\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"onInternalBulkAction(btn)\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngFor=\"let btn of addButtonConfigs; trackBy: trackByIdx\">\r\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\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 [model]=\"btn.splitActions\"\r\n [permission]=\"btn.permission\"\r\n (clicked)=\"handleButtonClick(btn)\"\r\n ></lib-generic-button>\r\n }\r\n </ng-container>\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 </ng-template>\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[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[addButtonConfigs]=\"addButtonConfigs\"\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 ? 'UPDATE' : isViewMode === false ? ('ADD' | translate): ('VIEW' | translate) }}\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 ? ('UPDATE' | translate) : isViewMode === false ? ('ADD'| translate) : 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 * 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 useConfirmOnSave = false;\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 showAddButton = true;\n addPermissionName;\n addButtonConfigs = [\n {\n icon: 'pi pi-plus',\n label: 'Add',\n variant: 'raised',\n severity: 'primary',\n size: 'normal',\n actionName: 'add',\n visible: this.showAddButton,\n permission: this.addPermissionName,\n },\n ];\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 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 /**\n * Handles button click in a unified way.\n * - If btn.action is defined, execute it.\n * - Otherwise, emit event with actionName or default 'add'.\n */\n async handleButtonClick(btn) {\n try {\n if (btn.action) {\n // Execute the provided action\n await btn.action(null); // You can pass row or context here\n }\n else {\n // Fallback to emitting event\n this.action.emit({\n name: btn.actionName ?? 'add',\n row: null, // provide row if available\n });\n }\n }\n catch (err) {\n console.error('Button action error', err);\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)\n return;\n const save = () => {\n this.loading = true;\n this.errorMessage = null;\n const id = this.isEditMode ? this.model[this.idField] : null;\n const recordToSave = this.beforeSave({ ...this.model });\n const operation$ = this.isEditMode\n ? this.service.update(id, recordToSave)\n : this.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: () => {\n // ❌ ما نعرض رسالة خطأ هنا لأن الـ interceptor يتكفل فيها\n this.loading = false;\n }\n });\n };\n if (this.useConfirmOnSave) {\n this.swalService.confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode\n ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء').then(result => {\n if (result.isConfirmed) {\n save();\n }\n });\n }\n else {\n save();\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\", useConfirmOnSave: \"useConfirmOnSave\", 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\", showAddButton: \"showAddButton\", addPermissionName: \"addPermissionName\", addButtonConfigs: \"addButtonConfigs\", bulkActionButtons: \"bulkActionButtons\", singleActionButtons: \"singleActionButtons\", 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 xs: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\\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"handleButtonClick(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\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 </ng-template>\\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[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[addButtonConfigs]=\\\"addButtonConfigs\\\"\\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 ? 'UPDATE' : isViewMode === false ? 'ADD' : 'VIEW' }}\\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 ? 'UPDATE' : isViewMode === false ? 'ADD' : 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: [\"model\", \"fields\"], outputs: [\"search\"] }, { kind: \"component\", type: GenericTable, selector: \"lib-generic-table\", inputs: [\"data\", \"columns\", \"loading\", \"actions\", \"actionsMode\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"globalFilterFields\", \"addButtonConfigs\", \"scrollHeight\", \"rowSelectable\", \"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: \"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 ], host: {\n class: 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white'\n }, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"handleButtonClick(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\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 </ng-template>\\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[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[addButtonConfigs]=\\\"addButtonConfigs\\\"\\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 ? 'UPDATE' : isViewMode === false ? 'ADD' : 'VIEW' }}\\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 ? 'UPDATE' : isViewMode === false ? 'ADD' : 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 }], useConfirmOnSave: [{\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 }], showAddButton: [{\n type: Input\n }], addPermissionName: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], singleActionButtons: [{\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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O2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUMsYUFBYTtzQkFBdEIsTUFBTTtnQkFJSSxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBUUEsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxTQUFTO3NCQUFqQixLQUFLO2dCQUVFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUVJLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUMsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVLLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFZRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQW9CQyxVQUFVO3NCQUFsQixLQUFLO2dCQWlITSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXggKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmUgKi9cclxuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gJ3ByaW1lbmcvYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IERpdmlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpdmlkZXInO1xyXG4vLyBzcmMvYXBwL3NoYXJlZC9nZW5lcmljLWNydWQtdGFibGUvZ2VuZXJpYy1jcnVkLXRhYmxlLmNvbXBvbmVudC50c1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBpbmplY3QsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVzc2FnZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbWVzc2FnZSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgUGFnaW5hdG9yU3RhdGUgfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFRhYmxlTW9kdWxlLFRhYmxlTGF6eUxvYWRFdmVudCAgfSAgZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcbmltcG9ydCB7IFRvb2xiYXJNb2R1bGUgfSAgIGZyb20gJ3ByaW1lbmcvdG9vbGJhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybSwgRm9ybWx5Rm9ybU9wdGlvbnMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgSWNvbkZpZWxkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pY29uZmllbGQnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRHJhd2VyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcmF3ZXInO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBCdXR0b25Db25maWcgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU3dhbFNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBY3Rpb25EZWYgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9icmVhZGNydW1iJztcclxuaW1wb3J0IHsgR2VuZXJpY0J1dHRvbiB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLWJ1dHRvbic7XHJcbmltcG9ydCB7IEdlbmVyaWNUYWJsZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlJztcclxuaW1wb3J0IHsgR2VuZXJpY1NlYXJjaCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXNlYXJjaCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VDaGFuZ2VQYXlsb2FkIGV4dGVuZHMgUGFnaW5hdG9yU3RhdGUge1xyXG5zb3J0Pzogc3RyaW5nO1xyXG5maWx0ZXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQWN0aW9uc01vZGUgPSAnYnV0dG9ucycgfCAnbWVudSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1nZW5lcmljLWNydWQtdGFibGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVGFibGVNb2R1bGUsXHJcbiAgICBHZW5lcmljQnV0dG9uLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgR2VuZXJpY1NlYXJjaCxcclxuICAgIEdlbmVyaWNUYWJsZSxcclxuICAgIFRvb2xiYXJNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBEaXZpZGVyTW9kdWxlLFxyXG4gICAgSWNvbkZpZWxkTW9kdWxlLFxyXG4gICAgRHJhd2VyTW9kdWxlLFxyXG4gICAgRm9ybWx5Rm9ybSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1lc3NhZ2VNb2R1bGUsXHJcbiAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG5dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCcsXHJcbiAgIGhvc3Q6IHtcclxuICAgICAgICBjbGFzczogJ2gtZnVsbCBmbGV4LTEgZmxleCBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW4gYm9yZGVyIGJvcmRlci1zdXJmYWNlIHJvdW5kZWQtMnhsIHhzOnJvdW5kZWQtMnhsIHAtNCBiZy13aGl0ZSdcclxuICAgIH0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRUYWJsZUNvbXBvbmVudDxUPiB7XHJcbiBAVmlld0NoaWxkKCdnZW5lcmljVGFibGUnKSBnZW5lcmljVGFibGUhOiBHZW5lcmljVGFibGU8VD47XHJcbiB0cmFuc2xhdGU6VHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuIHByaXZhdGUgc3dhbFNlcnZpY2UgPSBpbmplY3QoU3dhbFNlcnZpY2UpO1xyXG5cclxuICAgIGhvbWU6IE1lbnVJdGVtIHwgdW5kZWZpbmVkID0geyBpY29uOiAncGkgcGktaG9tZScsIHJvdXRlckxpbms6ICcvJyB9O1xyXG4gIEBJbnB1dCgpIGRhdGE6IFRbXSA9IFtdO1xyXG4gICBmb3JtRmllbGRzXzogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAgLy8gPC0tINmH2YbYp1xyXG4gIEBJbnB1dCgpIGZvcm1GaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgIC8vIDwtLSDZh9mG2KdcclxuICBASW5wdXQoKSBjb2x1bW5zOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107ICAvLyA8LS0g2YfZhtinXHJcbiAgQElucHV0KCkgZGlhbG9nTWF4V2lkdGggPSAnNDByZW0nOyAvLyB1bnNldCAsIGZpdC1jb250ZW50XHJcbiAgQElucHV0KCkgaXNWaWV3TW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlNb2RlOlxyXG4gIHwgJ2RyYXdlcicgfCAnZGlhbG9nJyB8ICdyb3V0ZSdcclxuICB8IFBhcnRpYWw8UmVjb3JkPCdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnLCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJz4+XHJcbiAgPSAnZHJhd2VyJztcclxuICBASW5wdXQoKSB1c2VDb25maXJtT25TYXZlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNFZGl0TW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRyYXdlclZpc2libGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaWFsb2dWaXNpYmxlID0gZmFsc2U7XHJcbiAgIGZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XHJcbiBASW5wdXQoKSBtb2RlbDogYW55O1xyXG4gIG1vZGVsXzogYW55ID0ge307XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVycm9yTXNnID0gJyc7XHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmd8YW55ID0gJyc7XHJcblxyXG5vcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xyXG5cclxuICBASW5wdXQoKSBhY3Rpb25zOiBBY3Rpb25EZWY8VD5bXSA9IFtdO1xyXG4gICAgLyoqINiq2K3Yr9ivINi32LHZitmC2Kkg2KfZhNi52LHYtjogJ2J1dHRvbnMnINij2YggJ21lbnUnICovXHJcbiAgQElucHV0KCkgYWN0aW9uc01vZGU6IEFjdGlvbnNNb2RlID0gJ2J1dHRvbnMnO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfT4oKTtcclxuICBAT3V0cHV0KCkgYnVsa0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IGl0ZW1zOiBUW10gfT4oKTtcclxuICBAT3V0cHV0KCkgc2luZ2xlQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgaXRlbTogVCB9PigpO1xyXG5cclxuICAvLyDYp9mE2KjYrdirXHJcbi8vIFNlYXJjaFxyXG4gIEBJbnB1dCgpIGZpbHRlcnM6IGFueTtcclxuICAgQElucHV0KCkgZmlsdGVyTW9kZWw6IGFueSA9IHt9O1xyXG4gIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IHN0cmluZzsgZ2xvYmFsOiBzdHJpbmcgfT4oKTtcclxuXHJcbi8qKiDZhNmE2KrYrdmD2YUg2KjYpdi42YfYp9ixL9il2K7Zgdin2KEg2YLYs9mFINin2YTYqNit2KsgKi9cclxuICBASW5wdXQoKSBzaG93U2VhcmNoID0gdHJ1ZTtcclxuXHJcbiAgLyoqIFBhZ2luYXRpb24gSW5wdXRzICovXHJcbiAgQElucHV0KCkgZmlyc3QgPSAwO1xyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMDtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHMgPSAwO1xyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlQ2hhbmdlUGF5bG9hZD4oKTtcclxuICBAT3V0cHV0KCkgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbkBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7O1xyXG4vLyBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxudmlld0hlYWRlclRpdGxlID0gJ9i52LHYtiDYp9mE2KrZgdin2LXZitmEJztcclxuICAgLyoqINmE2KzYudmEINin2YTYrNiv2YjZhCDZgtin2KjZhCDZhNin2K7YqtmK2KfYsSDYp9mE2LXZgdmI2YEgKNin2YHYqtix2KfYttmKIGZhbHNlKSAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGFibGUgPSBmYWxzZTtcclxuICAvKiog2K3Yr9irINmK2K7YsdisINin2YTYtdmBINin2YTZhdit2K/ZkdivICovXHJcbiAgQE91dHB1dCgpIHJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgc2VsZWN0aW9uOiBUIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gLy8g2KfZhNmB2LHYslxyXG4gIHNvcnRGaWVsZD86IHN0cmluZztcclxuICBzb3J0T3JkZXI6IDEgfCAtMSA9IDE7XHJcblxyXG5ASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnNDAwcHgnO1xyXG5cclxuIEBJbnB1dCgpIHBhZ2luYXRvciA9IHRydWU7XHJcblxyXG5ASW5wdXQoKSBzZXJ2aWNlOiBCYXNlU2VydmljZXxhbnk7XHJcbkBJbnB1dCgpIGlkRmllbGQgPSAnaWQnO1xyXG5cclxuIEBJbnB1dCgpIHNob3dSb3dTZWxlY3Rpb25DaGVja2JveCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzaG93QWRkQnV0dG9uID0gdHJ1ZTtcclxuXHJcbkBJbnB1dCgpIGFkZFBlcm1pc3Npb25OYW1lPzpzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGFkZEJ1dHRvbkNvbmZpZ3M6IEJ1dHRvbkNvbmZpZ1tdID0gW1xyXG4gIHtcclxuICAgIGljb246ICdwaSBwaS1wbHVzJyxcclxuICAgIGxhYmVsOiAnQWRkJyxcclxuICAgIHZhcmlhbnQ6ICdyYWlzZWQnLFxyXG4gICAgc2V2ZXJpdHk6ICdwcmltYXJ5JyxcclxuICAgIHNpemU6ICdub3JtYWwnLFxyXG4gICAgYWN0aW9uTmFtZTogJ2FkZCcsXHJcbiAgICB2aXNpYmxlOiB0aGlzLnNob3dBZGRCdXR0b24sXHJcbiAgICBwZXJtaXNzaW9uOiB0aGlzLmFkZFBlcm1pc3Npb25OYW1lLFxyXG4gIH0sXHJcbl07XHJcbiAgQElucHV0KCkgYnVsa0FjdGlvbkJ1dHRvbnM6IEJ1dHRvbkNvbmZpZ1tdID0gW107XHJcbiAgQElucHV0KCkgc2luZ2xlQWN0aW9uQnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuXHJcbiBfc2VsZWN0ZWRSb3dzOiBUW10gPSBbXTtcclxuXHJcbmdldCBpc1NpbmdsZUl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzLmxlbmd0aCA9PT0gMTtcclxufVxyXG5cclxuZ2V0IGlzTXVsdGlwbGVJdGVtU2VsZWN0ZWQoKTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUm93cy5sZW5ndGggPiAxO1xyXG59XHJcblxyXG5nZXQgc2VsZWN0ZWRJdGVtcygpOiBUW10ge1xyXG4gIHJldHVybiB0aGlzLl9zZWxlY3RlZFJvd3M7XHJcbn1cclxuXHJcblxyXG5cclxuXHJcblxyXG5ASW5wdXQoKSBicmVhZGNydW1iOiBNZW51SXRlbVtdIHwgdW5kZWZpbmVkO1xyXG5cclxuXHJcbmdldCBicmVhZGNydW1iXygpOiBNZW51SXRlbVtdIHwgdW5kZWZpbmVkIHtcclxuICByZXR1cm4gdGhpcy5icmVhZGNydW1iPy5tYXAodiA9PiAoe1xyXG4gICAgLi4udixcclxuICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHYubGFiZWwgPz8gJycpXHJcbiAgfSkpO1xyXG59XHJcbmdldCBydGwoKTogYm9vbGVhbiB7XHJcbiAgdHJ5IHtcclxuICAgIHJldHVybiBkb2N1bWVudD8uZG9jdW1lbnRFbGVtZW50Py5kaXIgPT09ICdydGwnO1xyXG4gIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbn1cclxuXHJcbiAvKipcclxuICAgKiBIYW5kbGVzIGJ1dHRvbiBjbGljayBpbiBhIHVuaWZpZWQgd2F5LlxyXG4gICAqIC0gSWYgYnRuLmFjdGlvbiBpcyBkZWZpbmVkLCBleGVjdXRlIGl0LlxyXG4gICAqIC0gT3RoZXJ3aXNlLCBlbWl0IGV2ZW50IHdpdGggYWN0aW9uTmFtZSBvciBkZWZhdWx0ICdhZGQnLlxyXG4gICAqL1xyXG4gIGFzeW5jIGhhbmRsZUJ1dHRvbkNsaWNrKGJ0bjogQnV0dG9uQ29uZmlnKSB7XHJcbiAgICB0cnkge1xyXG4gICAgICBpZiAoYnRuLmFjdGlvbikge1xyXG4gICAgICAgIC8vIEV4ZWN1dGUgdGhlIHByb3ZpZGVkIGFjdGlvblxyXG4gICAgICAgIGF3YWl0IGJ0bi5hY3Rpb24obnVsbCk7IC8vIFlvdSBjYW4gcGFzcyByb3cgb3IgY29udGV4dCBoZXJlXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gRmFsbGJhY2sgdG8gZW1pdHRpbmcgZXZlbnRcclxuICAgICAgICB0aGlzLmFjdGlvbi5lbWl0KHtcclxuICAgICAgICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdhZGQnLFxyXG4gICAgICAgICAgcm93OiBudWxsISwgLy8gcHJvdmlkZSByb3cgaWYgYXZhaWxhYmxlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2ggKGVycikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdCdXR0b24gYWN0aW9uIGVycm9yJywgZXJyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4vLyAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAvKiog2KfZhNii2YYg2YrYqtmE2YLZkdmJIHBhZ2luYXRpb24gKyBzb3J0INmB2Yog2K3Yr9irINmI2KfYrdivICovXHJcbm9uTGF6eUxvYWQoZXZlbnQ6IFRhYmxlTGF6eUxvYWRFdmVudCkge1xyXG4gIC8vIHRoaXMubW9kZWxfPSB0aGlzLm1vZGVsID8/IHt9O1xyXG4gIHRoaXMubW9kZWw9IHRoaXMubW9kZWwgPz8ge307XHJcblxyXG4gIHRoaXMuZm9ybUZpZWxkc18gPSB0aGlzLmZvcm1GaWVsZHM7XHJcbiAgY29uc3QgZmlyc3QgICAgID0gZXZlbnQuZmlyc3QgID8/IHRoaXMuZmlyc3Q7XHJcbiAgY29uc3Qgcm93cyAgICAgID0gZXZlbnQucm93cyAgID8/IHRoaXMucm93cztcclxuICBjb25zdCBzb3J0RmllbGQgPSB0eXBlb2YgZXZlbnQuc29ydEZpZWxkID09PSAnc3RyaW5nJ1xyXG4gICAgICAgICAgICAgICAgICAgID8gZXZlbnQuc29ydEZpZWxkXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnRGaWVsZDtcclxuICBjb25zdCBzb3J0T3JkZXIgPSBldmVudC5zb3J0T3JkZXIgPT09IC0xID8gLTEgOiAxO1xyXG5cclxuXHJcbiAgY29uc3QgZmlsdGVyczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgaWYgKGV2ZW50LmZpbHRlcnMpIHtcclxuICAgICAgT2JqZWN0LmVudHJpZXMoZXZlbnQuZmlsdGVycykuZm9yRWFjaCgoW2ZpZWxkLCBtZXRhXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlID0gKG1ldGEgYXMgYW55KS52YWx1ZTtcclxuICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCAmJiB2YWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgIGZpbHRlcnNbZmllbGRdID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgdGhpcy5maXJzdCAgICAgPSBmaXJzdDtcclxuICB0aGlzLnJvd3MgICAgICA9IHJvd3M7XHJcbiAgdGhpcy5zb3J0RmllbGQgPSBzb3J0RmllbGQ7XHJcbiAgdGhpcy5zb3J0T3JkZXIgPSBzb3J0T3JkZXIgYXMgMXwgLTE7XHJcbmNvbnN0IGRpciA9IHNvcnRPcmRlciA9PT0gMSA/ICdhc2MnIDogJ2Rlc2MnO1xyXG4gY29uc3Qgc29ydCA9IHNvcnRGaWVsZCA/IGAke3NvcnRGaWVsZH0gJHtkaXJ9YCA6IHVuZGVmaW5lZDtcclxuXHJcbiAgdGhpcy5wYWdlQ2hhbmdlLmVtaXQoeyBmaXJzdCwgcm93cyAsc29ydCwgZmlsdGVycyB9KTtcclxuXHJcbiAgLy8g2YrYqNmG2Yog2KfZhNmG2LUg2YjYpdix2LPYp9mE2YdcclxuXHJcbn1cclxuXHJcblxyXG4gIC8qKiDYqti12YrZitixINin2YTYqNmK2KfZhtin2Kog2K3Ys9ioINin2YTYtdmB2K3YqSAqL1xyXG4gIGdldCBwYWdlZERhdGEoKTogVFtdIHtcclxuICAgIC8vIHJldHVybiB0aGlzLmRhdGEgPyB0aGlzLmRhdGEuc2xpY2UodGhpcy5maXJzdCwgdGhpcy5maXJzdCArIHRoaXMucm93cykgOiBbXTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5kYXRhO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0IGdsb2JhbEZpbHRlckZpZWxkcygpOiBzdHJpbmdbXSB7XHJcbiAgcmV0dXJuIHRoaXMuY29sdW1ucy5tYXAoYyA9PiBTdHJpbmcoYy5rZXkpKTtcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgLyoqINij2LHYs9mEINil2YTZiSDYp9mE2KPYqCDZhNij2KrZhdiq2Kkg2LTZg9mEINin2YTYqNit2Ksg2KXYsNinINmK2K3Yqtin2KwgKi9cclxuLy8gZnJvbSBnZW5lcmljLWNydWQtdGFibGUuY29tcG9uZW50LnRzXHJcblxyXG4vKiog2KjYr9mR2YQgYXBwbHlTZWFyY2gg2YTYqtio2KsgcGFnZUNoYW5nZSDZhdio2KfYtNix2KnZiyAqL1xyXG4gYXBwbHlTZWFyY2goZmlsdGVyczogYW55KSB7XHJcbiAgICAvLyB0aGlzLmdlbmVyaWNUYWJsZS5hcHBseUZpbHRlcihnbG9iYWwpO1xyXG4gICAgICB0aGlzLm9uU2VhcmNoLmVtaXQoZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuXHJcbiAvKiog2K/Yp9mE2Kkg2KrZhtmB2ZHYsCDYudmG2K8g2KfZhNmG2YLYsSDYudmE2Ykg2LXZgSAqL1xyXG4gIG9uUm93Q2xpY2socm93OiBUKSB7XHJcbiAgICBpZiAodGhpcy5yb3dTZWxlY3RhYmxlKSB7XHJcbiAgICAgIHRoaXMucm93U2VsZWN0LmVtaXQocm93KTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAgQElucHV0KCkgYmVmb3JlU2F2ZTogKHJlY29yZDogVCkgPT4gVCA9IChyZWNvcmQpID0+IHJlY29yZDtcclxuXHJcbm9uU3VibWl0KCkge1xyXG4gIGlmICh0aGlzLmZvcm0uaW52YWxpZCkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBzYXZlID0gKCkgPT4ge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gbnVsbDtcclxuXHJcbiAgICBjb25zdCBpZCA9IHRoaXMuaXNFZGl0TW9kZSA/ICh0aGlzLm1vZGVsIGFzIGFueSlbdGhpcy5pZEZpZWxkXSA6IG51bGw7XHJcbiAgICBjb25zdCByZWNvcmRUb1NhdmUgPSB0aGlzLmJlZm9yZVNhdmUoeyAuLi50aGlzLm1vZGVsIH0pO1xyXG5cclxuICAgIGNvbnN0IG9wZXJhdGlvbiQgPSB0aGlzLmlzRWRpdE1vZGVcclxuICAgICAgPyB0aGlzLnNlcnZpY2UudXBkYXRlKGlkLCByZWNvcmRUb1NhdmUpXHJcbiAgICAgIDogdGhpcy5zZXJ2aWNlLmNyZWF0ZShyZWNvcmRUb1NhdmUpO1xyXG5cclxuICAgIG9wZXJhdGlvbiQuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyDinIUg2LHYs9in2YTYqSDZhtis2KfYrVxyXG4gICAgICAgIHRoaXMuc3dhbFNlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgICAgIHRoaXMuaXNFZGl0TW9kZSA/ICfYqtmFINin2YTYqti52K/ZitmEINio2YbYrNin2K0nIDogJ9iq2YUg2KfZhNit2YHYuCDYqNmG2KzYp9itJ1xyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMudmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLmFwcGx5U2VhcmNoKCcnKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAvLyDinYwg2YXYpyDZhti52LHYtiDYsdiz2KfZhNipINiu2LfYoyDZh9mG2Kcg2YTYo9mGINin2YTZgCBpbnRlcmNlcHRvciDZitiq2YPZgdmEINmB2YrZh9inXHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIGlmICh0aGlzLnVzZUNvbmZpcm1PblNhdmUpIHtcclxuICAgIHRoaXMuc3dhbFNlcnZpY2UuY29uZmlybShcclxuICAgICAgdGhpcy5pc0VkaXRNb2RlID8gJ9iq2KPZg9mK2K8g2KfZhNiq2LnYr9mK2YQnIDogJ9iq2KPZg9mK2K8g2KfZhNit2YHYuCcsXHJcbiAgICAgIHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICAgID8gJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INin2YTYqti52K/ZitmE2KfYqiDYudmE2Ykg2YfYsNinINin2YTYs9is2YTYnydcclxuICAgICAgICA6ICfZh9mEINiq2LHZitivINit2YHYuCDZh9iw2Kcg2KfZhNiz2KzZhNifJyxcclxuICAgICAgJ9mG2LnZhScsXHJcbiAgICAgICfYpdmE2LrYp9ihJ1xyXG4gICAgKS50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgIGlmIChyZXN1bHQuaXNDb25maXJtZWQpIHtcclxuICAgICAgICBzYXZlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICBzYXZlKCk7XHJcbiAgfVxyXG59XHJcblxyXG4gICAgIHRyYWNrQnlJZHgoaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogbnVtYmVyIHtcclxuICByZXR1cm4gaW5kZXg7XHJcbiB9XHJcblxyXG5vblNpbmdsZUl0ZW1BY3Rpb24oYnRuOiBCdXR0b25Db25maWcpOiB2b2lkIHtcclxuICBpZiAoIXRoaXMuaXNTaW5nbGVJdGVtU2VsZWN0ZWQpIHJldHVybjtcclxuXHJcbiAgY29uc3Qgc2VsZWN0ZWRJdGVtID0gdGhpcy5fc2VsZWN0ZWRSb3dzWzBdO1xyXG4gIHRoaXMuc2luZ2xlQWN0aW9uLmVtaXQoe1xyXG4gICAgbmFtZTogYnRuLmFjdGlvbk5hbWUgPz8gJ3NpbmdsZUFjdGlvbicsXHJcbiAgICBpdGVtOiBzZWxlY3RlZEl0ZW1cclxuICB9KTtcclxufVxyXG5cclxub25JbnRlcm5hbEJ1bGtBY3Rpb24oYnRuOiBCdXR0b25Db25maWcpOiB2b2lkIHtcclxuICBpZiAoIXRoaXMuaXNNdWx0aXBsZUl0ZW1TZWxlY3RlZCkgcmV0dXJuO1xyXG5cclxuICB0aGlzLmJ1bGtBY3Rpb24uZW1pdCh7XHJcbiAgICBuYW1lOiBidG4uYWN0aW9uTmFtZSA/PyAnYnVsa0FjdGlvbicsXHJcbiAgICBpdGVtczogWy4uLnRoaXMuX3NlbGVjdGVkUm93c10gIC8vINmG2LHYs9mEINmG2LPYrtipINmF2YYg2KfZhNmF2LXZgdmI2YHYqVxyXG4gIH0pO1xyXG59XHJcblxyXG5cclxufVxyXG4iLCJcclxuIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLXN0YXJ0IGdhcC0yIGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgICAgICAgICA8ZGl2PlxyXG5cclxuPGFwcC1icmVhZGNydW1iIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgW2JyZWFkY3J1bWJdPVwiYnJlYWRjcnVtYl9cIj48L2FwcC1icmVhZGNydW1iPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIganVzdGlmeS1lbmQgZmxleC13cmFwXCI+XHJcbiAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaW5nbGVJdGVtU2VsZWN0ZWRcIj5cclxuIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBzaW5nbGVBY3Rpb25CdXR0b25zOyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XHJcbiAgQGlmICghYnRuLnZpc2libGUgfHwgKCBidG4udmlzaWJsZSAmJiAgYnRuLnZpc2libGUgPT09IHRydWUpKSB7XHJcbiA8bGliLWdlbmVyaWMtYnV0dG9uXHJcbiAgW2ljb25dPVwiYnRuLmljb25cIlxyXG5bbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuW3ZhcmlhbnRdPVwiYnRuLnZhcmlhbnRcIlxyXG4gW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gW21vZGVsXT1cImJ0bi5zcGxpdEFjdGlvbnNcIlxyXG4gW3Blcm1pc3Npb25dPVwiYnRuLnBlcm1pc3Npb25cIlxyXG4gKGNsaWNrZWQpPVwib25TaW5nbGVJdGVtQWN0aW9uKGJ0bilcIlxyXG4gPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gIH1cclxuPC9uZy1jb250YWluZXI+XHJcbiA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGJ0biBvZiBidWxrQWN0aW9uQnV0dG9uczsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxyXG4gICAgICAgIEBpZiAoIWJ0bi52aXNpYmxlIHx8ICggYnRuLnZpc2libGUgJiYgIGJ0bi52aXNpYmxlID09PSB0cnVlKSkge1xyXG4gICAgICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxyXG4gICAgICAgICAgW2xhYmVsXT1cImJ0bi5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICBbdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiAgICAgICAgICBbc2l6ZV09XCJidG4uc2l6ZVwiXHJcbiAgICAgICAgICBbbW9kZWxdPVwiYnRuLnNwbGl0QWN0aW9uc1wiXHJcbiAgICAgICAgICBbcGVybWlzc2lvbl09XCJidG4ucGVybWlzc2lvblwiXHJcbiAgICAgICAgICAoY2xpY2tlZCk9XCJvbkludGVybmFsQnVsa0FjdGlvbihidG4pXCJcclxuICAgICAgICA+PC9saWItZ2VuZXJpYy1idXR0b24+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIGFkZEJ1dHRvbkNvbmZpZ3M7IHRyYWNrQnk6IHRyYWNrQnlJZHhcIj5cclxuICAgICAgICBAaWYgKCFidG4udmlzaWJsZSB8fCAoIGJ0bi52aXNpYmxlICYmICBidG4udmlzaWJsZSA9PT0gdHJ1ZSkpIHtcclxuICAgICAgPGxpYi1nZW5lcmljLWJ1dHRvblxyXG4gICAgICAgIFtpY29uXT1cImJ0bi5pY29uXCJcclxuICAgICAgICBbbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICBbdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiAgICAgICAgW3NpemVdPVwiYnRuLnNpemVcIlxyXG4gICAgICAgIFttb2RlbF09XCJidG4uc3BsaXRBY3Rpb25zXCJcclxuICAgICAgICBbcGVybWlzc2lvbl09XCJidG4ucGVybWlzc2lvblwiXHJcbiAgICAgICAgKGNsaWNrZWQpPVwiaGFuZGxlQnV0dG9uQ2xpY2soYnRuKVwiXHJcbiAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgbWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1NlYXJjaCAmJiBmaWx0ZXJzOyBlbHNlIGVtcHR5U2VhcmNoXCI+XHJcbiAgICAgICAgICAgPGxpYi1nZW5lcmljLXNlYXJjaFxyXG4gICAgICAgICAgICAgICAgW21vZGVsXT1cImZpbHRlck1vZGVsXCJcclxuICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwiZmlsdGVyc1wiXHJcbiAgICAgICAgICAgICAgICAoc2VhcmNoKT1cImFwcGx5U2VhcmNoKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHJlc2V0KT1cImFwcGx5U2VhcmNoKCcnKVwiXHJcbiAgICAgICAgICAgICAgPjwvbGliLWdlbmVyaWMtc2VhcmNoPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlTZWFyY2g+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxyXG5cclxuICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXJlZnJlc2hcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIChvbkNsaWNrKT1cImFwcGx5U2VhcmNoKCcnKVwiIC8+XHJcbiAgICAgICAgICAgICAgPHAtZGl2aWRlciBsYXlvdXQ9XCJ2ZXJ0aWNhbFwiICBjbGFzcz1cIm0tMCBwLTAgeHM6YmxvY2sgaGlkZGVuXCIgLz5cclxuICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLXNvcnRcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBsYWJlbD1cIjEgb2YgMTVcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgIC8+XHJcbiAgICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZXZyb24tcmlnaHRcIiBvdXRsaW5lZCBzZXZlcml0eT1cInNlY29uZGFyeVwiIGNsYXNzPVwieHM6YmxvY2sgaGlkZGVuXCIgIC8+XHJcbiAgICAgICAgICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZXZyb24tbGVmdFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG5cclxuPGxpYi1nZW5lcmljLXRhYmxlXHJcbltkYXRhXT1cImRhdGFcIlxyXG5bY29sdW1uc109XCJjb2x1bW5zXCJcclxuW3BhZ2luYXRvcl09XCJwYWdpbmF0b3JcIlxyXG5bbG9hZGluZ109XCJsb2FkaW5nXCJcclxuW2FjdGlvbnNdPVwiYWN0aW9uc1wiXHJcblthY3Rpb25zTW9kZV09XCJhY3Rpb25zTW9kZVwiXHJcbltmaXJzdF09XCJmaXJzdFwiXHJcbltyb3dzXT1cInJvd3NcIlxyXG5bdG90YWxSZWNvcmRzXT1cInRvdGFsUmVjb3Jkc1wiXHJcbltzb3J0RmllbGRdPVwic29ydEZpZWxkXCJcclxuW3NvcnRPcmRlcl09XCJzb3J0T3JkZXJcIlxyXG5bYWRkQnV0dG9uQ29uZmlnc109XCJhZGRCdXR0b25Db25maWdzXCJcclxuICBbZ2xvYmFsRmlsdGVyRmllbGRzXT1cImdsb2JhbEZpbHRlckZpZWxkc1wiXHJcbiAgW3Njcm9sbEhlaWdodF09XCJzY3JvbGxIZWlnaHRcIlxyXG4gIFtzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hdPVwic2hvd1Jvd1NlbGVjdGlvbkNoZWNrYm94XCJcclxuICAoYWN0aW9uKT1cImFjdGlvbi5lbWl0KCRldmVudClcIlxyXG4gIChvbkFkZE5ldyk9XCJhY3Rpb24uZW1pdCh7IG5hbWU6ICdhZGQnLCByb3c6IG51bGwhIH0pXCJcclxuICAocGFnZUNoYW5nZSk9XCJvbkxhenlMb2FkKCRldmVudClcIlxyXG4gIFtyb3dTZWxlY3RhYmxlXT1cInJvd1NlbGVjdGFibGVcIlxyXG4gIChyb3dTZWxlY3QpPVwib25Sb3dDbGljaygkZXZlbnQpXCJcclxuICBbKHNlbGVjdGlvbildPVwiX3NlbGVjdGVkUm93c1wiXHJcbiAgI2dlbmVyaWNUYWJsZVxyXG4+PC9saWItZ2VuZXJpYy10YWJsZT5cclxuXHJcblxyXG5cclxuXHJcbjwhLS0gRHJhd2VyIC0tPlxyXG48cC1kcmF3ZXJcclxuICAqbmdJZj1cIih0eXBlb2YgZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnID8gZGlzcGxheU1vZGUgOiBpc0VkaXRNb2RlID8gZGlzcGxheU1vZGVbJ2VkaXQnXSA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gZGlzcGxheU1vZGVbJ2FkZCddIDogZGlzcGxheU1vZGVbJ3ZpZXcnXSAgKSA9PT0gJ2RyYXdlcicgJiYgZHJhd2VyVmlzaWJsZVwiXHJcbiAgWyh2aXNpYmxlKV09XCJkcmF3ZXJWaXNpYmxlXCJcclxuICBbY2xvc2FibGVdPVwidHJ1ZVwiXHJcbiAgW2Rpc21pc3NpYmxlXT1cImZhbHNlXCJcclxuICBbY2xvc2VPbkVzY2FwZV09XCJ0cnVlXCJcclxuICAodmlzaWJsZUNoYW5nZSk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXHJcbiAgc3R5bGVDbGFzcz1cIiF3LWZ1bGwgbWQ6IXctODAgbGc6IXctWzQwcmVtXVwiPlxyXG5cclxuICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImZvbnQtYm9sZCB0ZXh0LWxnXCI+XHJcbiAgICAgIHt7IGlzRWRpdE1vZGUgPyAnVVBEQVRFJyA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gJ0FERCcgOiAnVklFVycgfX1cclxuICAgIDwvc3Bhbj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48IS0tIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCIgLS0+XHJcbiAgPGZvcm0gKm5nSWY9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgIGNsYXNzPVwicC00XCI+XHJcbiAgICA8Zm9ybWx5LWZvcm0gW2Zvcm1dPVwiZm9ybVwiIFtmaWVsZHNdPVwiZm9ybUZpZWxkc19cIiBbbW9kZWxdPVwibW9kZWxcIiBbb3B0aW9uc109XCJvcHRpb25zXCI+PC9mb3JtbHktZm9ybT5cclxuICA8L2Zvcm0+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIiAqbmdJZj1cIiFpc1ZpZXdNb2RlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBnYXAtMlwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIFtsYWJlbF09XCJpc0VkaXRNb2RlID8gKCdVUERBVEUnIHwgdHJhbnNsYXRlKSA6ICgnU0FWRScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmcgfHwgZm9ybS5pbnZhbGlkXCJcclxuICAgICAgICBbbG9hZGluZ109XCJsb2FkaW5nXCI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIGxhYmVsPVwie3sgJ0NBTkNFTCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAgIHNldmVyaXR5PVwiZGFuZ2VyXCJcclxuICAgICAgICAoY2xpY2spPVwidmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKVwiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1kcmF3ZXI+XHJcblxyXG48IS0tIERpYWxvZyAtLT5cclxuPHAtZGlhbG9nXHJcbiAgKm5nSWY9XCIodHlwZW9mIGRpc3BsYXlNb2RlID09PSAnc3RyaW5nJyA/IGRpc3BsYXlNb2RlIDogaXNFZGl0TW9kZSA/IGRpc3BsYXlNb2RlWydlZGl0J10gOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/IGRpc3BsYXlNb2RlWydhZGQnXSA6IGRpc3BsYXlNb2RlWyd2aWV3J10gICkgPT09ICdkaWFsb2cnICYmIGRpYWxvZ1Zpc2libGVcIlxyXG4gIFsodmlzaWJsZSldPVwiZGlhbG9nVmlzaWJsZVwiXHJcbiAgW21vZGFsXT1cInRydWVcIlxyXG4gIFtjbG9zYWJsZV09XCJ0cnVlXCJcclxuICBbZGlzbWlzc2FibGVNYXNrXT1cInRydWVcIlxyXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cInZpc2libGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICBbc3R5bGVdPVwieyB3aWR0aDogJzk1dncnLCBtYXhXaWR0aDogZGlhbG9nTWF4V2lkdGggfVwiXHJcbiAgW2hlYWRlcl09XCJpc0VkaXRNb2RlID8gJ1VQREFURScgOiBpc1ZpZXdNb2RlID09PSBmYWxzZSA/ICdBREQnIDogdmlld0hlYWRlclRpdGxlXCI+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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"}
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 * 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 useConfirmOnSave = false;\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 showAddButton = true;\n addPermissionName;\n addButtonConfigs = [\n {\n icon: 'pi pi-plus',\n label: 'ADD',\n variant: 'raised',\n severity: 'primary',\n size: 'small',\n actionName: 'add',\n visible: this.showAddButton,\n permission: this.addPermissionName,\n },\n ];\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 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 /**\n * Handles button click in a unified way.\n * - If btn.action is defined, execute it.\n * - Otherwise, emit event with actionName or default 'add'.\n */\n async handleButtonClick(btn) {\n try {\n if (btn.action) {\n // Execute the provided action\n await btn.action(null); // You can pass row or context here\n }\n else {\n // Fallback to emitting event\n this.action.emit({\n name: btn.actionName ?? 'add',\n row: null, // provide row if available\n });\n }\n }\n catch (err) {\n console.error('Button action error', err);\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)\n return;\n const save = () => {\n this.loading = true;\n this.errorMessage = null;\n const id = this.isEditMode ? this.model[this.idField] : null;\n const recordToSave = this.beforeSave({ ...this.model });\n const operation$ = this.isEditMode\n ? this.service.update(id, recordToSave)\n : this.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: () => {\n // ❌ ما نعرض رسالة خطأ هنا لأن الـ interceptor يتكفل فيها\n this.loading = false;\n }\n });\n };\n if (this.useConfirmOnSave) {\n this.swalService.confirm(this.isEditMode ? 'تأكيد التعديل' : 'تأكيد الحفظ', this.isEditMode\n ? 'هل تريد حفظ التعديلات على هذا السجل؟'\n : 'هل تريد حفظ هذا السجل؟', 'نعم', 'إلغاء').then(result => {\n if (result.isConfirmed) {\n save();\n }\n });\n }\n else {\n save();\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\", useConfirmOnSave: \"useConfirmOnSave\", 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\", showAddButton: \"showAddButton\", addPermissionName: \"addPermissionName\", addButtonConfigs: \"addButtonConfigs\", bulkActionButtons: \"bulkActionButtons\", singleActionButtons: \"singleActionButtons\", 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 xs: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\\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"handleButtonClick(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\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 </ng-template>\\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[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[addButtonConfigs]=\\\"addButtonConfigs\\\"\\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 ? 'UPDATE' : isViewMode === false ? ('ADD' | translate): ('VIEW' | translate) }}\\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 ? ('UPDATE' | translate) : isViewMode === false ? ('ADD'| translate) : 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: [\"model\", \"fields\"], outputs: [\"search\"] }, { kind: \"component\", type: GenericTable, selector: \"lib-generic-table\", inputs: [\"data\", \"columns\", \"loading\", \"actions\", \"actionsMode\", \"first\", \"rows\", \"totalRecords\", \"sortField\", \"sortOrder\", \"globalFilterFields\", \"addButtonConfigs\", \"scrollHeight\", \"rowSelectable\", \"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: \"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 ], host: {\n class: 'h-full flex-1 flex flex-col overflow-hidden border border-surface rounded-2xl xs:rounded-2xl p-4 bg-white'\n }, template: \"\\r\\n <div class=\\\"flex items-start gap-2 justify-between\\\">\\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onSingleItemAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\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 @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"onInternalBulkAction(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\r\\n </ng-container>\\r\\n\\r\\n <ng-container *ngFor=\\\"let btn of addButtonConfigs; trackBy: trackByIdx\\\">\\r\\n @if (!btn.visible || ( btn.visible && btn.visible === true)) {\\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 [model]=\\\"btn.splitActions\\\"\\r\\n [permission]=\\\"btn.permission\\\"\\r\\n (clicked)=\\\"handleButtonClick(btn)\\\"\\r\\n ></lib-generic-button>\\r\\n }\\r\\n </ng-container>\\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 </ng-template>\\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[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[addButtonConfigs]=\\\"addButtonConfigs\\\"\\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 ? 'UPDATE' : isViewMode === false ? ('ADD' | translate): ('VIEW' | translate) }}\\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 ? ('UPDATE' | translate) : isViewMode === false ? ('ADD'| translate) : 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 }], useConfirmOnSave: [{\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 }], showAddButton: [{\n type: Input\n }], addPermissionName: [{\n type: Input\n }], addButtonConfigs: [{\n type: Input\n }], bulkActionButtons: [{\n type: Input\n }], singleActionButtons: [{\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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O2dCQUNHLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUMsYUFBYTtzQkFBdEIsTUFBTTtnQkFJSSxhQUFhO3NCQUFyQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBUUEsWUFBWTtzQkFBcEIsS0FBSztnQkFFSSxTQUFTO3NCQUFqQixLQUFLO2dCQUVFLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUVJLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRUMsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVLLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFZRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQW9CQyxVQUFVO3NCQUFsQixLQUFLO2dCQWlITSxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXggKi9cclxuLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmUgKi9cclxuaW1wb3J0IHsgQnJlYWRjcnVtYiB9IGZyb20gJ3ByaW1lbmcvYnJlYWRjcnVtYic7XHJcbmltcG9ydCB7IERpdmlkZXJNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpdmlkZXInO1xyXG4vLyBzcmMvYXBwL3NoYXJlZC9nZW5lcmljLWNydWQtdGFibGUvZ2VuZXJpYy1jcnVkLXRhYmxlLmNvbXBvbmVudC50c1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVmlld0NoaWxkLCBpbmplY3QsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTWVzc2FnZU1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvbWVzc2FnZSc7XHJcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcclxuaW1wb3J0IHsgUGFnaW5hdG9yU3RhdGUgfSBmcm9tICdwcmltZW5nL3BhZ2luYXRvcic7XHJcbmltcG9ydCB7IFRhYmxlTW9kdWxlLFRhYmxlTGF6eUxvYWRFdmVudCAgfSAgZnJvbSAncHJpbWVuZy90YWJsZSc7XHJcbmltcG9ydCB7IFRvb2xiYXJNb2R1bGUgfSAgIGZyb20gJ3ByaW1lbmcvdG9vbGJhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybSwgRm9ybWx5Rm9ybU9wdGlvbnMgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcclxuaW1wb3J0IHsgSWNvbkZpZWxkTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9pY29uZmllbGQnO1xyXG5pbXBvcnQgeyBNZW51SXRlbSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRHJhd2VyTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9kcmF3ZXInO1xyXG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdwcmltZW5nL2RpYWxvZyc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBCdXR0b25Db25maWcgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU3dhbFNlcnZpY2UgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBY3Rpb25EZWYgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9icmVhZGNydW1iJztcclxuaW1wb3J0IHsgR2VuZXJpY0J1dHRvbiB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLWJ1dHRvbic7XHJcbmltcG9ydCB7IEdlbmVyaWNUYWJsZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXRhYmxlJztcclxuaW1wb3J0IHsgR2VuZXJpY1NlYXJjaCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcudWkuY29yZS9nZW5lcmljLXNlYXJjaCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VDaGFuZ2VQYXlsb2FkIGV4dGVuZHMgUGFnaW5hdG9yU3RhdGUge1xyXG5zb3J0Pzogc3RyaW5nO1xyXG5maWx0ZXJzPzogUmVjb3JkPHN0cmluZywgYW55PjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQWN0aW9uc01vZGUgPSAnYnV0dG9ucycgfCAnbWVudSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1nZW5lcmljLWNydWQtdGFibGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVGFibGVNb2R1bGUsXHJcbiAgICBHZW5lcmljQnV0dG9uLFxyXG4gICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgR2VuZXJpY1NlYXJjaCxcclxuICAgIEdlbmVyaWNUYWJsZSxcclxuICAgIFRvb2xiYXJNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUsXHJcbiAgICBEaXZpZGVyTW9kdWxlLFxyXG4gICAgSWNvbkZpZWxkTW9kdWxlLFxyXG4gICAgRHJhd2VyTW9kdWxlLFxyXG4gICAgRm9ybWx5Rm9ybSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIE1lc3NhZ2VNb2R1bGUsXHJcbiAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxyXG4gICAgRGlhbG9nTW9kdWxlLFxyXG5dLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nZW5lcmljLWNydWQtdGFibGUuaHRtbCcsXHJcbiAgIGhvc3Q6IHtcclxuICAgICAgICBjbGFzczogJ2gtZnVsbCBmbGV4LTEgZmxleCBmbGV4LWNvbCBvdmVyZmxvdy1oaWRkZW4gYm9yZGVyIGJvcmRlci1zdXJmYWNlIHJvdW5kZWQtMnhsIHhzOnJvdW5kZWQtMnhsIHAtNCBiZy13aGl0ZSdcclxuICAgIH0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY0NydWRUYWJsZUNvbXBvbmVudDxUPiB7XHJcbiBAVmlld0NoaWxkKCdnZW5lcmljVGFibGUnKSBnZW5lcmljVGFibGUhOiBHZW5lcmljVGFibGU8VD47XHJcbiB0cmFuc2xhdGU6VHJhbnNsYXRlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcclxuIHByaXZhdGUgc3dhbFNlcnZpY2UgPSBpbmplY3QoU3dhbFNlcnZpY2UpO1xyXG5cclxuICAgIGhvbWU6IE1lbnVJdGVtIHwgdW5kZWZpbmVkID0geyBpY29uOiAncGkgcGktaG9tZScsIHJvdXRlckxpbms6ICcvJyB9O1xyXG4gIEBJbnB1dCgpIGRhdGE6IFRbXSA9IFtdO1xyXG4gICBmb3JtRmllbGRzXzogRm9ybWx5RmllbGRDb25maWdbXSA9IFtdOyAgLy8gPC0tINmH2YbYp1xyXG4gIEBJbnB1dCgpIGZvcm1GaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgIC8vIDwtLSDZh9mG2KdcclxuICBASW5wdXQoKSBjb2x1bW5zOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gW107ICAvLyA8LS0g2YfZhtinXHJcbiAgQElucHV0KCkgZGlhbG9nTWF4V2lkdGggPSAnNDByZW0nOyAvLyB1bnNldCAsIGZpdC1jb250ZW50XHJcbiAgQElucHV0KCkgaXNWaWV3TW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXlNb2RlOlxyXG4gIHwgJ2RyYXdlcicgfCAnZGlhbG9nJyB8ICdyb3V0ZSdcclxuICB8IFBhcnRpYWw8UmVjb3JkPCdhZGQnIHwgJ2VkaXQnIHwgJ3ZpZXcnLCAnZHJhd2VyJyB8ICdkaWFsb2cnIHwgJ3JvdXRlJz4+XHJcbiAgPSAnZHJhd2VyJztcclxuICBASW5wdXQoKSB1c2VDb25maXJtT25TYXZlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNFZGl0TW9kZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRyYXdlclZpc2libGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaWFsb2dWaXNpYmxlID0gZmFsc2U7XHJcbiAgIGZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XHJcbiBASW5wdXQoKSBtb2RlbDogYW55O1xyXG4gIG1vZGVsXzogYW55ID0ge307XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVycm9yTXNnID0gJyc7XHJcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlOiBzdHJpbmd8YW55ID0gJyc7XHJcblxyXG5vcHRpb25zOiBGb3JtbHlGb3JtT3B0aW9ucyA9IHt9O1xyXG5cclxuICBASW5wdXQoKSBhY3Rpb25zOiBBY3Rpb25EZWY8VD5bXSA9IFtdO1xyXG4gICAgLyoqINiq2K3Yr9ivINi32LHZitmC2Kkg2KfZhNi52LHYtjogJ2J1dHRvbnMnINij2YggJ21lbnUnICovXHJcbiAgQElucHV0KCkgYWN0aW9uc01vZGU6IEFjdGlvbnNNb2RlID0gJ2J1dHRvbnMnO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHsgbmFtZTogc3RyaW5nOyByb3c6IFQgfT4oKTtcclxuICBAT3V0cHV0KCkgYnVsa0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8eyBuYW1lOiBzdHJpbmc7IGl0ZW1zOiBUW10gfT4oKTtcclxuICBAT3V0cHV0KCkgc2luZ2xlQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx7IG5hbWU6IHN0cmluZzsgaXRlbTogVCB9PigpO1xyXG5cclxuICAvLyDYp9mE2KjYrdirXHJcbi8vIFNlYXJjaFxyXG4gIEBJbnB1dCgpIGZpbHRlcnM6IGFueTtcclxuICAgQElucHV0KCkgZmlsdGVyTW9kZWw6IGFueSA9IHt9O1xyXG4gIEBPdXRwdXQoKSBzZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPHsgZmllbGQ6IHN0cmluZzsgZ2xvYmFsOiBzdHJpbmcgfT4oKTtcclxuXHJcbi8qKiDZhNmE2KrYrdmD2YUg2KjYpdi42YfYp9ixL9il2K7Zgdin2KEg2YLYs9mFINin2YTYqNit2KsgKi9cclxuICBASW5wdXQoKSBzaG93U2VhcmNoID0gdHJ1ZTtcclxuXHJcbiAgLyoqIFBhZ2luYXRpb24gSW5wdXRzICovXHJcbiAgQElucHV0KCkgZmlyc3QgPSAwO1xyXG4gIEBJbnB1dCgpIHJvd3MgPSAxMDtcclxuICBASW5wdXQoKSB0b3RhbFJlY29yZHMgPSAwO1xyXG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxQYWdlQ2hhbmdlUGF5bG9hZD4oKTtcclxuICBAT3V0cHV0KCkgb25TZWFyY2ggPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbkBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7O1xyXG4vLyBAT3V0cHV0KCkgdmlzaWJsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxudmlld0hlYWRlclRpdGxlID0gJ9i52LHYtiDYp9mE2KrZgdin2LXZitmEJztcclxuICAgLyoqINmE2KzYudmEINin2YTYrNiv2YjZhCDZgtin2KjZhCDZhNin2K7YqtmK2KfYsSDYp9mE2LXZgdmI2YEgKNin2YHYqtix2KfYttmKIGZhbHNlKSAqL1xyXG4gIEBJbnB1dCgpIHJvd1NlbGVjdGFibGUgPSBmYWxzZTtcclxuICAvKiog2K3Yr9irINmK2K7YsdisINin2YTYtdmBINin2YTZhdit2K/ZkdivICovXHJcbiAgQE91dHB1dCgpIHJvd1NlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcclxuXHJcbiAgc2VsZWN0aW9uOiBUIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gLy8g2KfZhNmB2LHYslxyXG4gIHNvcnRGaWVsZD86IHN0cmluZztcclxuICBzb3J0T3JkZXI6IDEgfCAtMSA9IDE7XHJcblxyXG5ASW5wdXQoKSBzY3JvbGxIZWlnaHQgPSAnNDAwcHgnO1xyXG5cclxuIEBJbnB1dCgpIHBhZ2luYXRvciA9IHRydWU7XHJcblxyXG5ASW5wdXQoKSBzZXJ2aWNlOiBCYXNlU2VydmljZXxhbnk7XHJcbkBJbnB1dCgpIGlkRmllbGQgPSAnaWQnO1xyXG5cclxuIEBJbnB1dCgpIHNob3dSb3dTZWxlY3Rpb25DaGVja2JveCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBzaG93QWRkQnV0dG9uID0gdHJ1ZTtcclxuXHJcbkBJbnB1dCgpIGFkZFBlcm1pc3Npb25OYW1lPzpzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGFkZEJ1dHRvbkNvbmZpZ3M6IEJ1dHRvbkNvbmZpZ1tdID0gW1xyXG4gIHtcclxuICAgIGljb246ICdwaSBwaS1wbHVzJyxcclxuICAgIGxhYmVsOiAnQUREJyxcclxuICAgIHZhcmlhbnQ6ICdyYWlzZWQnLFxyXG4gICAgc2V2ZXJpdHk6ICdwcmltYXJ5JyxcclxuICAgIHNpemU6ICdzbWFsbCcsXHJcbiAgICBhY3Rpb25OYW1lOiAnYWRkJyxcclxuICAgIHZpc2libGU6IHRoaXMuc2hvd0FkZEJ1dHRvbixcclxuICAgIHBlcm1pc3Npb246IHRoaXMuYWRkUGVybWlzc2lvbk5hbWUsXHJcbiAgfSxcclxuXTtcclxuICBASW5wdXQoKSBidWxrQWN0aW9uQnV0dG9uczogQnV0dG9uQ29uZmlnW10gPSBbXTtcclxuICBASW5wdXQoKSBzaW5nbGVBY3Rpb25CdXR0b25zOiBCdXR0b25Db25maWdbXSA9IFtdO1xyXG5cclxuIF9zZWxlY3RlZFJvd3M6IFRbXSA9IFtdO1xyXG5cclxuZ2V0IGlzU2luZ2xlSXRlbVNlbGVjdGVkKCk6IGJvb2xlYW4ge1xyXG4gIHJldHVybiB0aGlzLl9zZWxlY3RlZFJvd3MubGVuZ3RoID09PSAxO1xyXG59XHJcblxyXG5nZXQgaXNNdWx0aXBsZUl0ZW1TZWxlY3RlZCgpOiBib29sZWFuIHtcclxuICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRSb3dzLmxlbmd0aCA+IDE7XHJcbn1cclxuXHJcbmdldCBzZWxlY3RlZEl0ZW1zKCk6IFRbXSB7XHJcbiAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkUm93cztcclxufVxyXG5cclxuXHJcblxyXG5cclxuXHJcbkBJbnB1dCgpIGJyZWFkY3J1bWI6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQ7XHJcblxyXG5cclxuZ2V0IGJyZWFkY3J1bWJfKCk6IE1lbnVJdGVtW10gfCB1bmRlZmluZWQge1xyXG4gIHJldHVybiB0aGlzLmJyZWFkY3J1bWI/Lm1hcCh2ID0+ICh7XHJcbiAgICAuLi52LFxyXG4gICAgbGFiZWw6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQodi5sYWJlbCA/PyAnJylcclxuICB9KSk7XHJcbn1cclxuZ2V0IHJ0bCgpOiBib29sZWFuIHtcclxuICB0cnkge1xyXG4gICAgcmV0dXJuIGRvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ/LmRpciA9PT0gJ3J0bCc7XHJcbiAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxufVxyXG5cclxuIC8qKlxyXG4gICAqIEhhbmRsZXMgYnV0dG9uIGNsaWNrIGluIGEgdW5pZmllZCB3YXkuXHJcbiAgICogLSBJZiBidG4uYWN0aW9uIGlzIGRlZmluZWQsIGV4ZWN1dGUgaXQuXHJcbiAgICogLSBPdGhlcndpc2UsIGVtaXQgZXZlbnQgd2l0aCBhY3Rpb25OYW1lIG9yIGRlZmF1bHQgJ2FkZCcuXHJcbiAgICovXHJcbiAgYXN5bmMgaGFuZGxlQnV0dG9uQ2xpY2soYnRuOiBCdXR0b25Db25maWcpIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGlmIChidG4uYWN0aW9uKSB7XHJcbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgcHJvdmlkZWQgYWN0aW9uXHJcbiAgICAgICAgYXdhaXQgYnRuLmFjdGlvbihudWxsKTsgLy8gWW91IGNhbiBwYXNzIHJvdyBvciBjb250ZXh0IGhlcmVcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBGYWxsYmFjayB0byBlbWl0dGluZyBldmVudFxyXG4gICAgICAgIHRoaXMuYWN0aW9uLmVtaXQoe1xyXG4gICAgICAgICAgbmFtZTogYnRuLmFjdGlvbk5hbWUgPz8gJ2FkZCcsXHJcbiAgICAgICAgICByb3c6IG51bGwhLCAvLyBwcm92aWRlIHJvdyBpZiBhdmFpbGFibGVcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0J1dHRvbiBhY3Rpb24gZXJyb3InLCBlcnIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbi8vICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuIC8qKiDYp9mE2KLZhiDZitiq2YTZgtmR2YkgcGFnaW5hdGlvbiArIHNvcnQg2YHZiiDYrdiv2Ksg2YjYp9it2K8gKi9cclxub25MYXp5TG9hZChldmVudDogVGFibGVMYXp5TG9hZEV2ZW50KSB7XHJcbiAgLy8gdGhpcy5tb2RlbF89IHRoaXMubW9kZWwgPz8ge307XHJcbiAgdGhpcy5tb2RlbD0gdGhpcy5tb2RlbCA/PyB7fTtcclxuXHJcbiAgdGhpcy5mb3JtRmllbGRzXyA9IHRoaXMuZm9ybUZpZWxkcztcclxuICBjb25zdCBmaXJzdCAgICAgPSBldmVudC5maXJzdCAgPz8gdGhpcy5maXJzdDtcclxuICBjb25zdCByb3dzICAgICAgPSBldmVudC5yb3dzICAgPz8gdGhpcy5yb3dzO1xyXG4gIGNvbnN0IHNvcnRGaWVsZCA9IHR5cGVvZiBldmVudC5zb3J0RmllbGQgPT09ICdzdHJpbmcnXHJcbiAgICAgICAgICAgICAgICAgICAgPyBldmVudC5zb3J0RmllbGRcclxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc29ydEZpZWxkO1xyXG4gIGNvbnN0IHNvcnRPcmRlciA9IGV2ZW50LnNvcnRPcmRlciA9PT0gLTEgPyAtMSA6IDE7XHJcblxyXG5cclxuICBjb25zdCBmaWx0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBpZiAoZXZlbnQuZmlsdGVycykge1xyXG4gICAgICBPYmplY3QuZW50cmllcyhldmVudC5maWx0ZXJzKS5mb3JFYWNoKChbZmllbGQsIG1ldGFdKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdmFsdWUgPSAobWV0YSBhcyBhbnkpLnZhbHVlO1xyXG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHZhbHVlICE9PSAnJykge1xyXG4gICAgICAgICAgZmlsdGVyc1tmaWVsZF0gPSB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB0aGlzLmZpcnN0ICAgICA9IGZpcnN0O1xyXG4gIHRoaXMucm93cyAgICAgID0gcm93cztcclxuICB0aGlzLnNvcnRGaWVsZCA9IHNvcnRGaWVsZDtcclxuICB0aGlzLnNvcnRPcmRlciA9IHNvcnRPcmRlciBhcyAxfCAtMTtcclxuY29uc3QgZGlyID0gc29ydE9yZGVyID09PSAxID8gJ2FzYycgOiAnZGVzYyc7XHJcbiBjb25zdCBzb3J0ID0gc29ydEZpZWxkID8gYCR7c29ydEZpZWxkfSAke2Rpcn1gIDogdW5kZWZpbmVkO1xyXG5cclxuICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IGZpcnN0LCByb3dzICxzb3J0LCBmaWx0ZXJzIH0pO1xyXG5cclxuICAvLyDZitio2YbZiiDYp9mE2YbYtSDZiNil2LHYs9in2YTZh1xyXG5cclxufVxyXG5cclxuXHJcbiAgLyoqINiq2LXZitmK2LEg2KfZhNio2YrYp9mG2KfYqiDYrdiz2Kgg2KfZhNi12YHYrdipICovXHJcbiAgZ2V0IHBhZ2VkRGF0YSgpOiBUW10ge1xyXG4gICAgLy8gcmV0dXJuIHRoaXMuZGF0YSA/IHRoaXMuZGF0YS5zbGljZSh0aGlzLmZpcnN0LCB0aGlzLmZpcnN0ICsgdGhpcy5yb3dzKSA6IFtdO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmRhdGE7XHJcbiAgfVxyXG5cclxuXHJcblxyXG5nZXQgZ2xvYmFsRmlsdGVyRmllbGRzKCk6IHN0cmluZ1tdIHtcclxuICByZXR1cm4gdGhpcy5jb2x1bW5zLm1hcChjID0+IFN0cmluZyhjLmtleSkpO1xyXG59XHJcblxyXG5cclxuXHJcblxyXG5cclxuICAvKiog2KPYsdiz2YQg2KXZhNmJINin2YTYo9ioINmE2KPYqtmF2KrYqSDYtNmD2YQg2KfZhNio2K3YqyDYpdiw2Kcg2YrYrdiq2KfYrCAqL1xyXG4vLyBmcm9tIGdlbmVyaWMtY3J1ZC10YWJsZS5jb21wb25lbnQudHNcclxuXHJcbi8qKiDYqNiv2ZHZhCBhcHBseVNlYXJjaCDZhNiq2KjYqyBwYWdlQ2hhbmdlINmF2KjYp9i02LHYqdmLICovXHJcbiBhcHBseVNlYXJjaChmaWx0ZXJzOiBhbnkpIHtcclxuICAgIC8vIHRoaXMuZ2VuZXJpY1RhYmxlLmFwcGx5RmlsdGVyKGdsb2JhbCk7XHJcbiAgICAgIHRoaXMub25TZWFyY2guZW1pdChmaWx0ZXJzKTtcclxuICB9XHJcblxyXG5cclxuIC8qKiDYr9in2YTYqSDYqtmG2YHZkdiwINi52YbYryDYp9mE2YbZgtixINi52YTZiSDYtdmBICovXHJcbiAgb25Sb3dDbGljayhyb3c6IFQpIHtcclxuICAgIGlmICh0aGlzLnJvd1NlbGVjdGFibGUpIHtcclxuICAgICAgdGhpcy5yb3dTZWxlY3QuZW1pdChyb3cpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gICBASW5wdXQoKSBiZWZvcmVTYXZlOiAocmVjb3JkOiBUKSA9PiBUID0gKHJlY29yZCkgPT4gcmVjb3JkO1xyXG5cclxub25TdWJtaXQoKSB7XHJcbiAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSByZXR1cm47XHJcblxyXG4gIGNvbnN0IHNhdmUgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG5cclxuICAgIGNvbnN0IGlkID0gdGhpcy5pc0VkaXRNb2RlID8gKHRoaXMubW9kZWwgYXMgYW55KVt0aGlzLmlkRmllbGRdIDogbnVsbDtcclxuICAgIGNvbnN0IHJlY29yZFRvU2F2ZSA9IHRoaXMuYmVmb3JlU2F2ZSh7IC4uLnRoaXMubW9kZWwgfSk7XHJcblxyXG4gICAgY29uc3Qgb3BlcmF0aW9uJCA9IHRoaXMuaXNFZGl0TW9kZVxyXG4gICAgICA/IHRoaXMuc2VydmljZS51cGRhdGUoaWQsIHJlY29yZFRvU2F2ZSlcclxuICAgICAgOiB0aGlzLnNlcnZpY2UuY3JlYXRlKHJlY29yZFRvU2F2ZSk7XHJcblxyXG4gICAgb3BlcmF0aW9uJC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIC8vIOKchSDYsdiz2KfZhNipINmG2KzYp9itXHJcbiAgICAgICAgdGhpcy5zd2FsU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICAgdGhpcy5pc0VkaXRNb2RlID8gJ9iq2YUg2KfZhNiq2LnYr9mK2YQg2KjZhtis2KfYrScgOiAn2KrZhSDYp9mE2K3Zgdi4INio2YbYrNin2K0nXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuYXBwbHlTZWFyY2goJycpO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgIC8vIOKdjCDZhdinINmG2LnYsdi2INix2LPYp9mE2Kkg2K7Yt9ijINmH2YbYpyDZhNij2YYg2KfZhNmAIGludGVyY2VwdG9yINmK2KrZg9mB2YQg2YHZitmH2KdcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfTtcclxuXHJcbiAgaWYgKHRoaXMudXNlQ29uZmlybU9uU2F2ZSkge1xyXG4gICAgdGhpcy5zd2FsU2VydmljZS5jb25maXJtKFxyXG4gICAgICB0aGlzLmlzRWRpdE1vZGUgPyAn2KrYo9mD2YrYryDYp9mE2KrYudiv2YrZhCcgOiAn2KrYo9mD2YrYryDYp9mE2K3Zgdi4JyxcclxuICAgICAgdGhpcy5pc0VkaXRNb2RlXHJcbiAgICAgICAgPyAn2YfZhCDYqtix2YrYryDYrdmB2Lgg2KfZhNiq2LnYr9mK2YTYp9iqINi52YTZiSDZh9iw2Kcg2KfZhNiz2KzZhNifJ1xyXG4gICAgICAgIDogJ9mH2YQg2KrYsdmK2K8g2K3Zgdi4INmH2LDYpyDYp9mE2LPYrNmE2J8nLFxyXG4gICAgICAn2YbYudmFJyxcclxuICAgICAgJ9il2YTYutin2KEnXHJcbiAgICApLnRoZW4ocmVzdWx0ID0+IHtcclxuICAgICAgaWYgKHJlc3VsdC5pc0NvbmZpcm1lZCkge1xyXG4gICAgICAgIHNhdmUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHNhdmUoKTtcclxuICB9XHJcbn1cclxuXHJcbiAgICAgdHJhY2tCeUlkeChpbmRleDogbnVtYmVyLCBpdGVtOiBhbnkpOiBudW1iZXIge1xyXG4gIHJldHVybiBpbmRleDtcclxuIH1cclxuXHJcbm9uU2luZ2xlSXRlbUFjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc1NpbmdsZUl0ZW1TZWxlY3RlZCkgcmV0dXJuO1xyXG5cclxuICBjb25zdCBzZWxlY3RlZEl0ZW0gPSB0aGlzLl9zZWxlY3RlZFJvd3NbMF07XHJcbiAgdGhpcy5zaW5nbGVBY3Rpb24uZW1pdCh7XHJcbiAgICBuYW1lOiBidG4uYWN0aW9uTmFtZSA/PyAnc2luZ2xlQWN0aW9uJyxcclxuICAgIGl0ZW06IHNlbGVjdGVkSXRlbVxyXG4gIH0pO1xyXG59XHJcblxyXG5vbkludGVybmFsQnVsa0FjdGlvbihidG46IEJ1dHRvbkNvbmZpZyk6IHZvaWQge1xyXG4gIGlmICghdGhpcy5pc011bHRpcGxlSXRlbVNlbGVjdGVkKSByZXR1cm47XHJcblxyXG4gIHRoaXMuYnVsa0FjdGlvbi5lbWl0KHtcclxuICAgIG5hbWU6IGJ0bi5hY3Rpb25OYW1lID8/ICdidWxrQWN0aW9uJyxcclxuICAgIGl0ZW1zOiBbLi4udGhpcy5fc2VsZWN0ZWRSb3dzXSAgLy8g2YbYsdiz2YQg2YbYs9iu2Kkg2YXZhiDYp9mE2YXYtdmB2YjZgdipXHJcbiAgfSk7XHJcbn1cclxuXHJcblxyXG59XHJcbiIsIlxyXG4gPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnQgZ2FwLTIganVzdGlmeS1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcblxyXG48YXBwLWJyZWFkY3J1bWIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiBbYnJlYWRjcnVtYl09XCJicmVhZGNydW1iX1wiPjwvYXBwLWJyZWFkY3J1bWI+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBqdXN0aWZ5LWVuZCBmbGV4LXdyYXBcIj5cclxuICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1NpbmdsZUl0ZW1TZWxlY3RlZFwiPlxyXG4gPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIHNpbmdsZUFjdGlvbkJ1dHRvbnM7IHRyYWNrQnk6IHRyYWNrQnlJZHhcIj5cclxuICBAaWYgKCFidG4udmlzaWJsZSB8fCAoIGJ0bi52aXNpYmxlICYmICBidG4udmlzaWJsZSA9PT0gdHJ1ZSkpIHtcclxuIDxsaWItZ2VuZXJpYy1idXR0b25cclxuICBbaWNvbl09XCJidG4uaWNvblwiXHJcbltsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG5bdmFyaWFudF09XCJidG4udmFyaWFudFwiXHJcbiBbc2l6ZV09XCJidG4uc2l6ZVwiXHJcbiBbbW9kZWxdPVwiYnRuLnNwbGl0QWN0aW9uc1wiXHJcbiBbcGVybWlzc2lvbl09XCJidG4ucGVybWlzc2lvblwiXHJcbiAoY2xpY2tlZCk9XCJvblNpbmdsZUl0ZW1BY3Rpb24oYnRuKVwiXHJcbiA+PC9saWItZ2VuZXJpYy1idXR0b24+XHJcbiAgfVxyXG48L25nLWNvbnRhaW5lcj5cclxuIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDBcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYnRuIG9mIGJ1bGtBY3Rpb25CdXR0b25zOyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XHJcbiAgICAgICAgQGlmICghYnRuLnZpc2libGUgfHwgKCBidG4udmlzaWJsZSAmJiAgYnRuLnZpc2libGUgPT09IHRydWUpKSB7XHJcbiAgICAgICAgICA8bGliLWdlbmVyaWMtYnV0dG9uXHJcbiAgICAgICAgICBbaWNvbl09XCJidG4uaWNvblwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiYnRuLmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgIFt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuICAgICAgICAgIFtzaXplXT1cImJ0bi5zaXplXCJcclxuICAgICAgICAgIFttb2RlbF09XCJidG4uc3BsaXRBY3Rpb25zXCJcclxuICAgICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAgIChjbGlja2VkKT1cIm9uSW50ZXJuYWxCdWxrQWN0aW9uKGJ0bilcIlxyXG4gICAgICAgID48L2xpYi1nZW5lcmljLWJ1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidG4gb2YgYWRkQnV0dG9uQ29uZmlnczsgdHJhY2tCeTogdHJhY2tCeUlkeFwiPlxyXG4gICAgICAgIEBpZiAoIWJ0bi52aXNpYmxlIHx8ICggYnRuLnZpc2libGUgJiYgIGJ0bi52aXNpYmxlID09PSB0cnVlKSkge1xyXG4gICAgICA8bGliLWdlbmVyaWMtYnV0dG9uXHJcbiAgICAgICAgW2ljb25dPVwiYnRuLmljb25cIlxyXG4gICAgICAgIFtsYWJlbF09XCJidG4ubGFiZWwgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIFt2YXJpYW50XT1cImJ0bi52YXJpYW50XCJcclxuICAgICAgICBbc2l6ZV09XCJidG4uc2l6ZVwiXHJcbiAgICAgICAgW21vZGVsXT1cImJ0bi5zcGxpdEFjdGlvbnNcIlxyXG4gICAgICAgIFtwZXJtaXNzaW9uXT1cImJ0bi5wZXJtaXNzaW9uXCJcclxuICAgICAgICAoY2xpY2tlZCk9XCJoYW5kbGVCdXR0b25DbGljayhidG4pXCJcclxuICAgICAgPjwvbGliLWdlbmVyaWMtYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMiBtYi00IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxyXG5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93U2VhcmNoICYmIGZpbHRlcnM7IGVsc2UgZW1wdHlTZWFyY2hcIj5cclxuICAgICAgICAgICA8bGliLWdlbmVyaWMtc2VhcmNoXHJcbiAgICAgICAgICAgICAgICBbbW9kZWxdPVwiZmlsdGVyTW9kZWxcIlxyXG4gICAgICAgICAgICAgICAgW2ZpZWxkc109XCJmaWx0ZXJzXCJcclxuICAgICAgICAgICAgICAgIChzZWFyY2gpPVwiYXBwbHlTZWFyY2goJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocmVzZXQpPVwiYXBwbHlTZWFyY2goJycpXCJcclxuICAgICAgICAgICAgICA+PC9saWItZ2VuZXJpYy1zZWFyY2g+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eVNlYXJjaD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XHJcblxyXG4gICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktcmVmcmVzaFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgKG9uQ2xpY2spPVwiYXBwbHlTZWFyY2goJycpXCIgLz5cclxuICAgICAgICAgICAgICA8cC1kaXZpZGVyIGxheW91dD1cInZlcnRpY2FsXCIgIGNsYXNzPVwibS0wIHAtMCB4czpibG9jayBoaWRkZW5cIiAvPlxyXG4gICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktc29ydFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAvPlxyXG4gICAgICAgICAgICAgICAgPHAtYnV0dG9uIGxhYmVsPVwiMSBvZiAxNVwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAgLz5cclxuICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktY2hldnJvbi1yaWdodFwiIG91dGxpbmVkIHNldmVyaXR5PVwic2Vjb25kYXJ5XCIgY2xhc3M9XCJ4czpibG9jayBoaWRkZW5cIiAgLz5cclxuICAgICAgICAgICAgICAgIDxwLWJ1dHRvbiBpY29uPVwicGkgcGktY2hldnJvbi1sZWZ0XCIgb3V0bGluZWQgc2V2ZXJpdHk9XCJzZWNvbmRhcnlcIiBjbGFzcz1cInhzOmJsb2NrIGhpZGRlblwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuXHJcblxyXG48bGliLWdlbmVyaWMtdGFibGVcclxuW2RhdGFdPVwiZGF0YVwiXHJcbltjb2x1bW5zXT1cImNvbHVtbnNcIlxyXG5bcGFnaW5hdG9yXT1cInBhZ2luYXRvclwiXHJcbltsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG5bYWN0aW9uc109XCJhY3Rpb25zXCJcclxuW2FjdGlvbnNNb2RlXT1cImFjdGlvbnNNb2RlXCJcclxuW2ZpcnN0XT1cImZpcnN0XCJcclxuW3Jvd3NdPVwicm93c1wiXHJcblt0b3RhbFJlY29yZHNdPVwidG90YWxSZWNvcmRzXCJcclxuW3NvcnRGaWVsZF09XCJzb3J0RmllbGRcIlxyXG5bc29ydE9yZGVyXT1cInNvcnRPcmRlclwiXHJcblthZGRCdXR0b25Db25maWdzXT1cImFkZEJ1dHRvbkNvbmZpZ3NcIlxyXG4gIFtnbG9iYWxGaWx0ZXJGaWVsZHNdPVwiZ2xvYmFsRmlsdGVyRmllbGRzXCJcclxuICBbc2Nyb2xsSGVpZ2h0XT1cInNjcm9sbEhlaWdodFwiXHJcbiAgW3Nob3dSb3dTZWxlY3Rpb25DaGVja2JveF09XCJzaG93Um93U2VsZWN0aW9uQ2hlY2tib3hcIlxyXG4gIChhY3Rpb24pPVwiYWN0aW9uLmVtaXQoJGV2ZW50KVwiXHJcbiAgKG9uQWRkTmV3KT1cImFjdGlvbi5lbWl0KHsgbmFtZTogJ2FkZCcsIHJvdzogbnVsbCEgfSlcIlxyXG4gIChwYWdlQ2hhbmdlKT1cIm9uTGF6eUxvYWQoJGV2ZW50KVwiXHJcbiAgW3Jvd1NlbGVjdGFibGVdPVwicm93U2VsZWN0YWJsZVwiXHJcbiAgKHJvd1NlbGVjdCk9XCJvblJvd0NsaWNrKCRldmVudClcIlxyXG4gIFsoc2VsZWN0aW9uKV09XCJfc2VsZWN0ZWRSb3dzXCJcclxuICAjZ2VuZXJpY1RhYmxlXHJcbj48L2xpYi1nZW5lcmljLXRhYmxlPlxyXG5cclxuXHJcblxyXG5cclxuPCEtLSBEcmF3ZXIgLS0+XHJcbjxwLWRyYXdlclxyXG4gICpuZ0lmPVwiKHR5cGVvZiBkaXNwbGF5TW9kZSA9PT0gJ3N0cmluZycgPyBkaXNwbGF5TW9kZSA6IGlzRWRpdE1vZGUgPyBkaXNwbGF5TW9kZVsnZWRpdCddIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyBkaXNwbGF5TW9kZVsnYWRkJ10gOiBkaXNwbGF5TW9kZVsndmlldyddICApID09PSAnZHJhd2VyJyAmJiBkcmF3ZXJWaXNpYmxlXCJcclxuICBbKHZpc2libGUpXT1cImRyYXdlclZpc2libGVcIlxyXG4gIFtjbG9zYWJsZV09XCJ0cnVlXCJcclxuICBbZGlzbWlzc2libGVdPVwiZmFsc2VcIlxyXG4gIFtjbG9zZU9uRXNjYXBlXT1cInRydWVcIlxyXG4gICh2aXNpYmxlQ2hhbmdlKT1cInZpc2libGVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcclxuICBzdHlsZUNsYXNzPVwiIXctZnVsbCBtZDohdy04MCBsZzohdy1bNDByZW1dXCI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtbGdcIj5cclxuICAgICAge3sgaXNFZGl0TW9kZSA/ICdVUERBVEUnIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyAoJ0FERCcgfCB0cmFuc2xhdGUpOiAoJ1ZJRVcnIHwgdHJhbnNsYXRlKSB9fVxyXG4gICAgPC9zcGFuPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwhLS0gKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiAtLT5cclxuICA8Zm9ybSAqbmdJZj1cImZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAgY2xhc3M9XCJwLTRcIj5cclxuICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtRmllbGRzX1wiIFttb2RlbF09XCJtb2RlbFwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIj48L2Zvcm1seS1mb3JtPlxyXG4gIDwvZm9ybT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiICpuZ0lmPVwiIWlzVmlld01vZGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yXCI+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgW2xhYmVsXT1cImlzRWRpdE1vZGUgPyAoJ1VQREFURScgfCB0cmFuc2xhdGUpIDogKCdTQVZFJyB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBmb3JtLmludmFsaWRcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICBwQnV0dG9uXHJcbiAgICAgICAgbGFiZWw9XCJ7eyAnQ0FOQ0VMJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgICAgc2V2ZXJpdHk9XCJkYW5nZXJcIlxyXG4gICAgICAgIChjbGljayk9XCJ2aXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpXCI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9wLWRyYXdlcj5cclxuXHJcbjwhLS0gRGlhbG9nIC0tPlxyXG48cC1kaWFsb2dcclxuICAqbmdJZj1cIih0eXBlb2YgZGlzcGxheU1vZGUgPT09ICdzdHJpbmcnID8gZGlzcGxheU1vZGUgOiBpc0VkaXRNb2RlID8gZGlzcGxheU1vZGVbJ2VkaXQnXSA6IGlzVmlld01vZGUgPT09IGZhbHNlID8gZGlzcGxheU1vZGVbJ2FkZCddIDogZGlzcGxheU1vZGVbJ3ZpZXcnXSAgKSA9PT0gJ2RpYWxvZycgJiYgZGlhbG9nVmlzaWJsZVwiXHJcbiAgWyh2aXNpYmxlKV09XCJkaWFsb2dWaXNpYmxlXCJcclxuICBbbW9kYWxdPVwidHJ1ZVwiXHJcbiAgW2Nsb3NhYmxlXT1cInRydWVcIlxyXG4gIFtkaXNtaXNzYWJsZU1hc2tdPVwidHJ1ZVwiXHJcbiAgW2Nsb3NlT25Fc2NhcGVdPVwidHJ1ZVwiXHJcbiAgKHZpc2libGVDaGFuZ2UpPVwidmlzaWJsZUNoYW5nZS5lbWl0KCRldmVudClcIlxyXG4gIFtzdHlsZV09XCJ7IHdpZHRoOiAnOTV2dycsIG1heFdpZHRoOiBkaWFsb2dNYXhXaWR0aCB9XCJcclxuICBbaGVhZGVyXT1cImlzRWRpdE1vZGUgPyAoJ1VQREFURScgfCB0cmFuc2xhdGUpIDogaXNWaWV3TW9kZSA9PT0gZmFsc2UgPyAoJ0FERCd8IHRyYW5zbGF0ZSkgOiB2aWV3SGVhZGVyVGl0bGVcIj5cclxuPCEtLSBbYnJlYWtwb2ludHNdPVwieyAnMTIwMHB4JzogJzUwdncnLCAnNzY4cHgnOiAnNzB2dycsICc1NjBweCc6ICc5NXZ3JyB9XCIgLS0+XHJcbiAgPGRpdiBjbGFzcz1cInJlbGF0aXZlXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNWaWV3TW9kZVwiIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCB6LTEwIGJnLXdoaXRlLzUwIHBvaW50ZXItZXZlbnRzLWF1dG8gcm91bmRlZC1tZFwiPjwvZGl2PlxyXG4gICAgPGZvcm0gKm5nSWY9XCJmb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCIgY2xhc3M9XCJwLTRcIj5cclxuICAgICAgPGZvcm1seS1mb3JtIFtmb3JtXT1cImZvcm1cIiBbZmllbGRzXT1cImZvcm1GaWVsZHNfXCIgW21vZGVsXT1cIm1vZGVsXCIgW29wdGlvbnNdPVwib3B0aW9uc1wiPjwvZm9ybWx5LWZvcm0+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJmb290ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktZW5kIGdhcC0yXCI+XHJcbiAgICAgIDxidXR0b24gKm5nSWY9XCIhaXNWaWV3TW9kZVwiXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIFtsYWJlbF09XCJpc0VkaXRNb2RlID8gKCdVUERBVEUnIHwgdHJhbnNsYXRlKSA6ICgnU0FWRScgfCB0cmFuc2xhdGUpXCJcclxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZyB8fCBmb3JtLmludmFsaWRcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgcEJ1dHRvblxyXG4gICAgICAgIGxhYmVsPVwie3sgaXNWaWV3TW9kZSA/ICgnQ0xPU0UnIHwgdHJhbnNsYXRlKSA6ICgnQ0FOQ0VMJyB8IHRyYW5zbGF0ZSkgfX1cIlxyXG4gICAgICAgIHNldmVyaXR5PVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAoY2xpY2spPVwidmlzaWJsZUNoYW5nZS5lbWl0KGZhbHNlKVwiPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1kaWFsb2c+XHJcblxyXG5cclxuXHJcbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy51aS5jb3JlL2dlbmVyaWMtY3J1ZC10YWJsZS9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLnVpLmNvcmUtZ2VuZXJpYy1jcnVkLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ declare class GenericButtonModule {
10
10
  }
11
11
 
12
12
  type ButtonVariant = 'text' | 'outlined' | 'raised' | 'rounded';
13
- type ButtonSeverity = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger';
13
+ type ButtonSeverity = 'success' | 'info' | 'warn' | 'danger' | 'primary' | 'secondary';
14
14
  type ButtonSize = 'small' | 'normal' | 'large';
15
15
  type IconPosition = 'left' | 'right';
16
16
  declare class GenericButton {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elite.framework/ng.ui.core",
3
- "version": "1.0.54",
3
+ "version": "1.0.55",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.1.0",
6
6
  "@angular/core": "^20.1.0"
@@ -16,14 +16,14 @@
16
16
  "types": "./index.d.ts",
17
17
  "default": "./fesm2022/elite.framework-ng.ui.core.mjs"
18
18
  },
19
- "./attachments": {
20
- "types": "./attachments/index.d.ts",
21
- "default": "./fesm2022/elite.framework-ng.ui.core-attachments.mjs"
22
- },
23
19
  "./base-crud": {
24
20
  "types": "./base-crud/index.d.ts",
25
21
  "default": "./fesm2022/elite.framework-ng.ui.core-base-crud.mjs"
26
22
  },
23
+ "./attachments": {
24
+ "types": "./attachments/index.d.ts",
25
+ "default": "./fesm2022/elite.framework-ng.ui.core-attachments.mjs"
26
+ },
27
27
  "./breadcrumb": {
28
28
  "types": "./breadcrumb/index.d.ts",
29
29
  "default": "./fesm2022/elite.framework-ng.ui.core-breadcrumb.mjs"
@@ -60,22 +60,22 @@
60
60
  "types": "./excel-import/index.d.ts",
61
61
  "default": "./fesm2022/elite.framework-ng.ui.core-excel-import.mjs"
62
62
  },
63
- "./form-button": {
64
- "types": "./form-button/index.d.ts",
65
- "default": "./fesm2022/elite.framework-ng.ui.core-form-button.mjs"
66
- },
67
63
  "./form-field": {
68
64
  "types": "./form-field/index.d.ts",
69
65
  "default": "./fesm2022/elite.framework-ng.ui.core-form-field.mjs"
70
66
  },
71
- "./form-template": {
72
- "types": "./form-template/index.d.ts",
73
- "default": "./fesm2022/elite.framework-ng.ui.core-form-template.mjs"
67
+ "./form-button": {
68
+ "types": "./form-button/index.d.ts",
69
+ "default": "./fesm2022/elite.framework-ng.ui.core-form-button.mjs"
74
70
  },
75
71
  "./formly-avatar-image": {
76
72
  "types": "./formly-avatar-image/index.d.ts",
77
73
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-image.mjs"
78
74
  },
75
+ "./form-template": {
76
+ "types": "./form-template/index.d.ts",
77
+ "default": "./fesm2022/elite.framework-ng.ui.core-form-template.mjs"
78
+ },
79
79
  "./formly-avatar-label": {
80
80
  "types": "./formly-avatar-label/index.d.ts",
81
81
  "default": "./fesm2022/elite.framework-ng.ui.core-formly-avatar-label.mjs"
@@ -112,22 +112,22 @@
112
112
  "types": "./generic-autocomplete/index.d.ts",
113
113
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-autocomplete.mjs"
114
114
  },
115
- "./generic-button": {
116
- "types": "./generic-button/index.d.ts",
117
- "default": "./fesm2022/elite.framework-ng.ui.core-generic-button.mjs"
118
- },
119
115
  "./generic-card": {
120
116
  "types": "./generic-card/index.d.ts",
121
117
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-card.mjs"
122
118
  },
123
- "./generic-crud-table": {
124
- "types": "./generic-crud-table/index.d.ts",
125
- "default": "./fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs"
119
+ "./generic-button": {
120
+ "types": "./generic-button/index.d.ts",
121
+ "default": "./fesm2022/elite.framework-ng.ui.core-generic-button.mjs"
126
122
  },
127
123
  "./generic-errormessage": {
128
124
  "types": "./generic-errormessage/index.d.ts",
129
125
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-errormessage.mjs"
130
126
  },
127
+ "./generic-crud-table": {
128
+ "types": "./generic-crud-table/index.d.ts",
129
+ "default": "./fesm2022/elite.framework-ng.ui.core-generic-crud-table.mjs"
130
+ },
131
131
  "./generic-formly-fields": {
132
132
  "types": "./generic-formly-fields/index.d.ts",
133
133
  "default": "./fesm2022/elite.framework-ng.ui.core-generic-formly-fields.mjs"
@@ -152,14 +152,14 @@
152
152
  "types": "./header-wrapper/index.d.ts",
153
153
  "default": "./fesm2022/elite.framework-ng.ui.core-header-wrapper.mjs"
154
154
  },
155
- "./input": {
156
- "types": "./input/index.d.ts",
157
- "default": "./fesm2022/elite.framework-ng.ui.core-input.mjs"
158
- },
159
155
  "./icon-picker": {
160
156
  "types": "./icon-picker/index.d.ts",
161
157
  "default": "./fesm2022/elite.framework-ng.ui.core-icon-picker.mjs"
162
158
  },
159
+ "./input": {
160
+ "types": "./input/index.d.ts",
161
+ "default": "./fesm2022/elite.framework-ng.ui.core-input.mjs"
162
+ },
163
163
  "./input-switch": {
164
164
  "types": "./input-switch/index.d.ts",
165
165
  "default": "./fesm2022/elite.framework-ng.ui.core-input-switch.mjs"
@@ -176,14 +176,14 @@
176
176
  "types": "./odata-query-builder/index.d.ts",
177
177
  "default": "./fesm2022/elite.framework-ng.ui.core-odata-query-builder.mjs"
178
178
  },
179
- "./radio": {
180
- "types": "./radio/index.d.ts",
181
- "default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
182
- },
183
179
  "./repeat": {
184
180
  "types": "./repeat/index.d.ts",
185
181
  "default": "./fesm2022/elite.framework-ng.ui.core-repeat.mjs"
186
182
  },
183
+ "./radio": {
184
+ "types": "./radio/index.d.ts",
185
+ "default": "./fesm2022/elite.framework-ng.ui.core-radio.mjs"
186
+ },
187
187
  "./select": {
188
188
  "types": "./select/index.d.ts",
189
189
  "default": "./fesm2022/elite.framework-ng.ui.core-select.mjs"