verben-ng-ui 0.1.8 → 0.1.9

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.
@@ -3,7 +3,7 @@ import { NgControl } from '@angular/forms';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "@angular/forms";
6
- import * as i3 from "../components/tooltip/tooltip.component";
6
+ import * as i3 from "../components/svg/svg.component";
7
7
  export class VerbenaInputComponent {
8
8
  ngControl;
9
9
  label = '';
@@ -20,7 +20,8 @@ export class VerbenaInputComponent {
20
20
  value = '';
21
21
  labelPosition = 'start';
22
22
  labelColor = 'black';
23
- disable = false;
23
+ disable = false; // Disable input
24
+ readOnly = false; // Read-only input
24
25
  min;
25
26
  max;
26
27
  showBorder = true;
@@ -33,11 +34,10 @@ export class VerbenaInputComponent {
33
34
  svgHeight = 20;
34
35
  svgColor = '';
35
36
  capitalization = 'none';
36
- // New input properties to expose custom classes
37
- inputContainerClass = ''; // Expose custom class for input container
38
- inputFieldClass = ''; // Expose custom class for input field
39
- inputWrapperClass = ''; // Expose custom class for input wrapper
40
- // New property for custom error messages
37
+ inputContainerClass = '';
38
+ inputFieldClass = '';
39
+ inputWrapperClass = '';
40
+ passwordToggle = false;
41
41
  customErrorMessages = {};
42
42
  valueChange = new EventEmitter();
43
43
  errorMessage;
@@ -45,6 +45,13 @@ export class VerbenaInputComponent {
45
45
  onChange = () => { };
46
46
  onTouch = () => { };
47
47
  isInvalid = false;
48
+ icon = 'eye';
49
+ textPass = 'Show';
50
+ toggleIcon() {
51
+ this.icon = this.icon === 'eye' ? 'eye-closed' : 'eye';
52
+ this.textPass = this.textPass === 'Show' ? 'Hide' : 'Show';
53
+ this.type = this.type === 'password' ? 'text' : 'password';
54
+ }
48
55
  constructor(ngControl) {
49
56
  this.ngControl = ngControl;
50
57
  if (this.ngControl) {
@@ -172,11 +179,11 @@ export class VerbenaInputComponent {
172
179
  this.disable = isDisabled;
173
180
  }
174
181
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputComponent, deps: [{ token: forwardRef(() => NgControl), optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
175
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: VerbenaInputComponent, selector: "verbena-input", inputs: { label: "label", placeHolder: "placeHolder", required: "required", svgPosition: "svgPosition", minLength: "minLength", maxLength: "maxLength", type: "type", bgColor: "bgColor", border: "border", borderRadius: "borderRadius", textColor: "textColor", value: "value", labelPosition: "labelPosition", labelColor: "labelColor", disable: "disable", min: "min", max: "max", showBorder: "showBorder", showErrorMessage: "showErrorMessage", errorMessageColor: "errorMessageColor", errorBorderColor: "errorBorderColor", errorPosition: "errorPosition", svg: "svg", svgWidth: "svgWidth", svgHeight: "svgHeight", svgColor: "svgColor", capitalization: "capitalization", inputContainerClass: "inputContainerClass", inputFieldClass: "inputFieldClass", inputWrapperClass: "inputWrapperClass", customErrorMessages: "customErrorMessages" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"input-container {{ inputContainerClass }}\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column',\n\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <label [for]=\"label\">{{ label }}</label>\n </div>\n\n <div class=\"input-wrapper {{ inputWrapperClass }}\">\n <input\n [ngClass]=\"{'ng-invalid': isInvalid}\"\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': isInvalid && errorBorderColor? '1px solid ' + errorBorderColor : border ,\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field verben-input\"\n />\n\n <!-- Conditional red dot for error when showErrorMessage is false -->\n <verben-tooltip *ngIf=\"errorMessage && !showErrorMessage\"\n [tooltipContent]=\"tooltipTemplate\"\n customClass=\"error-tooltip\">\n <div class=\"error-dot\"\n [ngStyle]=\"{ 'background-color': errorBorderColor }\">\n </div>\n </verben-tooltip>\n\n <!-- Tooltip template for error message -->\n <ng-template #tooltipTemplate>\n {{ errorMessage }}\n </ng-template>\n\n <!-- Conditional error message display -->\n <span *ngIf=\"errorMessage && showErrorMessage\"\n [ngStyle]=\"{ 'color': errorMessageColor }\"\n [ngClass]=\"{'verben-error-message': true,\n 'top-error': errorPosition === 'top',\n 'left-error': errorPosition === 'left',\n 'right-error': errorPosition === 'right'}\"\n class=\"verben-error-message \"\n >\n\n {{ errorMessage }}\n\n </span>\n </div>\n</div>\n", styles: ["*{font-family:sans-serif;font-size:.9rem}.w-100{width:100%}.h-100{height:100%}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message-text{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}.error-message{position:absolute;z-index:1;left:0;right:0;bottom:-20px}.top-error .error-message{position:absolute!important;top:-20px!important;bottom:initial!important}.left-error{position:absolute!important;bottom:50%!important;right:calc(100% + 10px)!important;width:max-content;left:initial!important;transform:translateY(50%);top:-100px}.right-error .error-message{position:absolute!important;bottom:50%!important;left:calc(100% + 10px)!important;width:max-content;right:initial!important;transform:translateY(50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }] });
182
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: VerbenaInputComponent, selector: "verbena-input", inputs: { label: "label", placeHolder: "placeHolder", required: "required", svgPosition: "svgPosition", minLength: "minLength", maxLength: "maxLength", type: "type", bgColor: "bgColor", border: "border", borderRadius: "borderRadius", textColor: "textColor", value: "value", labelPosition: "labelPosition", labelColor: "labelColor", disable: "disable", readOnly: "readOnly", min: "min", max: "max", showBorder: "showBorder", showErrorMessage: "showErrorMessage", errorMessageColor: "errorMessageColor", errorBorderColor: "errorBorderColor", errorPosition: "errorPosition", svg: "svg", svgWidth: "svgWidth", svgHeight: "svgHeight", svgColor: "svgColor", capitalization: "capitalization", inputContainerClass: "inputContainerClass", inputFieldClass: "inputFieldClass", inputWrapperClass: "inputWrapperClass", passwordToggle: "passwordToggle", customErrorMessages: "customErrorMessages", icon: "icon", textPass: "textPass" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"input-container {{ inputContainerClass }}\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column'\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <div [ngStyle]=\"{\n 'width': '100%',\n 'display': 'flex',\n 'justify-content':'space-between'\n\n }\">\n <label [for]=\"label\">{{ label }}</label>\n <!-- incase i need it back -->\n <!-- <div *ngIf=\" passwordToggle === true\" [ngStyle]=\"{\n\n 'display': 'flex',\n 'align-item':'center',\n 'gap':'4px',\n 'color':'grey',\n 'cursor':'pointer'\n\n }\"\n (click)=\"toggleIcon()\"\n >\n <verben-svg\n\n\n [icon]=\"icon\"\n [width]=\"20\"\n [height]=\"20\"\n color=\"black\"\n ></verben-svg>\n <p>{{ textPass }}</p>\n </div> -->\n </div>\n </div>\n\n <div class=\"input-wrapper \">\n <div *ngIf=\" passwordToggle === true\" [ngStyle]=\"{\n\n 'display': 'grid',\n 'align-items':'center',\n 'justify-content':'center',\n 'gap':'4px',\n 'color':'grey',\n 'cursor':'pointer',\n 'position': 'absolute',\n 'right':'8px',\n 'top':'0',\n 'bottom':'0',\n\n 'margin': 'auto',\n\n\n }\"\n (click)=\"toggleIcon()\"\n >\n <verben-svg\n\n\n [icon]=\"icon\"\n [width]=\"20\"\n [height]=\"20\"\n color=\"black\"\n ></verben-svg>\n\n </div>\n <input\n [ngClass]=\"{'ng-invalid': isInvalid}\"\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n [attr.disabled]=\"disable ? true : null\"\n [attr.readOnly]=\"readOnly ? true : null\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': isInvalid && errorBorderColor ? '1px solid ' + errorBorderColor : border,\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field verben-input {{ inputWrapperClass }}\"\n />\n </div>\n\n <div *ngIf=\"isInvalid && showErrorMessage\" class=\"error-message\" [ngStyle]=\"{\n 'color': errorMessageColor,\n 'position': errorPosition\n }\">\n {{ errorMessage }}\n </div>\n</div>\n", styles: ["*{font-family:sans-serif;font-size:.9rem}.w-100{width:100%}.h-100{height:100%}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message-text{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}.error-message{position:absolute;z-index:1;left:0;right:0;bottom:-20px}.top-error .error-message{position:absolute!important;top:-20px!important;bottom:initial!important}.left-error{position:absolute!important;bottom:50%!important;right:calc(100% + 10px)!important;width:max-content;left:initial!important;transform:translateY(50%);top:-100px}.right-error .error-message{position:absolute!important;bottom:50%!important;left:calc(100% + 10px)!important;width:max-content;right:initial!important;transform:translateY(50%)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }] });
176
183
  }
177
184
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputComponent, decorators: [{
178
185
  type: Component,
179
- args: [{ selector: 'verbena-input', template: "<div class=\"input-container {{ inputContainerClass }}\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column',\n\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <label [for]=\"label\">{{ label }}</label>\n </div>\n\n <div class=\"input-wrapper {{ inputWrapperClass }}\">\n <input\n [ngClass]=\"{'ng-invalid': isInvalid}\"\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': isInvalid && errorBorderColor? '1px solid ' + errorBorderColor : border ,\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field verben-input\"\n />\n\n <!-- Conditional red dot for error when showErrorMessage is false -->\n <verben-tooltip *ngIf=\"errorMessage && !showErrorMessage\"\n [tooltipContent]=\"tooltipTemplate\"\n customClass=\"error-tooltip\">\n <div class=\"error-dot\"\n [ngStyle]=\"{ 'background-color': errorBorderColor }\">\n </div>\n </verben-tooltip>\n\n <!-- Tooltip template for error message -->\n <ng-template #tooltipTemplate>\n {{ errorMessage }}\n </ng-template>\n\n <!-- Conditional error message display -->\n <span *ngIf=\"errorMessage && showErrorMessage\"\n [ngStyle]=\"{ 'color': errorMessageColor }\"\n [ngClass]=\"{'verben-error-message': true,\n 'top-error': errorPosition === 'top',\n 'left-error': errorPosition === 'left',\n 'right-error': errorPosition === 'right'}\"\n class=\"verben-error-message \"\n >\n\n {{ errorMessage }}\n\n </span>\n </div>\n</div>\n", styles: ["*{font-family:sans-serif;font-size:.9rem}.w-100{width:100%}.h-100{height:100%}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message-text{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}.error-message{position:absolute;z-index:1;left:0;right:0;bottom:-20px}.top-error .error-message{position:absolute!important;top:-20px!important;bottom:initial!important}.left-error{position:absolute!important;bottom:50%!important;right:calc(100% + 10px)!important;width:max-content;left:initial!important;transform:translateY(50%);top:-100px}.right-error .error-message{position:absolute!important;bottom:50%!important;left:calc(100% + 10px)!important;width:max-content;right:initial!important;transform:translateY(50%)}\n"] }]
186
+ args: [{ selector: 'verbena-input', template: "<div class=\"input-container {{ inputContainerClass }}\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column'\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <div [ngStyle]=\"{\n 'width': '100%',\n 'display': 'flex',\n 'justify-content':'space-between'\n\n }\">\n <label [for]=\"label\">{{ label }}</label>\n <!-- incase i need it back -->\n <!-- <div *ngIf=\" passwordToggle === true\" [ngStyle]=\"{\n\n 'display': 'flex',\n 'align-item':'center',\n 'gap':'4px',\n 'color':'grey',\n 'cursor':'pointer'\n\n }\"\n (click)=\"toggleIcon()\"\n >\n <verben-svg\n\n\n [icon]=\"icon\"\n [width]=\"20\"\n [height]=\"20\"\n color=\"black\"\n ></verben-svg>\n <p>{{ textPass }}</p>\n </div> -->\n </div>\n </div>\n\n <div class=\"input-wrapper \">\n <div *ngIf=\" passwordToggle === true\" [ngStyle]=\"{\n\n 'display': 'grid',\n 'align-items':'center',\n 'justify-content':'center',\n 'gap':'4px',\n 'color':'grey',\n 'cursor':'pointer',\n 'position': 'absolute',\n 'right':'8px',\n 'top':'0',\n 'bottom':'0',\n\n 'margin': 'auto',\n\n\n }\"\n (click)=\"toggleIcon()\"\n >\n <verben-svg\n\n\n [icon]=\"icon\"\n [width]=\"20\"\n [height]=\"20\"\n color=\"black\"\n ></verben-svg>\n\n </div>\n <input\n [ngClass]=\"{'ng-invalid': isInvalid}\"\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n [attr.disabled]=\"disable ? true : null\"\n [attr.readOnly]=\"readOnly ? true : null\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': isInvalid && errorBorderColor ? '1px solid ' + errorBorderColor : border,\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field verben-input {{ inputWrapperClass }}\"\n />\n </div>\n\n <div *ngIf=\"isInvalid && showErrorMessage\" class=\"error-message\" [ngStyle]=\"{\n 'color': errorMessageColor,\n 'position': errorPosition\n }\">\n {{ errorMessage }}\n </div>\n</div>\n", styles: ["*{font-family:sans-serif;font-size:.9rem}.w-100{width:100%}.h-100{height:100%}.flex{display:flex}.flex-col{flex-direction:column}.font-bold{font-weight:700}.justify-center{justify-content:center}.justify-end{justify-content:end}.align-items-center{align-items:center}.grid{display:grid}.verben-error-message{font-size:.8rem;color:red}.verben-input{border:1px solid #cbd5e1;outline:none;border-radius:5px;color:#334155;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s,outline-color .2s}.verben-input::placeholder{color:#64748b}.verben-input:hover{border:1px solid #697e97}.verben-input.disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input:disabled{opacity:1;background-color:light-dark(rgba(239,239,239,.3),rgba(59,59,59,.3));pointer-events:none;color:#64748b}.verben-input.focused{border-color:#3b82f6;outline:none}.verben-input:focus{border-color:#3b82f6;outline:none}.verben-input.ng-invalid{border-color:red}.verben-button{padding:8px 15px;border-radius:4px;border:none;text-align:center}.verben-button.primary{background-color:#ffe681}.verben-button.secondary{background-color:#d9d9d940}.input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message-text{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}.error-message{position:absolute;z-index:1;left:0;right:0;bottom:-20px}.top-error .error-message{position:absolute!important;top:-20px!important;bottom:initial!important}.left-error{position:absolute!important;bottom:50%!important;right:calc(100% + 10px)!important;width:max-content;left:initial!important;transform:translateY(50%);top:-100px}.right-error .error-message{position:absolute!important;bottom:50%!important;left:calc(100% + 10px)!important;width:max-content;right:initial!important;transform:translateY(50%)}\n"] }]
180
187
  }], ctorParameters: () => [{ type: i2.NgControl, decorators: [{
181
188
  type: Optional
182
189
  }, {
@@ -214,6 +221,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
214
221
  type: Input
215
222
  }], disable: [{
216
223
  type: Input
224
+ }], readOnly: [{
225
+ type: Input
217
226
  }], min: [{
218
227
  type: Input
219
228
  }], max: [{
@@ -244,9 +253,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
244
253
  type: Input
245
254
  }], inputWrapperClass: [{
246
255
  type: Input
256
+ }], passwordToggle: [{
257
+ type: Input
247
258
  }], customErrorMessages: [{
248
259
  type: Input
249
260
  }], valueChange: [{
250
261
  type: Output
262
+ }], icon: [{
263
+ type: Input
264
+ }], textPass: [{
265
+ type: Input
251
266
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuYS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9WZXJiZW5hLWlucHV0L3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvVmVyYmVuYS1pbnB1dC92ZXJiZW5hLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT2pFLE1BQU0sT0FBTyxxQkFBcUI7SUEyRDZDO0lBMURwRSxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixXQUFXLEdBQXFCLE1BQU0sQ0FBQztJQUN2QyxTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLElBQUksR0FBaUgsTUFBTSxDQUFDO0lBQzVILE9BQU8sR0FBVyxTQUFTLENBQUM7SUFDNUIsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUNwQixZQUFZLEdBQVcsS0FBSyxDQUFDO0lBQzdCLFNBQVMsR0FBVyxNQUFNLENBQUM7SUFDM0IsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixhQUFhLEdBQVcsT0FBTyxDQUFDO0lBQ2hDLFVBQVUsR0FBVyxPQUFPLENBQUM7SUFDN0IsT0FBTyxHQUFZLEtBQUssQ0FBQztJQUN6QixHQUFHLENBQVU7SUFDYixHQUFHLENBQVU7SUFDYixVQUFVLEdBQVksSUFBSSxDQUFDO0lBQzNC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QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBZUksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmLCBJbmplY3QsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbmEtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVyYmVuYS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFZlcmJlbmFJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3ZnUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ2ludGVnZXInIHwgJ251bWJlcicgfCAnZGVjaW1hbCcgfCAnZW1haWwnIHwgJ2RhdGUnIHwgJ3RlbCcgfCAndXJsJyB8ICdmaWxlJyB8ICdjb2xvcicgPSAndGV4dCc7XG4gIEBJbnB1dCgpIGJnQ29sb3I6IHN0cmluZyA9ICcjZjlmOWY5JztcbiAgQElucHV0KCkgYm9yZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYm9yZGVyUmFkaXVzOiBzdHJpbmcgPSAnNXB4JztcbiAgQElucHV0KCkgdGV4dENvbG9yOiBzdHJpbmcgPSAnIzMzMyc7XG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgbGFiZWxQb3NpdGlvbjogc3RyaW5nID0gJ3N0YXJ0JztcbiAgQElucHV0KCkgbGFiZWxDb2xvcjogc3RyaW5nID0gJ2JsYWNrJztcbiAgQElucHV0KCkgZGlzYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtaW4/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1heD86IG51bWJlcjtcbiAgQElucHV0KCkgc2hvd0JvcmRlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dFcnJvck1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VDb2xvcjogc3RyaW5nID0gJ3JlZCc7XG4gIEBJbnB1dCgpIGVycm9yQm9yZGVyQ29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGVycm9yUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgfCAndG9wJyB8ICdib3R0b20nID0gJ2JvdHRvbSc7XG4gIEBJbnB1dCgpIHN2Zzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHN2Z1dpZHRoOiBudW1iZXIgPSAyMDtcbiAgQElucHV0KCkgc3ZnSGVpZ2h0OiBudW1iZXIgPSAyMDtcbiAgQElucHV0KCkgc3ZnQ29sb3I6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjYXBpdGFsaXphdGlvbjogJ25vbmUnIHwgJ3VwcGVyY2FzZScgfCAnbG93ZXJjYXNlJyB8ICdzZW50ZW5jZWNhc2UnIHwgJ3Bhc2NhbGNhc2UnIHwgJ2NhbWVsY2FzZScgPSAnbm9uZSc7XG5cbiAgLy8gTmV3IGlucHV0IHByb3BlcnRpZXMgdG8gZXhwb3NlIGN1c3RvbSBjbGFzc2VzXG4gIEBJbnB1dCgpIGlucHV0Q29udGFpbmVyQ2xhc3M6IHN0cmluZyA9ICcnOyAvLyBFeHBvc2UgY3VzdG9tIGNsYXNzIGZvciBpbnB1dCBjb250YWluZXJcbiAgQElucHV0KCkgaW5wdXRGaWVsZENsYXNzOiBzdHJpbmcgPSAnJzsgLy8gRXhwb3NlIGN1c3RvbSBjbGFzcyBmb3IgaW5wdXQgZmllbGRcbiAgQElucHV0KCkgaW5wdXRXcmFwcGVyQ2xhc3M6IHN0cmluZyA9ICcnOyAvLyBFeHBvc2UgY3VzdG9tIGNsYXNzIGZvciBpbnB1dCB3cmFwcGVyXG5cbiAgLy8gTmV3IHByb3BlcnR5IGZvciBjdXN0b20gZXJyb3IgbWVzc2FnZXNcbiAgQElucHV0KCkgY3VzdG9tRXJyb3JNZXNzYWdlczoge1xuICAgIHJlcXVpcmVkPzogc3RyaW5nO1xuICAgIG1pbkxlbmd0aD86IHN0cmluZztcbiAgICBtYXhMZW5ndGg/OiBzdHJpbmc7XG4gICAgbWluVmFsdWU/OiBzdHJpbmc7XG4gICAgbWF4VmFsdWU/OiBzdHJpbmc7XG4gICAgaW50ZWdlcj86IHN0cmluZztcbiAgICBudW1iZXI/OiBzdHJpbmc7XG4gICAgZGVjaW1hbD86IHN0cmluZztcbiAgICBlbWFpbD86IHN0cmluZztcbiAgICBwYXNzd29yZD86IHN0cmluZztcbiAgICB0ZWw/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xuICB9ID0ge307XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBGaWxlTGlzdD4oKTtcblxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaW5wdXRJZDogc3RyaW5nID0gJyc7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcbiAgaXNJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTmdDb250cm9sKSkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICB0aGlzLm5nQ29udHJvbD8uc3RhdHVzQ2hhbmdlcz8uc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkXG4gICAgICAgICAgPyBzdGF0dXMgPT09ICdJTlZBTElEJyAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkXG4gICAgICAgICAgOiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5wdXRJZCA9IGB2ZXJiZW5hLWlucHV0LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ZpbGUnICYmIHRhcmdldC5maWxlcykge1xuICAgICAgY29uc3QgZmlsZXMgPSB0YXJnZXQuZmlsZXM7XG4gICAgICB0aGlzLm9uQ2hhbmdlKGZpbGVzKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChmaWxlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0YXJnZXQudmFsdWUudHJpbSgpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuYXBwbHlDYXBpdGFsaXphdGlvbih0aGlzLnZhbHVlLCB0aGlzLmNhcGl0YWxpemF0aW9uKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdGhpcy5zYW5pdGl6ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZShzYW5pdGl6ZWRWYWx1ZSk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoc2FuaXRpemVkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5Q2FwaXRhbGl6YXRpb24odmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICd1cHBlcmNhc2UnOiByZXR1cm4gdmFsdWUudG9VcHBlckNhc2UoKTtcbiAgICAgIGNhc2UgJ2xvd2VyY2FzZSc6IHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY2FzZSAnc2VudGVuY2VjYXNlJzogcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNhc2UgJ3Bhc2NhbGNhc2UnOiByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFx3Ky9nLCAodykgPT4gd1swXS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNhc2UgJ2NhbWVsY2FzZSc6IHJldHVybiB2YWx1ZS5yZXBsYWNlKC8oPzpeXFx3fFtBLVpdfFxcYlxcd3xcXHMrKS9nLCAobWF0Y2gsIGluZGV4KSA9PlxuICAgICAgICBpbmRleCA9PT0gMCA/IG1hdGNoLnRvTG93ZXJDYXNlKCkgOiBtYXRjaC50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9cXHMrL2csICcnKTtcbiAgICAgIGRlZmF1bHQ6IHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBzYW5pdGl6ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChbJ251bWJlcicsICdkZWNpbWFsJywgJ2ludGVnZXInXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMucmVxdWlyZWQgfHwgJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5MZW5ndGggJiYgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluTGVuZ3RoIHx8IGBNaW5pbXVtIGxlbmd0aCBpcyAke3RoaXMubWluTGVuZ3RofS5gO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5tYXhMZW5ndGggfHwgYE1heGltdW0gbGVuZ3RoIGlzICR7dGhpcy5tYXhMZW5ndGh9LmA7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWUgPSB0aGlzLnNhbml0aXplVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gcGFyc2VGbG9hdChzYW5pdGl6ZWRWYWx1ZSk7XG5cbiAgICBpZiAoWydpbnRlZ2VyJywgJ251bWJlcicsICdkZWNpbWFsJ10uaW5jbHVkZXModGhpcy50eXBlKSkge1xuICAgICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgbnVtZXJpY1ZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluVmFsdWUgfHwgYE1pbmltdW0gdmFsdWUgaXMgJHt0aGlzLm1pbn0uYDtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgbnVtZXJpY1ZhbHVlID4gdGhpcy5tYXgpIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWF4VmFsdWUgfHwgYE1heGltdW0gdmFsdWUgaXMgJHt0aGlzLm1heH0uYDtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ludGVnZXInICYmICEvXlxcZCskLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5pbnRlZ2VyIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBpbnRlZ2VyLic7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ251bWJlcicgJiYgIS9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5udW1iZXIgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlci4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdkZWNpbWFsJyAmJiAhL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLmRlY2ltYWwgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGRlY2ltYWwuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnZW1haWwnICYmICEvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5lbWFpbCB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcgJiYgdGhpcy52YWx1ZS5sZW5ndGggPCA4KSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5wYXNzd29yZCB8fCAnUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgbG9uZy4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnICYmICEvXlxcKz9bMS05XVxcZHsxLDE0fSQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLnRlbCB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgdGVsZXBob25lIG51bWJlci4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd1cmwnICYmICEvXihodHRwcz98ZnRwKTpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc10qJC8udGVzdCh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMudXJsIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBVUkwuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzSW52YWxpZCA9IGZhbHNlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gdGhpcy5hcHBseUNhcGl0YWxpemF0aW9uKHZhbHVlLnRyaW0oKSwgdGhpcy5jYXBpdGFsaXphdGlvbikgOiAnJztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXIge3sgaW5wdXRDb250YWluZXJDbGFzcyB9fVwiXG4gICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICdkaXNwbGF5JzogJ2ZsZXgnLFxuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogJ2NvbHVtbicsXG5cbiAgICAgfVwiXG4+XG4gIDxkaXZcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAnZGlzcGxheSc6ICdmbGV4JyxcbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBsYWJlbFBvc2l0aW9uLFxuICAgICAgJ2NvbG9yJzogbGFiZWxDb2xvcixcbiAgICAgICdwYWRkaW5nJzogJzAnXG4gICAgfVwiXG4gICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiXG4gID5cbiAgICA8bGFiZWwgW2Zvcl09XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImlucHV0LXdyYXBwZXIge3sgaW5wdXRXcmFwcGVyQ2xhc3MgfX1cIj5cbiAgICA8aW5wdXRcbiAgICBbbmdDbGFzc109XCJ7J25nLWludmFsaWQnOiBpc0ludmFsaWR9XCJcbiAgICAgIFtpZF09XCJsYWJlbFwiXG4gICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxuXG4gICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGg/LnRvU3RyaW5nKClcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBiZ0NvbG9yLFxuICAgICAgICAnYm9yZGVyJzogaXNJbnZhbGlkICYmIGVycm9yQm9yZGVyQ29sb3I/ICcxcHggc29saWQgJyArIGVycm9yQm9yZGVyQ29sb3IgOiBib3JkZXIgLFxuICAgICAgICAnYm9yZGVyLXJhZGl1cyc6IGJvcmRlclJhZGl1cyxcbiAgICAgICAgJ2NvbG9yJzogdGV4dENvbG9yXG4gICAgICB9XCJcbiAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGQgdmVyYmVuLWlucHV0XCJcbiAgICAvPlxuXG4gICAgPCEtLSBDb25kaXRpb25hbCByZWQgZG90IGZvciBlcnJvciB3aGVuIHNob3dFcnJvck1lc3NhZ2UgaXMgZmFsc2UgLS0+XG4gICAgPHZlcmJlbi10b29sdGlwICpuZ0lmPVwiZXJyb3JNZXNzYWdlICYmICFzaG93RXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzPVwiZXJyb3ItdG9vbHRpcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWRvdFwiXG4gICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBlcnJvckJvcmRlckNvbG9yIH1cIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdmVyYmVuLXRvb2x0aXA+XG5cbiAgICA8IS0tIFRvb2x0aXAgdGVtcGxhdGUgZm9yIGVycm9yIG1lc3NhZ2UgLS0+XG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVGVtcGxhdGU+XG4gICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLSBDb25kaXRpb25hbCBlcnJvciBtZXNzYWdlIGRpc3BsYXkgLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJlcnJvck1lc3NhZ2UgJiYgc2hvd0Vycm9yTWVzc2FnZVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyAnY29sb3InOiBlcnJvck1lc3NhZ2VDb2xvciB9XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J3ZlcmJlbi1lcnJvci1tZXNzYWdlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAndG9wLWVycm9yJzogZXJyb3JQb3NpdGlvbiA9PT0gJ3RvcCcsXG4gICAgICAgICAgICAgICAgICAgICAgJ2xlZnQtZXJyb3InOiBlcnJvclBvc2l0aW9uID09PSAnbGVmdCcsXG4gICAgICAgICAgICAgICAgICAgICAgJ3JpZ2h0LWVycm9yJzogZXJyb3JQb3NpdGlvbiA9PT0gJ3JpZ2h0J31cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ2ZXJiZW4tZXJyb3ItbWVzc2FnZSBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cblxuICAgICAge3sgZXJyb3JNZXNzYWdlIH19XG5cbiAgICA8L3NwYW4+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuYS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9WZXJiZW5hLWlucHV0L3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvVmVyYmVuYS1pbnB1dC92ZXJiZW5hLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsUUFBUSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ILE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBT2pFLE1BQU0sT0FBTyxxQkFBcUI7SUFzRTZDO0lBckVwRSxLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixXQUFXLEdBQXFCLE1BQU0sQ0FBQztJQUN2QyxTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLElBQUksR0FBNEgsTUFBTSxDQUFDO0lBQ3ZJLE9BQU8sR0FBVyxTQUFTLENBQUM7SUFDNUIsTUFBTSxHQUFXLEVBQUUsQ0FBQztJQUNwQixZQUFZLEdBQVcsS0FBSyxDQUFDO0lBQzdCLFNBQVMsR0FBVyxNQUFNLENBQUM7SUFDM0IsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUNuQixhQUFhLEdBQVcsT0FBTyxDQUFDO0lBQ2hDLFVBQVUsR0FBVyxPQUFPLENBQUM7SUFDN0IsT0FBTyxHQUFZLEtBQUssQ0FBQyxDQUFDLGdCQUFnQjtJQUMxQyxRQUFRLEdBQVksS0FBSyxDQUFDLENBQUMsa0JBQWtCO0lBQzdDLEdBQUcs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aEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBZUksV0FBVztzQkFBcEIsTUFBTTtnQkFTRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmLCBJbmplY3QsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbmEtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmVyYmVuYS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFZlcmJlbmFJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQge1xuICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlSG9sZGVyOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc3ZnUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAnbGVmdCc7XG4gIEBJbnB1dCgpIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ2ludGVnZXInIHwgJ251bWJlcicgfCAnZGVjaW1hbCcgfCAnZW1haWwnIHwgJ2RhdGUnIHwgJ3RlbCcgfCAndXJsJyB8ICdmaWxlJyB8ICdjb2xvcicgfCAnc2VhcmNoJyA9ICd0ZXh0JztcbiAgQElucHV0KCkgYmdDb2xvcjogc3RyaW5nID0gJyNmOWY5ZjknO1xuICBASW5wdXQoKSBib3JkZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM6IHN0cmluZyA9ICc1cHgnO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I6IHN0cmluZyA9ICcjMzMzJztcbiAgQElucHV0KCkgdmFsdWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBsYWJlbFBvc2l0aW9uOiBzdHJpbmcgPSAnc3RhcnQnO1xuICBASW5wdXQoKSBsYWJlbENvbG9yOiBzdHJpbmcgPSAnYmxhY2snO1xuICBASW5wdXQoKSBkaXNhYmxlOiBib29sZWFuID0gZmFsc2U7IC8vIERpc2FibGUgaW5wdXRcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTsgLy8gUmVhZC1vbmx5IGlucHV0XG4gIEBJbnB1dCgpIG1pbj86IG51bWJlcjtcbiAgQElucHV0KCkgbWF4PzogbnVtYmVyO1xuICBASW5wdXQoKSBzaG93Qm9yZGVyOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgc2hvd0Vycm9yTWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZUNvbG9yOiBzdHJpbmcgPSAncmVkJztcbiAgQElucHV0KCkgZXJyb3JCb3JkZXJDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgZXJyb3JQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICd0b3AnIHwgJ2JvdHRvbScgPSAnYm90dG9tJztcbiAgQElucHV0KCkgc3ZnOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgc3ZnV2lkdGg6IG51bWJlciA9IDIwO1xuICBASW5wdXQoKSBzdmdIZWlnaHQ6IG51bWJlciA9IDIwO1xuICBASW5wdXQoKSBzdmdDb2xvcjogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KCkgY2FwaXRhbGl6YXRpb246ICdub25lJyB8ICd1cHBlcmNhc2UnIHwgJ2xvd2VyY2FzZScgfCAnc2VudGVuY2VjYXNlJyB8ICdwYXNjYWxjYXNlJyB8ICdjYW1lbGNhc2UnID0gJ25vbmUnO1xuXG4gIEBJbnB1dCgpIGlucHV0Q29udGFpbmVyQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpbnB1dEZpZWxkQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBpbnB1dFdyYXBwZXJDbGFzczogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBhc3N3b3JkVG9nZ2xlPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBjdXN0b21FcnJvck1lc3NhZ2VzOiB7XG4gICAgcmVxdWlyZWQ/OiBzdHJpbmc7XG4gICAgbWluTGVuZ3RoPzogc3RyaW5nO1xuICAgIG1heExlbmd0aD86IHN0cmluZztcbiAgICBtaW5WYWx1ZT86IHN0cmluZztcbiAgICBtYXhWYWx1ZT86IHN0cmluZztcbiAgICBpbnRlZ2VyPzogc3RyaW5nO1xuICAgIG51bWJlcj86IHN0cmluZztcbiAgICBkZWNpbWFsPzogc3RyaW5nO1xuICAgIGVtYWlsPzogc3RyaW5nO1xuICAgIHBhc3N3b3JkPzogc3RyaW5nO1xuICAgIHRlbD86IHN0cmluZztcbiAgICB1cmw/OiBzdHJpbmc7XG4gIH0gPSB7fTtcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IEZpbGVMaXN0PigpO1xuXG4gIGVycm9yTWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBpbnB1dElkOiBzdHJpbmcgPSAnJztcbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcbiAgaXNJbnZhbGlkOiBib29sZWFuID0gZmFsc2U7XG5cblxuICBASW5wdXQoKSBpY29uOiBzdHJpbmcgPSAnZXllJztcbiAgQElucHV0KCkgdGV4dFBhc3M6IHN0cmluZyA9ICdTaG93JztcblxuXG4gIHRvZ2dsZUljb24oKTogdm9pZCB7XG4gICAgdGhpcy5pY29uID0gdGhpcy5pY29uID09PSAnZXllJyA/ICdleWUtY2xvc2VkJyA6ICdleWUnO1xuICAgIHRoaXMudGV4dFBhc3MgPSB0aGlzLnRleHRQYXNzID09PSAnU2hvdycgPyAnSGlkZScgOiAnU2hvdyc7XG4gICAgdGhpcy50eXBlID0gdGhpcy50eXBlID09PSAncGFzc3dvcmQnID8gJ3RleHQnIDogJ3Bhc3N3b3JkJztcblxuICB9XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQFNlbGYoKSBASW5qZWN0KGZvcndhcmRSZWYoKCkgPT4gTmdDb250cm9sKSkgcHJpdmF0ZSBuZ0NvbnRyb2w6IE5nQ29udHJvbCkge1xuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgICB0aGlzLm5nQ29udHJvbD8uc3RhdHVzQ2hhbmdlcz8uc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0aGlzLm5nQ29udHJvbC50b3VjaGVkXG4gICAgICAgICAgPyBzdGF0dXMgPT09ICdJTlZBTElEJyAmJiB0aGlzLm5nQ29udHJvbC50b3VjaGVkXG4gICAgICAgICAgOiBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5wdXRJZCA9IGB2ZXJiZW5hLWlucHV0LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gIH1cblxuICBvbklucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ZpbGUnICYmIHRhcmdldC5maWxlcykge1xuICAgICAgY29uc3QgZmlsZXMgPSB0YXJnZXQuZmlsZXM7XG4gICAgICB0aGlzLm9uQ2hhbmdlKGZpbGVzKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChmaWxlcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0YXJnZXQudmFsdWUudHJpbSgpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuYXBwbHlDYXBpdGFsaXphdGlvbih0aGlzLnZhbHVlLCB0aGlzLmNhcGl0YWxpemF0aW9uKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdGhpcy5zYW5pdGl6ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZShzYW5pdGl6ZWRWYWx1ZSk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoc2FuaXRpemVkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5Q2FwaXRhbGl6YXRpb24odmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICd1cHBlcmNhc2UnOiByZXR1cm4gdmFsdWUudG9VcHBlckNhc2UoKTtcbiAgICAgIGNhc2UgJ2xvd2VyY2FzZSc6IHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY2FzZSAnc2VudGVuY2VjYXNlJzogcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNhc2UgJ3Bhc2NhbGNhc2UnOiByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFx3Ky9nLCAodykgPT4gd1swXS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNhc2UgJ2NhbWVsY2FzZSc6IHJldHVybiB2YWx1ZS5yZXBsYWNlKC8oPzpeXFx3fFtBLVpdfFxcYlxcd3xcXHMrKS9nLCAobWF0Y2gsIGluZGV4KSA9PlxuICAgICAgICBpbmRleCA9PT0gMCA/IG1hdGNoLnRvTG93ZXJDYXNlKCkgOiBtYXRjaC50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9cXHMrL2csICcnKTtcbiAgICAgIGRlZmF1bHQ6IHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBzYW5pdGl6ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChbJ251bWJlcicsICdkZWNpbWFsJywgJ2ludGVnZXInXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMucmVxdWlyZWQgfHwgJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5MZW5ndGggJiYgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluTGVuZ3RoIHx8IGBNaW5pbXVtIGxlbmd0aCBpcyAke3RoaXMubWluTGVuZ3RofS5gO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5tYXhMZW5ndGggfHwgYE1heGltdW0gbGVuZ3RoIGlzICR7dGhpcy5tYXhMZW5ndGh9LmA7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWUgPSB0aGlzLnNhbml0aXplVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gcGFyc2VGbG9hdChzYW5pdGl6ZWRWYWx1ZSk7XG5cbiAgICBpZiAoWydpbnRlZ2VyJywgJ251bWJlcicsICdkZWNpbWFsJ10uaW5jbHVkZXModGhpcy50eXBlKSkge1xuICAgICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgbnVtZXJpY1ZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluVmFsdWUgfHwgYE1pbmltdW0gdmFsdWUgaXMgJHt0aGlzLm1pbn0uYDtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMubWF4ICE9PSB1bmRlZmluZWQgJiYgbnVtZXJpY1ZhbHVlID4gdGhpcy5tYXgpIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWF4VmFsdWUgfHwgYE1heGltdW0gdmFsdWUgaXMgJHt0aGlzLm1heH0uYDtcbiAgICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2ludGVnZXInICYmICEvXlxcZCskLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5pbnRlZ2VyIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBpbnRlZ2VyLic7XG4gICAgICB0aGlzLmlzSW52YWxpZCA9IHRydWU7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ251bWJlcicgJiYgIS9eXFxkKyhcXC5cXGQrKT8kLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5udW1iZXIgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlci4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdkZWNpbWFsJyAmJiAhL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLmRlY2ltYWwgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGRlY2ltYWwuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnZW1haWwnICYmICEvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5lbWFpbCB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdwYXNzd29yZCcgJiYgdGhpcy52YWx1ZS5sZW5ndGggPCA4KSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5wYXNzd29yZCB8fCAnUGFzc3dvcmQgbXVzdCBiZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgbG9uZy4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnICYmICEvXlxcKz9bMS05XVxcZHsxLDE0fSQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLnRlbCB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgdGVsZXBob25lIG51bWJlci4nO1xuICAgICAgdGhpcy5pc0ludmFsaWQgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICd1cmwnICYmICEvXihodHRwcz98ZnRwKTpcXC9cXC9bXlxccy8kLj8jXS5bXlxcc10qJC8udGVzdCh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMudXJsIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBVUkwuJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkID0gdHJ1ZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzSW52YWxpZCA9IGZhbHNlO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8gdGhpcy5hcHBseUNhcGl0YWxpemF0aW9uKHZhbHVlLnRyaW0oKSwgdGhpcy5jYXBpdGFsaXphdGlvbikgOiAnJztcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSA9IGlzRGlzYWJsZWQ7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXIge3sgaW5wdXRDb250YWluZXJDbGFzcyB9fVwiXG4gICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICdkaXNwbGF5JzogJ2ZsZXgnLFxuICAgICAgJ2ZsZXgtZGlyZWN0aW9uJzogJ2NvbHVtbidcbiAgICAgfVwiXG4+XG4gIDxkaXZcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAnZGlzcGxheSc6ICdmbGV4JyxcbiAgICAgICdqdXN0aWZ5LWNvbnRlbnQnOiBsYWJlbFBvc2l0aW9uLFxuICAgICAgJ2NvbG9yJzogbGFiZWxDb2xvcixcbiAgICAgICdwYWRkaW5nJzogJzAnXG4gICAgfVwiXG4gICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiXG4gID5cbiAgICA8ZGl2IFtuZ1N0eWxlXT1cIntcbiAgICAgICd3aWR0aCc6ICcxMDAlJyxcbiAgICAgICdkaXNwbGF5JzogJ2ZsZXgnLFxuICAgICAgJ2p1c3RpZnktY29udGVudCc6J3NwYWNlLWJldHdlZW4nXG5cbiAgICAgfVwiPlxuICAgICAgPGxhYmVsIFtmb3JdPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gICAgICA8IS0tIGluY2FzZSBpIG5lZWQgaXQgYmFjayAgLS0+XG4gICAgICA8IS0tIDxkaXYgKm5nSWY9XCIgcGFzc3dvcmRUb2dnbGUgPT09IHRydWVcIiBbbmdTdHlsZV09XCJ7XG5cbiAgICAgICAgJ2Rpc3BsYXknOiAnZmxleCcsXG4gICAgICAgICdhbGlnbi1pdGVtJzonY2VudGVyJyxcbiAgICAgICAgJ2dhcCc6JzRweCcsXG4gICAgICAgICdjb2xvcic6J2dyZXknLFxuICAgICAgICAnY3Vyc29yJzoncG9pbnRlcidcblxuICAgICAgIH1cIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZUljb24oKVwiXG4gICAgICAgPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuXG5cbiAgICAgICAgW2ljb25dPVwiaWNvblwiXG4gICAgICAgIFt3aWR0aF09XCIyMFwiXG4gICAgICAgIFtoZWlnaHRdPVwiMjBcIlxuICAgICAgICBjb2xvcj1cImJsYWNrXCJcbiAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgPHA+e3sgdGV4dFBhc3MgfX08L3A+XG4gICAgPC9kaXY+IC0tPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtd3JhcHBlciBcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIHBhc3N3b3JkVG9nZ2xlID09PSB0cnVlXCIgW25nU3R5bGVdPVwie1xuXG4gICAgICAnZGlzcGxheSc6ICdncmlkJyxcbiAgICAgICdhbGlnbi1pdGVtcyc6J2NlbnRlcicsXG4gICAgICAnanVzdGlmeS1jb250ZW50JzonY2VudGVyJyxcbiAgICAgICdnYXAnOic0cHgnLFxuICAgICAgJ2NvbG9yJzonZ3JleScsXG4gICAgICAnY3Vyc29yJzoncG9pbnRlcicsXG4gICAgICAncG9zaXRpb24nOiAnYWJzb2x1dGUnLFxuICAgICAgJ3JpZ2h0JzonOHB4JyxcbiAgICAgICd0b3AnOicwJyxcbiAgICAgICdib3R0b20nOicwJyxcblxuICAgICAgJ21hcmdpbic6ICdhdXRvJyxcblxuXG4gICAgIH1cIlxuICAgIChjbGljayk9XCJ0b2dnbGVJY29uKClcIlxuICAgICA+XG4gICAgICA8dmVyYmVuLXN2Z1xuXG5cbiAgICAgIFtpY29uXT1cImljb25cIlxuICAgICAgW3dpZHRoXT1cIjIwXCJcbiAgICAgIFtoZWlnaHRdPVwiMjBcIlxuICAgICAgY29sb3I9XCJibGFja1wiXG4gICAgPjwvdmVyYmVuLXN2Zz5cblxuICA8L2Rpdj5cbiAgICA8aW5wdXRcbiAgICAgIFtuZ0NsYXNzXT1cInsnbmctaW52YWxpZCc6IGlzSW52YWxpZH1cIlxuICAgICAgW2lkXT1cImxhYmVsXCJcbiAgICAgIFthdHRyLnR5cGVdPVwidHlwZVwiXG4gICAgICBbYXR0ci5wbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiXG4gICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGg/LnRvU3RyaW5nKClcIlxuICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZGlzYWJsZSA/IHRydWUgOiBudWxsXCJcbiAgICAgIFthdHRyLnJlYWRPbmx5XT1cInJlYWRPbmx5ID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBiZ0NvbG9yLFxuICAgICAgICAnYm9yZGVyJzogaXNJbnZhbGlkICYmIGVycm9yQm9yZGVyQ29sb3IgPyAnMXB4IHNvbGlkICcgKyBlcnJvckJvcmRlckNvbG9yIDogYm9yZGVyLFxuICAgICAgICAnYm9yZGVyLXJhZGl1cyc6IGJvcmRlclJhZGl1cyxcbiAgICAgICAgJ2NvbG9yJzogdGV4dENvbG9yXG4gICAgICB9XCJcbiAgICAgIGNsYXNzPVwiaW5wdXQtZmllbGQgdmVyYmVuLWlucHV0IHt7IGlucHV0V3JhcHBlckNsYXNzIH19XCJcbiAgICAvPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkICYmIHNob3dFcnJvck1lc3NhZ2VcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiBbbmdTdHlsZV09XCJ7XG4gICAgJ2NvbG9yJzogZXJyb3JNZXNzYWdlQ29sb3IsXG4gICAgJ3Bvc2l0aW9uJzogZXJyb3JQb3NpdGlvblxuICB9XCI+XG4gICAge3sgZXJyb3JNZXNzYWdlIH19XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -3,18 +3,19 @@ import { FormsModule } from '@angular/forms';
3
3
  import { CommonModule } from '@angular/common';
4
4
  import { TooltipModule } from '../components/tooltip/tooltip.module';
5
5
  import { VerbenaInputComponent } from './verbena-input.component';
6
+ import { SvgModule } from "../components/svg/svg.module";
6
7
  import * as i0 from "@angular/core";
7
8
  export class VerbenaInputModule {
8
9
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, declarations: [VerbenaInputComponent], imports: [CommonModule, FormsModule, TooltipModule], exports: [VerbenaInputComponent] });
10
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, imports: [CommonModule, FormsModule, TooltipModule] });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, declarations: [VerbenaInputComponent], imports: [CommonModule, FormsModule, TooltipModule, SvgModule], exports: [VerbenaInputComponent] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, imports: [CommonModule, FormsModule, TooltipModule, SvgModule] });
11
12
  }
12
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, decorators: [{
13
14
  type: NgModule,
14
15
  args: [{
15
16
  declarations: [VerbenaInputComponent],
16
- imports: [CommonModule, FormsModule, TooltipModule],
17
+ imports: [CommonModule, FormsModule, TooltipModule, SvgModule],
17
18
  exports: [VerbenaInputComponent],
18
19
  }]
19
20
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuYS1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9WZXJiZW5hLWlucHV0L3ZlcmJlbmEtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxrQkFBa0I7dUdBQWxCLGtCQUFrQjt3R0FBbEIsa0JBQWtCLGlCQUpkLHFCQUFxQixhQUMxQixZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsYUFDeEMscUJBQXFCO3dHQUVwQixrQkFBa0IsWUFIbkIsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhOzsyRkFHdkMsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQztvQkFDbkQsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xuaW1wb3J0IHsgVmVyYmVuYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi92ZXJiZW5hLWlucHV0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1ZlcmJlbmFJbnB1dENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBUb29sdGlwTW9kdWxlXSxcbiAgZXhwb3J0czogW1ZlcmJlbmFJbnB1dENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFZlcmJlbmFJbnB1dE1vZHVsZSB7fVxuIl19
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuYS1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9WZXJiZW5hLWlucHV0L3ZlcmJlbmEtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDOztBQU96RCxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixpQkFKZCxxQkFBcUIsYUFDMUIsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsU0FBUyxhQUNuRCxxQkFBcUI7d0dBRXBCLGtCQUFrQixZQUhuQixZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxTQUFTOzsyRkFHbEQsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxTQUFTLENBQUM7b0JBQzlELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBUb29sdGlwTW9kdWxlIH0gZnJvbSAnLi4vY29tcG9uZW50cy90b29sdGlwL3Rvb2x0aXAubW9kdWxlJztcbmltcG9ydCB7IFZlcmJlbmFJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vdmVyYmVuYS1pbnB1dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3ZnTW9kdWxlIH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvc3ZnL3N2Zy5tb2R1bGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVmVyYmVuYUlucHV0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFRvb2x0aXBNb2R1bGUsIFN2Z01vZHVsZV0sXG4gIGV4cG9ydHM6IFtWZXJiZW5hSW5wdXRDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBWZXJiZW5hSW5wdXRNb2R1bGUge31cbiJdfQ==
@@ -191,7 +191,7 @@ export class DataExportComponent {
191
191
  this.showAllGroups = !this.showAllGroups;
192
192
  }
193
193
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DataExportComponent, deps: [{ token: i1.DataExportService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
194
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: DataExportComponent, selector: "lib-data-export", inputs: { data: "data" }, outputs: { exportDataEvent: "exportDataEvent" }, usesOnChanges: true, ngImport: i0, template: "<verben-card\n width=\"24rem\"\n borderRadius=\"1rem\"\n [border]=\"'1px solid #D4A007'\"\n bgColor=\"#FFFFFF\"\n class=\"export-card\"\n>\n <div card-header class=\"card-header\">\n <h4 class=\"header-title\">Export</h4>\n <button\n class=\"reset-button\"\n [style.color]=\"'#3479E9'\"\n [style.background-color]=\"'transparent'\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetAll()\"\n >\n Reset\n </button>\n </div>\n <div card-body class=\"card-body\">\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Profiles</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n ></verben-svg>\n </div>\n <div *ngFor=\"let profile of visibleProfiles; let i = index\" class=\"item\">\n <div class=\"item-label\">\n <input\n type=\"checkbox\"\n [id]=\"'profile-' + i\"\n [(ngModel)]=\"profile.selected\"\n />\n <label [for]=\"'profile-' + i\" class=\"checkbox-label\">\n {{ profile.name }}\n </label>\n </div>\n <div class=\"item-actions\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n (click)=\"editProfile(profile)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"removeProfile(profile)\"\n ></verben-svg>\n </div>\n </div>\n <div\n *ngIf=\"profiles.length > 3\"\n (click)=\"toggleShowAllProfiles()\"\n class=\"show-more\"\n >\n <span>{{ showAllProfiles ? \"Show less\" : \"Show more\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"black\"\n stroke=\"black\"\n ></verben-svg>\n </div>\n </section>\n <hr class=\"divider\" />\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Group</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n ></verben-svg>\n </div>\n <form [formGroup]=\"newGroupForm\" (ngSubmit)=\"addGroup()\">\n <verbena-input\n placeholder=\"Group name\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100%\"\n height=\"20px\"\n pd=\"4px 6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n formControlName=\"name\"\n ></verbena-input>\n </form>\n <div *ngFor=\"let item of visibleGroups; let i = index\" class=\"item\">\n <div class=\"item-label\">\n <input\n type=\"checkbox\"\n [id]=\"'group-' + i\"\n [(ngModel)]=\"item.selected\"\n />\n <label [for]=\"'group-' + i\" class=\"checkbox-label\">\n {{ item.name }}\n </label>\n </div>\n <div class=\"item-actions\" *ngIf=\"item.type === 'operation'\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n (click)=\"editOperation(item)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"removeOperation(item)\"\n ></verben-svg>\n </div>\n </div>\n <div\n *ngIf=\"groupItems.length > 3\"\n (click)=\"toggleShowAllGroups()\"\n class=\"show-more\"\n >\n <span>{{ showAllGroups ? \"Show less\" : \"Show more\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"black\"\n stroke=\"black\"\n ></verben-svg>\n </div>\n <button class=\"add-button\" (click)=\"addGroup()\">+ Add</button>\n </section>\n <hr class=\"divider\" />\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Operation</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n ></verben-svg>\n </div>\n <verbena-input\n placeholder=\"Operation name\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100%\"\n height=\"20px\"\n pd=\"2px 6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"newOperation.name\"\n ></verbena-input>\n <div class=\"operation-grid\">\n <verben-drop-down\n width=\"'8rem'\"\n placeholder=\"Select field\"\n [options]=\"numericProperties.concat(stringProperties)\"\n [(ngModel)]=\"newOperation.field1\"\n (ngModelChange)=\"onField1Change()\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"'8rem'\"\n placeholder=\"Select operator\"\n [options]=\"availableOperators\"\n [(ngModel)]=\"newOperation.operator\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"'8rem'\"\n placeholder=\"Select field\"\n [options]=\"availableFields2\"\n [(ngModel)]=\"newOperation.field2\"\n >\n </verben-drop-down>\n </div>\n <button class=\"add-button\" (click)=\"addOrUpdateOperation()\">\n {{ isEditingOperation ? \"Update\" : \"+ Add\" }}\n </button>\n </section>\n </div>\n <div card-footer class=\"card-footer\">\n <button class=\"export-button\" (click)=\"exportData()\">Export</button>\n </div>\n</verben-card>\n", styles: [".export-card{font-size:.75rem;z-index:10}.card-header{display:flex;justify-content:space-between;align-items:center}.header-title{font-weight:600;font-size:.8125rem}.card-body,.section{display:flex;flex-direction:column;gap:1rem}.section-header{display:flex;justify-content:space-between;align-items:center}.section-title{font-size:.8125rem}.item{display:flex;justify-content:space-between;align-items:center}.item-label{display:flex;align-items:center;gap:.5rem}.checkbox-label{line-height:1}.item-actions{display:flex;gap:.5rem}.show-more{display:flex;align-items:center;color:#6b7280;cursor:pointer}.divider{border:none;border-top:1px solid #e8eaf1}.operation-grid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.add-button{margin-top:.5rem;outline:none;border:none;background-color:transparent;color:#3479e9;font-size:.75rem;font-weight:500;cursor:pointer}.card-footer{display:flex;justify-content:flex-end;background-color:transparent}.export-button{margin-top:.5rem;outline:none;border:none;padding:.2rem 1.6rem;background-color:#ffe681;color:#404040;font-size:.75rem;font-weight:600;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i5.CardComponent, selector: "verben-card", inputs: ["pd", "mg", "height", "width", "textColor", "bgColor", "border", "borderRadius", "disabled", "aspectRatio"] }, { kind: "component", type: i6.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i7.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "customErrorMessages"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
194
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: DataExportComponent, selector: "lib-data-export", inputs: { data: "data" }, outputs: { exportDataEvent: "exportDataEvent" }, usesOnChanges: true, ngImport: i0, template: "<verben-card\n width=\"24rem\"\n borderRadius=\"1rem\"\n [border]=\"'1px solid #D4A007'\"\n bgColor=\"#FFFFFF\"\n class=\"export-card\"\n>\n <div card-header class=\"card-header\">\n <h4 class=\"header-title\">Export</h4>\n <button\n class=\"reset-button\"\n [style.color]=\"'#3479E9'\"\n [style.background-color]=\"'transparent'\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetAll()\"\n >\n Reset\n </button>\n </div>\n <div card-body class=\"card-body\">\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Profiles</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n ></verben-svg>\n </div>\n <div *ngFor=\"let profile of visibleProfiles; let i = index\" class=\"item\">\n <div class=\"item-label\">\n <input\n type=\"checkbox\"\n [id]=\"'profile-' + i\"\n [(ngModel)]=\"profile.selected\"\n />\n <label [for]=\"'profile-' + i\" class=\"checkbox-label\">\n {{ profile.name }}\n </label>\n </div>\n <div class=\"item-actions\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n (click)=\"editProfile(profile)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"removeProfile(profile)\"\n ></verben-svg>\n </div>\n </div>\n <div\n *ngIf=\"profiles.length > 3\"\n (click)=\"toggleShowAllProfiles()\"\n class=\"show-more\"\n >\n <span>{{ showAllProfiles ? \"Show less\" : \"Show more\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"black\"\n stroke=\"black\"\n ></verben-svg>\n </div>\n </section>\n <hr class=\"divider\" />\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Group</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n ></verben-svg>\n </div>\n <form [formGroup]=\"newGroupForm\" (ngSubmit)=\"addGroup()\">\n <verbena-input\n placeholder=\"Group name\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100%\"\n height=\"20px\"\n pd=\"4px 6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n formControlName=\"name\"\n ></verbena-input>\n </form>\n <div *ngFor=\"let item of visibleGroups; let i = index\" class=\"item\">\n <div class=\"item-label\">\n <input\n type=\"checkbox\"\n [id]=\"'group-' + i\"\n [(ngModel)]=\"item.selected\"\n />\n <label [for]=\"'group-' + i\" class=\"checkbox-label\">\n {{ item.name }}\n </label>\n </div>\n <div class=\"item-actions\" *ngIf=\"item.type === 'operation'\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n (click)=\"editOperation(item)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"removeOperation(item)\"\n ></verben-svg>\n </div>\n </div>\n <div\n *ngIf=\"groupItems.length > 3\"\n (click)=\"toggleShowAllGroups()\"\n class=\"show-more\"\n >\n <span>{{ showAllGroups ? \"Show less\" : \"Show more\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"black\"\n stroke=\"black\"\n ></verben-svg>\n </div>\n <button class=\"add-button\" (click)=\"addGroup()\">+ Add</button>\n </section>\n <hr class=\"divider\" />\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Operation</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n ></verben-svg>\n </div>\n <verbena-input\n placeholder=\"Operation name\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100%\"\n height=\"20px\"\n pd=\"2px 6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"newOperation.name\"\n ></verbena-input>\n <div class=\"operation-grid\">\n <verben-drop-down\n width=\"'8rem'\"\n placeholder=\"Select field\"\n [options]=\"numericProperties.concat(stringProperties)\"\n [(ngModel)]=\"newOperation.field1\"\n (ngModelChange)=\"onField1Change()\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"'8rem'\"\n placeholder=\"Select operator\"\n [options]=\"availableOperators\"\n [(ngModel)]=\"newOperation.operator\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"'8rem'\"\n placeholder=\"Select field\"\n [options]=\"availableFields2\"\n [(ngModel)]=\"newOperation.field2\"\n >\n </verben-drop-down>\n </div>\n <button class=\"add-button\" (click)=\"addOrUpdateOperation()\">\n {{ isEditingOperation ? \"Update\" : \"+ Add\" }}\n </button>\n </section>\n </div>\n <div card-footer class=\"card-footer\">\n <button class=\"export-button\" (click)=\"exportData()\">Export</button>\n </div>\n</verben-card>\n", styles: [".export-card{font-size:.75rem;z-index:10}.card-header{display:flex;justify-content:space-between;align-items:center}.header-title{font-weight:600;font-size:.8125rem}.card-body,.section{display:flex;flex-direction:column;gap:1rem}.section-header{display:flex;justify-content:space-between;align-items:center}.section-title{font-size:.8125rem}.item{display:flex;justify-content:space-between;align-items:center}.item-label{display:flex;align-items:center;gap:.5rem}.checkbox-label{line-height:1}.item-actions{display:flex;gap:.5rem}.show-more{display:flex;align-items:center;color:#6b7280;cursor:pointer}.divider{border:none;border-top:1px solid #e8eaf1}.operation-grid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.add-button{margin-top:.5rem;outline:none;border:none;background-color:transparent;color:#3479e9;font-size:.75rem;font-weight:500;cursor:pointer}.card-footer{display:flex;justify-content:flex-end;background-color:transparent}.export-button{margin-top:.5rem;outline:none;border:none;padding:.2rem 1.6rem;background-color:#ffe681;color:#404040;font-size:.75rem;font-weight:600;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i5.CardComponent, selector: "verben-card", inputs: ["pd", "mg", "height", "width", "textColor", "bgColor", "border", "borderRadius", "disabled", "aspectRatio"] }, { kind: "component", type: i6.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i7.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
195
195
  }
196
196
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DataExportComponent, decorators: [{
197
197
  type: Component,
@@ -129,7 +129,7 @@ export class DataViewComponent {
129
129
  }
130
130
  }
131
131
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
132
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: DataViewComponent, selector: "verben-data-view", inputs: { buttonClass: "buttonClass", iconClass: "iconClass", activeIconClass: "activeIconClass", columnCustomClass: "columnCustomClass", filterCustomClass: "filterCustomClass", sortCustomClass: "sortCustomClass", exportCustomClass: "exportCustomClass", selectCustomClass: "selectCustomClass", zIndex: "zIndex", createCustomClass: "createCustomClass", tableIcon: "tableIcon", cardIcon: "cardIcon", cardClass: "cardClass", tableClass: "tableClass", searchKey: "searchKey", searchValue: "searchValue", viewState: "viewState", searchTemplate: "searchTemplate", columnTemplate: "columnTemplate", filterTemplate: "filterTemplate", sortTemplate: "sortTemplate", children: "children", exportTemplate: "exportTemplate", createTemplate: "createTemplate", selectedColumnCount: "selectedColumnCount", selectedSortCount: "selectedSortCount", selectedFilterTableCount: "selectedFilterTableCount", inputWidth: "inputWidth", showColumnChild: "showColumnChild", showSortChild: "showSortChild", showFilterChild: "showFilterChild", showExportChild: "showExportChild", create: "create", showSelected: "showSelected", isTableView: "isTableView" }, outputs: { viewChange: "viewChange", stateChange: "stateChange", onSearchChange: "onSearchChange" }, ngImport: i0, template: "<div\n class=\"toolbar flex gap justify-between items-center\"\n>\n <div class=\"flex items-center gap\">\n <div *ngIf=\"viewState.isToggle\" class=\"toggle-button-container\">\n <button type=\"button\" (click)=\"toggleView()\" [ngClass]=\"buttonClass\">\n <verben-svg\n [icon]=\"tableIcon\"\n [class.active]=\"!isTableView\"\n [ngClass]=\"!isTableView ? activeIconClass : iconClass\"\n ></verben-svg>\n <verben-svg\n [icon]=\"cardIcon\"\n [class.active]=\"isTableView\"\n [ngClass]=\"isTableView ? activeIconClass : iconClass\"\n [width]=\"25\"\n\n [height]=\"25\"\n ></verben-svg>\n </button>\n </div>\n <!-- Search Input -->\n <div\n [style.width]=\"inputWidth\"\n class=\"search-input\"\n *ngIf=\"viewState.isSearch\"\n >\n <verbena-input\n [type]=\"'text'\"\n [placeHolder]=\"'Search...'\"\n (input)=\"onSearch($event)\"\n [bgColor]=\"'transparent'\"\n [border]=\"'0'\"\n [value]=\"searchValue\"\n />\n <verben-svg\n *ngIf=\"searchValue.length>0\"\n [icon]=\"'close'\"\n [width]=\"15\"\n (click)=\"onClearSearch()\"\n class=\"close-icon-class\"\n [height]=\"15\"\n ></verben-svg>\n </div>\n </div>\n\n <div class=\"flex items-center relative gap\" [style.margin-left]=\"'10px'\">\n <!-- Column Section -->\n <ng-container\n [appOutSideClick]=\"showColumnChild\"\n (outSideClick)=\"showColumnChild = false\"\n *ngIf=\"viewState.isColumn && isTableView\"\n >\n <ng-container *ngIf=\"columnTemplate; else defaultColumn\"></ng-container>\n <ng-template #defaultColumn>\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n columnCustomClass ? columnCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('column')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'column'\"></verben-svg>\n <span\n >Columns <sup>({{ selectedColumnCount }})</sup></span\n >\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showColumnChild\"\n select=\"[column-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Filter Section -->\n <ng-container\n [appOutSideClick]=\"showFilterChild\"\n (outSideClick)=\"showFilterChild = false\"\n *ngIf=\"viewState.isFilter\"\n >\n <ng-container *ngIf=\"filterTemplate; else defaultFilter\"></ng-container>\n <ng-template #defaultFilter>\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n filterCustomClass ? filterCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('filter')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'filter'\"></verben-svg>\n <span\n >Filter <sup>({{ selectedFilterTableCount }})</sup></span\n >\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showFilterChild\"\n select=\"[filter-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Sort Section -->\n <ng-container\n [appOutSideClick]=\"showSortChild\"\n (outSideClick)=\"showSortChild = false\"\n *ngIf=\"viewState.isSort\"\n >\n <ng-container *ngIf=\"sortTemplate; else defaultSort\"></ng-container>\n <ng-template #defaultSort>\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n sortCustomClass ? sortCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('sort')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'sort'\"></verben-svg>\n <span\n >Sort <sup>({{ selectedSortCount }})</sup></span\n >\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showSortChild\"\n select=\"[sort-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Export Section -->\n <ng-container\n [appOutSideClick]=\"showExportChild\"\n (outSideClick)=\"showExportChild = false\"\n *ngIf=\"viewState.isExport\"\n >\n <ng-container *ngIf=\"exportTemplate; else defaultExport\"></ng-container>\n <ng-template #defaultExport>\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n exportCustomClass ? exportCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('export')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'export'\"></verben-svg>\n Export\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showExportChild\"\n select=\"[export-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Select Section -->\n <div *ngIf=\"viewState.isSelect\">\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n selectCustomClass ? selectCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('select')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'select'\"></verben-svg>\n <span>Select</span>\n <verben-svg [width]=\"6\" [icon]=\"'chevron-down'\"></verben-svg>\n </span>\n </div>\n\n <!-- Create Button -->\n \n <div [appOutSideClick]=\"create\"\n (outSideClick)=\"create = false\" *ngIf=\"viewState.isCreate\">\n <verbena-button\n class=\"text-sm font-semibold\"\n [bgColor]=\"'#FFE681'\"\n [buttonClass]=\"createCustomClass\"\n [pd]=\"'6px'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#000'\"\n [svg]=\"'add'\"\n [svgPosition]=\"'right'\"\n [text]=\"'Create New'\"\n (click)=\"toggleChildView('create')\"\n >\n </verbena-button>\n <ng-container *ngIf=\"createTemplate; else defaultCreate\"></ng-container>\n <ng-template #defaultCreate>\n \n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"create\"\n select=\"[create-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </div>\n <div>\n <ng-container *ngIf=\"children; else defaultChildren\"></ng-container>\n <ng-template #defaultChildren>\n \n <div>\n <ng-content\n select=\"[children]\"\n ></ng-content>\n </div>\n </ng-template>\n </div>\n </div>\n</div>\n\n<!-- Grid and List View Handling -->\n<div *ngIf=\"isTableView; else listViewTemplate\">\n <div [class]=\"tableClass\">\n <ng-content select=\"[table-content]\"></ng-content>\n </div>\n</div>\n<ng-template #listViewTemplate>\n <div [class]=\"cardClass\">\n <ng-content select=\"[card-content]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".toggle-button-container button{display:flex;justify-content:space-between;align-content:center;border:none;background-color:transparent;cursor:pointer;border:1px solid gray;padding:0;border-radius:6px;overflow:hidden;height:35px}.toggle-button-container verben-svg{transition:background-color .5s ease;padding:6px;position:relative}.toggle-button-container verben-svg.active{background-color:#d3d3d3}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.font-normal{font-weight:400}.text-sm{font-size:14px}.text-xs{font-size:12px}.gap{gap:7px}.pd{padding:5px 8px}.rounded-sm{border-radius:10px}.cursor-pointer{cursor:pointer}.search-input{position:relative;background-color:#80808018;border-radius:10px}sup{color:#3479e9;font-weight:500}.data-view-element{position:absolute;top:40px;left:0}.relative{position:relative}.z-10{z-index:100000000000}.close-icon-class{position:absolute;right:10px;cursor:pointer;top:13px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i3.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "customErrorMessages"], outputs: ["valueChange"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass"] }, { kind: "directive", type: i5.OutSideClickDirective, selector: "[appOutSideClick]", inputs: ["appOutSideClick"], outputs: ["outSideClick"] }] });
132
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: DataViewComponent, selector: "verben-data-view", inputs: { buttonClass: "buttonClass", iconClass: "iconClass", activeIconClass: "activeIconClass", columnCustomClass: "columnCustomClass", filterCustomClass: "filterCustomClass", sortCustomClass: "sortCustomClass", exportCustomClass: "exportCustomClass", selectCustomClass: "selectCustomClass", zIndex: "zIndex", createCustomClass: "createCustomClass", tableIcon: "tableIcon", cardIcon: "cardIcon", cardClass: "cardClass", tableClass: "tableClass", searchKey: "searchKey", searchValue: "searchValue", viewState: "viewState", searchTemplate: "searchTemplate", columnTemplate: "columnTemplate", filterTemplate: "filterTemplate", sortTemplate: "sortTemplate", children: "children", exportTemplate: "exportTemplate", createTemplate: "createTemplate", selectedColumnCount: "selectedColumnCount", selectedSortCount: "selectedSortCount", selectedFilterTableCount: "selectedFilterTableCount", inputWidth: "inputWidth", showColumnChild: "showColumnChild", showSortChild: "showSortChild", showFilterChild: "showFilterChild", showExportChild: "showExportChild", create: "create", showSelected: "showSelected", isTableView: "isTableView" }, outputs: { viewChange: "viewChange", stateChange: "stateChange", onSearchChange: "onSearchChange" }, ngImport: i0, template: "<div\n class=\"toolbar flex gap justify-between items-center\"\n>\n <div class=\"flex items-center gap\">\n <div *ngIf=\"viewState.isToggle\" class=\"toggle-button-container\">\n <button type=\"button\" (click)=\"toggleView()\" [ngClass]=\"buttonClass\">\n <verben-svg\n [icon]=\"tableIcon\"\n [class.active]=\"!isTableView\"\n [ngClass]=\"!isTableView ? activeIconClass : iconClass\"\n ></verben-svg>\n <verben-svg\n [icon]=\"cardIcon\"\n [class.active]=\"isTableView\"\n [ngClass]=\"isTableView ? activeIconClass : iconClass\"\n [width]=\"25\"\n\n [height]=\"25\"\n ></verben-svg>\n </button>\n </div>\n <!-- Search Input -->\n <div\n [style.width]=\"inputWidth\"\n class=\"search-input\"\n *ngIf=\"viewState.isSearch\"\n >\n <verbena-input\n [type]=\"'text'\"\n [placeHolder]=\"'Search...'\"\n (input)=\"onSearch($event)\"\n [bgColor]=\"'transparent'\"\n [border]=\"'0'\"\n [value]=\"searchValue\"\n />\n <verben-svg\n *ngIf=\"searchValue.length>0\"\n [icon]=\"'close'\"\n [width]=\"15\"\n (click)=\"onClearSearch()\"\n class=\"close-icon-class\"\n [height]=\"15\"\n ></verben-svg>\n </div>\n </div>\n\n <div class=\"flex items-center relative gap\" [style.margin-left]=\"'10px'\">\n <!-- Column Section -->\n <ng-container\n [appOutSideClick]=\"showColumnChild\"\n (outSideClick)=\"showColumnChild = false\"\n *ngIf=\"viewState.isColumn && isTableView\"\n >\n <ng-container *ngIf=\"columnTemplate; else defaultColumn\"></ng-container>\n <ng-template #defaultColumn>\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n columnCustomClass ? columnCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('column')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'column'\"></verben-svg>\n <span\n >Columns <sup>({{ selectedColumnCount }})</sup></span\n >\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showColumnChild\"\n select=\"[column-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Filter Section -->\n <ng-container\n [appOutSideClick]=\"showFilterChild\"\n (outSideClick)=\"showFilterChild = false\"\n *ngIf=\"viewState.isFilter\"\n >\n <ng-container *ngIf=\"filterTemplate; else defaultFilter\"></ng-container>\n <ng-template #defaultFilter>\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n filterCustomClass ? filterCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('filter')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'filter'\"></verben-svg>\n <span\n >Filter <sup>({{ selectedFilterTableCount }})</sup></span\n >\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showFilterChild\"\n select=\"[filter-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Sort Section -->\n <ng-container\n [appOutSideClick]=\"showSortChild\"\n (outSideClick)=\"showSortChild = false\"\n *ngIf=\"viewState.isSort\"\n >\n <ng-container *ngIf=\"sortTemplate; else defaultSort\"></ng-container>\n <ng-template #defaultSort>\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n sortCustomClass ? sortCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('sort')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'sort'\"></verben-svg>\n <span\n >Sort <sup>({{ selectedSortCount }})</sup></span\n >\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showSortChild\"\n select=\"[sort-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Export Section -->\n <ng-container\n [appOutSideClick]=\"showExportChild\"\n (outSideClick)=\"showExportChild = false\"\n *ngIf=\"viewState.isExport\"\n >\n <ng-container *ngIf=\"exportTemplate; else defaultExport\"></ng-container>\n <ng-template #defaultExport>\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n exportCustomClass ? exportCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('export')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'export'\"></verben-svg>\n Export\n </span>\n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"showExportChild\"\n select=\"[export-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </ng-container>\n\n <!-- Select Section -->\n <div *ngIf=\"viewState.isSelect\">\n <span\n [ngClass]=\"[\n 'flex gap text-xs items-center pd rounded cursor-pointer',\n selectCustomClass ? selectCustomClass : ''\n ]\"\n [style.background-color]=\"'#D9D9D940'\"\n (click)=\"toggleChildView('select')\"\n >\n <verben-svg [width]=\"15\" [icon]=\"'select'\"></verben-svg>\n <span>Select</span>\n <verben-svg [width]=\"6\" [icon]=\"'chevron-down'\"></verben-svg>\n </span>\n </div>\n\n <!-- Create Button -->\n \n <div [appOutSideClick]=\"create\"\n (outSideClick)=\"create = false\" *ngIf=\"viewState.isCreate\">\n <verbena-button\n class=\"text-sm font-semibold\"\n [bgColor]=\"'#FFE681'\"\n [buttonClass]=\"createCustomClass\"\n [pd]=\"'6px'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#000'\"\n [svg]=\"'add'\"\n [svgPosition]=\"'right'\"\n [text]=\"'Create New'\"\n (click)=\"toggleChildView('create')\"\n >\n </verbena-button>\n <ng-container *ngIf=\"createTemplate; else defaultCreate\"></ng-container>\n <ng-template #defaultCreate>\n \n <div [style.z-index]=\"zIndex\" class=\"data-view-element\">\n <ng-content\n *ngIf=\"create\"\n select=\"[create-content]\"\n ></ng-content>\n </div>\n </ng-template>\n </div>\n <div>\n <ng-container *ngIf=\"children; else defaultChildren\"></ng-container>\n <ng-template #defaultChildren>\n \n <div>\n <ng-content\n select=\"[children]\"\n ></ng-content>\n </div>\n </ng-template>\n </div>\n </div>\n</div>\n\n<!-- Grid and List View Handling -->\n<div *ngIf=\"isTableView; else listViewTemplate\">\n <div [class]=\"tableClass\">\n <ng-content select=\"[table-content]\"></ng-content>\n </div>\n</div>\n<ng-template #listViewTemplate>\n <div [class]=\"cardClass\">\n <ng-content select=\"[card-content]\"></ng-content>\n </div>\n</ng-template>\n", styles: [".toggle-button-container button{display:flex;justify-content:space-between;align-content:center;border:none;background-color:transparent;cursor:pointer;border:1px solid gray;padding:0;border-radius:6px;overflow:hidden;height:35px}.toggle-button-container verben-svg{transition:background-color .5s ease;padding:6px;position:relative}.toggle-button-container verben-svg.active{background-color:#d3d3d3}.flex{display:flex}.justify-between{justify-content:space-between}.items-center{align-items:center}.font-semibold{font-weight:600}.font-normal{font-weight:400}.text-sm{font-size:14px}.text-xs{font-size:12px}.gap{gap:7px}.pd{padding:5px 8px}.rounded-sm{border-radius:10px}.cursor-pointer{cursor:pointer}.search-input{position:relative;background-color:#80808018;border-radius:10px}sup{color:#3479e9;font-weight:500}.data-view-element{position:absolute;top:40px;left:0}.relative{position:relative}.z-10{z-index:100000000000}.close-icon-class{position:absolute;right:10px;cursor:pointer;top:13px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }, { kind: "component", type: i3.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass"] }, { kind: "directive", type: i5.OutSideClickDirective, selector: "[appOutSideClick]", inputs: ["appOutSideClick"], outputs: ["outSideClick"] }] });
133
133
  }
134
134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DataViewComponent, decorators: [{
135
135
  type: Component,
@@ -173,7 +173,7 @@ export class TableFilterComponent {
173
173
  }
174
174
  }
175
175
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TableFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
176
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TableFilterComponent, selector: "verben-table-filter", inputs: { filterOptions: "filterOptions", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", maxFilterLength: "maxFilterLength", tooltip: "tooltip" }, outputs: { filtersApplied: "filtersApplied" }, ngImport: i0, template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value}}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"black\"\n stroke=\"black\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{'position':'relative'}\"> \n \n <verben-tooltip \n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'grey'\"\n width=\"200px\" \n [top]=\"'20px'\" \n [right]=\"'0px'\" \n >\n <verben-svg \n icon=\"info\" \n [width]=\"15\" \n [height]=\"15\" \n *ngIf=\"isDuplicateFilter\"\n fill=\"red\"\n >\n </verben-svg>\n </verben-tooltip>\n \n <ng-template #tooltipTemplate>\n {{duplicateMessage}}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'grey'\"\n [textColor]=\"'white'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType !== 'Credit' && selectedFilterType !== 'Date' && selectedFilterType !== 'Integer' && selectedFilterType !== 'Decimal'\"\n border=\"1px solid #ccc\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n [disabled]=\"disableApplyFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableApplyFilterBtn,\n enableBtn: !disableApplyFilterBtn\n }\"\n >\n Filter\n </button>\n </div>\n\n\n </div>\n\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid rgba(232,234,241,1);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:#3479E9}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "customErrorMessages"], outputs: ["valueChange"] }, { kind: "directive", type: i5.ValidateDirective, selector: "[appValidate]", inputs: ["appValidate", "required", "showBorder", "showErrorMessage", "errorBorderColor", "errorMessageColor", "errorIconTooltipPosition", "showErrorIcon"] }, { kind: "component", type: i6.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }, { kind: "component", type: i7.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }] });
176
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TableFilterComponent, selector: "verben-table-filter", inputs: { filterOptions: "filterOptions", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", maxFilterLength: "maxFilterLength", tooltip: "tooltip" }, outputs: { filtersApplied: "filtersApplied" }, ngImport: i0, template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value}}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#3479E9\"\n fill=\"white\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"#E20000\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"black\"\n stroke=\"black\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{'position':'relative'}\"> \n \n <verben-tooltip \n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'grey'\"\n width=\"200px\" \n [top]=\"'20px'\" \n [right]=\"'0px'\" \n >\n <verben-svg \n icon=\"info\" \n [width]=\"15\" \n [height]=\"15\" \n *ngIf=\"isDuplicateFilter\"\n fill=\"red\"\n >\n </verben-svg>\n </verben-tooltip>\n \n <ng-template #tooltipTemplate>\n {{duplicateMessage}}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'grey'\"\n [textColor]=\"'white'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"grey\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid #ccc\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType !== 'Credit' && selectedFilterType !== 'Date' && selectedFilterType !== 'Integer' && selectedFilterType !== 'Decimal'\"\n border=\"1px solid #ccc\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"black\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n [disabled]=\"disableApplyFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableApplyFilterBtn,\n enableBtn: !disableApplyFilterBtn\n }\"\n >\n Filter\n </button>\n </div>\n\n\n </div>\n\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid rgba(232,234,241,1);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:#3479E9}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i5.ValidateDirective, selector: "[appValidate]", inputs: ["appValidate", "required", "showBorder", "showErrorMessage", "errorBorderColor", "errorMessageColor", "errorIconTooltipPosition", "showErrorIcon"] }, { kind: "component", type: i6.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }, { kind: "component", type: i7.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }] });
177
177
  }
178
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TableFilterComponent, decorators: [{
179
179
  type: Component,