@progressio_resources/gravity-design-system 3.7.8 → 3.7.10

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.
@@ -22,7 +22,14 @@ export class GravityTextFieldComponent {
22
22
  // Sizes
23
23
  this.size = 'md';
24
24
  this.width = 'short';
25
+ this.characterCounter = false;
26
+ this.passwordRequirements = [];
27
+ this.supportTextIcon = '';
25
28
  this.focusInput = false;
29
+ this.hasUserTyped = false;
30
+ this.isPasswordField = false;
31
+ this.characterLimit = false;
32
+ this.allPasswordRequirementsValid = false;
26
33
  this.inputValue = '';
27
34
  }
28
35
  ngOnInit() {
@@ -51,6 +58,7 @@ export class GravityTextFieldComponent {
51
58
  this.changeInputValue(true);
52
59
  }
53
60
  changeInputValue(clearInput = false) {
61
+ this.hasUserTyped = true;
54
62
  if (clearInput) {
55
63
  this.inputValue = '';
56
64
  }
@@ -66,6 +74,14 @@ export class GravityTextFieldComponent {
66
74
  else {
67
75
  this.textFieldValueResponse.emit(this.prefix + this.inputValue);
68
76
  }
77
+ if (this.inputValue.length == this.validations?.maxLength || this.inputValue.length == 200) {
78
+ this.supportText = this.currentLang == 'en' ? 'Character limit reached' : 'Límite de caracteres alcanzado';
79
+ this.characterLimit = true;
80
+ }
81
+ else if (this.characterLimit) {
82
+ this.supportText = '';
83
+ this.characterLimit = false;
84
+ }
69
85
  }
70
86
  handleIconClick(iconPosition) {
71
87
  if (iconPosition == 'left' && this.clickOnLeftIcon) {
@@ -102,6 +118,29 @@ export class GravityTextFieldComponent {
102
118
  return GravityIconComponent.isNewIcon(this.iconRight);
103
119
  }
104
120
  }
121
+ get hasInvalidPasswordRequirements() {
122
+ if (this.passwordRequirements.length > 0) {
123
+ this.isPasswordField = true;
124
+ const hasInvalid = this.passwordRequirements?.some(r => !r.isValid);
125
+ if (this.hasUserTyped) {
126
+ //Requirements invalid
127
+ if (hasInvalid) {
128
+ if (!this.focusInput || this.allPasswordRequirementsValid) {
129
+ this.customState = 'typed-error';
130
+ this.supportText = this.currentLang === 'en' ? 'Must meet password requirements' : 'Debe cumplir con los requisitos de contraseña';
131
+ this.allPasswordRequirementsValid = false;
132
+ }
133
+ }
134
+ //Requirements valid
135
+ else {
136
+ this.customState = 'typed-positive';
137
+ this.supportText = this.currentLang === 'en' ? 'Requirements applied' : 'Requisitos aplicados';
138
+ this.allPasswordRequirementsValid = true;
139
+ }
140
+ }
141
+ return hasInvalid;
142
+ }
143
+ }
105
144
  onKeyDownEvent($event) {
106
145
  if (this.inputContentType == 'number') {
107
146
  let navigationKeys = ['Backspace', 'Delete', 'Tab', 'Escape', 'Enter', 'Home', 'End', 'ArrowLeft', 'ArrowRight', 'Clear', 'Copy', 'Paste'];
@@ -183,11 +222,11 @@ export class GravityTextFieldComponent {
183
222
  this.changeInputValue();
184
223
  }
185
224
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTextFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTextFieldComponent, selector: "gravity-text-field", inputs: { currentLang: "currentLang", customInputValue: "customInputValue", customState: "customState", cypressTag: "cypressTag", label: "label", prefix: "prefix", required: "required", supportText: "supportText", textFieldType: "textFieldType", clickOnLeftIcon: "clickOnLeftIcon", clickOnRightIcon: "clickOnRightIcon", iconColor: "iconColor", iconLeft: "iconLeft", iconRight: "iconRight", autocomplete: "autocomplete", inputContentType: "inputContentType", placeholder: "placeholder", validations: "validations", size: "size", width: "width" }, outputs: { leftIconResponse: "clickIconLeft", rightIconResponse: "clickIconRight", textFieldValueResponse: "response" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "textAreaElement", first: true, predicate: ["textAreaElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label class=\"hr-label sm-bold {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"label\">\n {{label}} <span *ngIf=\"required || getTextFieldStatus() == 'typed-error'\">*</span>\n</label>\n<div class=\"gravity-input-field {{size}} {{width}}-width {{getTextFieldStatus()}}\">\n <ng-container *ngIf=\"iconLeft\">\n <ng-container [ngTemplateOutlet]=\"icons\" [ngTemplateOutletContext]=\"{iconPosition: 'left'}\"></ng-container>\n </ng-container>\n <span class=\"{{getTextFieldInputFontSize()}} prefix\">{{prefix}}</span>\n <input [attr.data-cy]=\"cypressTag ? 'textField_' + cypressTag : null\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n [autocomplete]=\"autocomplete\"\n [maxLength]=\"inputContentType === 'date' ? 10 : (validations?.maxLength || 100)\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [type]=\"inputContentType === 'date' ? 'text' : (inputContentType !== 'number' ? inputContentType : 'text')\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keydown)=\" onKeyDownEvent($event)\"\n (keyup)=\"inputContentType === 'date' ?\n formatDateInput($event) : changeInputValue()\"\n\n class=\"{{getTextFieldInputFontSize()}}\"\n\t\t\t\t #inputElement\n *ngIf=\"textFieldType == 'input'\">\n\n <textarea [attr.data-cy]=\"cypressTag ? 'textField_' + cypressTag : null\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 200\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keydown)=\"onKeyDownEvent($event)\"\n (keyup)=\"changeInputValue()\"\n\n class=\"{{getTextFieldInputFontSize()}}\"\n rows=\"1\"\n\n #textAreaElement\n\n *ngIf=\"textFieldType == 'textarea'\"></textarea>\n <ng-container *ngIf=\"iconRight\">\n <ng-container [ngTemplateOutlet]=\"icons\" [ngTemplateOutletContext]=\"{iconPosition: 'right'}\"></ng-container>\n </ng-container>\n</div>\n<p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}} {{size}}\"\n [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"supportText\">\n <gravity-icon [iconName]=\"'question-circle'\" *ngIf=\"getTextFieldStatus() == 'typed-error'\"\n [iconSize]=\"'md-16'\"></gravity-icon>\n {{supportText}}\n</p>\n<p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}} {{size}}\"\n [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"!supportText && getTextFieldStatus() == 'active' && inputValue == '' && required\">\n {{currentLang == 'es' ? 'Requerido' : 'Required'}}\n</p>\n\n<ng-template #icons let-iconPosition=\"iconPosition\">\n <gravity-icon (click)=\"$event.stopPropagation(); handleIconClick(iconPosition)\" class=\"{{iconPosition}}\"\n [class.pointer]=\"(iconPosition == 'left' && clickOnLeftIcon) || (iconPosition == 'right' && clickOnRightIcon)\"\n [iconName]=\"iconPosition == 'left' ? iconLeft : iconRight\" [style.--icon-color]=\"iconColor\"\n [iconSize]=\"isNewIcon(iconPosition) ? 'md-16' : null\" [attr.data-cy]=\"'textField_icon'\"></gravity-icon>\n</ng-template>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);display:block;margin:0 12px 5px}label.active,label.hover,label.autofill{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.typing{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}label.typed,label.typed-error{--text-field-label-color: var(--label-text-full-enabled-primary)}label.typed-error span{color:var(--negative-primary)}label.typed-positive{--text-field-label-color: var(--label-text-full-enabled-primary)}label.disabled{--text-field-label-color: var(--on-bg-disabled)}label.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.hr-label.sm-bold.custom-label-size,.hr-label.sm-regular.custom-label-size{font-size:10px;letter-spacing:.25px}.gravity-input-field{align-items:center;background-color:var(--text-field-input-field-background-color);border:var(--text-field-input-field-border-width) solid var(--text-field-input-field-border-color);border-radius:.3125rem;color:var(--text-field-input-field-content-color);display:flex;height:var(--text-field-input-field-height);padding:10px 12px;--text-field-input-field-border-width: .5px;width:var(--text-field-input-field-width)}.gravity-input-field gravity-icon{--icon-color: var(--text-field-input-field-icon-color);--icon-height: var(--text-field-input-field-content);--icon-width: var(--text-field-input-field-content)}.gravity-input-field gravity-icon.pointer{cursor:pointer}.gravity-input-field gravity-icon.left{margin-right:5px}.gravity-input-field gravity-icon.right{margin-left:5px}.gravity-input-field .prefix{color:var(--text-field-input-field-content-color)}.gravity-input-field input,.gravity-input-field textarea{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-content-color);height:var(--text-field-input-field-input);line-height:1;outline:none;padding:0;resize:none;width:100%}.gravity-input-field input::placeholder,.gravity-input-field textarea::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field input:-webkit-autofill,.gravity-input-field textarea:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--bg-field-autofill) inset!important;-webkit-text-fill-color:var(--label-text-full-enabled-primary)!important}.gravity-input-field.sm{--text-field-input-field-height: 29px;--text-field-input-field-content: 9px;--text-field-input-field-input: 13px}.gravity-input-field.sm.short-width{--text-field-input-field-width: 195px}.gravity-input-field.sm.medium-width{--text-field-input-field-width: 276px}.gravity-input-field.sm.full-width,.gravity-input-field.sm.fit-width{--text-field-input-field-width: 100%}.gravity-input-field.md{--text-field-input-field-height: 35px;--text-field-input-field-content: 15px;--text-field-input-field-input: 18px}.gravity-input-field.md.short-width{--text-field-input-field-width: 242px}.gravity-input-field.md.medium-width{--text-field-input-field-width: 329px}.gravity-input-field.md.full-width,.gravity-input-field.md.fit-width{--text-field-input-field-width: 100%}.gravity-input-field.active{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.active:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.hover{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-border-width: 1px;--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.autofill{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.autofill:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.autofill input,.gravity-input-field.autofill textarea{background-color:var(--bg-field-autofill);color:var(--label-text-full-enabled-primary)}.gravity-input-field.typing{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-border-width: 1px;--text-field-input-field-content-color: var(--placeholder-full-enabled-pressed-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-pressed-primary);--text-field-input-field-placeholder-color: var(--placeholder-full-enabled-pressed-primary)}.gravity-input-field.typing:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed-error{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--negative-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed-error:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed-positive{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--positive-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed-positive:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.disabled{--text-field-input-field-background-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-border-color: var(--outline-disabled);--text-field-input-field-content-color: var(--on-bg-disabled);--text-field-input-field-icon-color: var(--on-bg-disabled);--text-field-input-field-placeholder-color: var(--on-bg-disabled)}.gravity-input-field.readonly{--text-field-input-field-background-color: var(--bg-field-full-read-only-primary);--text-field-input-field-border-color: var(--bg-field-full-read-only-primary);--text-field-input-field-content-color: var(--input-text-full-read-only-primary);--text-field-input-field-icon-color: var(--input-text-full-read-only-primary);--text-field-input-field-placeholder-color: var(--input-text-full-read-only-primary)}.supporting-text{align-items:center;color:var(--text-field-supporting-text-color);display:flex;margin:5px 12px 0}.supporting-text.active,.supporting-text.hover,.supporting-text.autofill{--text-field-supporting-text-color: var(--label-text-empty-enabled-primary)}.supporting-text.typing{--text-field-supporting-text-color: var(--label-text-full-enabled-pressed-primary)}.supporting-text.typed{--text-field-supporting-text-color: var(--label-text-full-enabled-primary)}.supporting-text.typed-error{--text-field-supporting-text-color: var(--negative-primary)}.supporting-text.typed-positive{--text-field-supporting-text-color: var(--positive-primary)}.supporting-text.disabled{--text-field-supporting-text-color: var(--on-bg-disabled)}.supporting-text.readonly{--text-field-supporting-text-color: var(--label-text-full-read-only-primary)}.supporting-text.sm{--text-field-supporting-text-icon-size: 9px}.supporting-text.md{--text-field-supporting-text-icon-size: 15px}.supporting-text gravity-icon{--icon-color: var(--negative-primary);--icon-height: var(--text-field-supporting-text-icon-size);--icon-width: var(--text-field-supporting-text-icon-size);margin-right:5px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size", "isCoin"] }] }); }
225
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTextFieldComponent, selector: "gravity-text-field", inputs: { currentLang: "currentLang", customInputValue: "customInputValue", customState: "customState", cypressTag: "cypressTag", label: "label", prefix: "prefix", required: "required", supportText: "supportText", textFieldType: "textFieldType", clickOnLeftIcon: "clickOnLeftIcon", clickOnRightIcon: "clickOnRightIcon", iconColor: "iconColor", iconLeft: "iconLeft", iconRight: "iconRight", autocomplete: "autocomplete", inputContentType: "inputContentType", placeholder: "placeholder", validations: "validations", size: "size", width: "width", labelExtraText: "labelExtraText", characterCounter: "characterCounter", passwordRequirements: "passwordRequirements", supportTextIcon: "supportTextIcon" }, outputs: { leftIconResponse: "clickIconLeft", rightIconResponse: "clickIconRight", textFieldValueResponse: "response" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }, { propertyName: "textAreaElement", first: true, predicate: ["textAreaElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<label class=\"hr-label sm-bold {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"label\">\n {{ label }}\n <span *ngIf=\"required || getTextFieldStatus() == 'typed-error'\">* </span>\n <span [class.extra-text]=\"labelExtraText\" *ngIf=\"labelExtraText\">{{ labelExtraText }}</span>\n</label>\n<div class=\"gravity-input-field {{textFieldType}} {{size}} {{width}}-width {{getTextFieldStatus()}}\">\n <ng-container *ngIf=\"iconLeft\">\n <ng-container [ngTemplateOutlet]=\"icons\" [ngTemplateOutletContext]=\"{iconPosition: 'left'}\"></ng-container>\n </ng-container>\n <span class=\"{{getTextFieldInputFontSize()}} prefix\">{{ prefix }}</span>\n <input [attr.data-cy]=\"cypressTag ? 'textField_' + cypressTag : null\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n [autocomplete]=\"autocomplete\"\n [maxLength]=\"inputContentType === 'date' ? 10 : (validations?.maxLength || 100)\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [type]=\"inputContentType === 'date' ? 'text' : (inputContentType !== 'number' ? inputContentType : 'text')\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keydown)=\" onKeyDownEvent($event)\"\n (keyup)=\"inputContentType === 'date' ?\n formatDateInput($event) : changeInputValue()\"\n\n class=\"{{getTextFieldInputFontSize()}}\"\n #inputElement\n *ngIf=\"textFieldType == 'input'\">\n\n <textarea [attr.data-cy]=\"cypressTag ? 'textField_' + cypressTag : null\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 200\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keydown)=\"onKeyDownEvent($event)\"\n (keyup)=\"changeInputValue()\"\n\n class=\"{{getTextFieldInputFontSize()}}\"\n rows=\"1\"\n\n #textAreaElement\n\n *ngIf=\"textFieldType == 'textarea'\"></textarea>\n <ng-container *ngIf=\"iconRight\">\n <ng-container [ngTemplateOutlet]=\"icons\" [ngTemplateOutletContext]=\"{iconPosition: 'right'}\"></ng-container>\n </ng-container>\n</div>\n<div class=\"support-text-container {{size}} {{width}}-width\">\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}} {{size}}\"\n [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"supportText\">\n <gravity-icon [class.negative]=\"getTextFieldStatus() == 'typed-error'\" [iconName]=\"'question-circle'\"\n *ngIf=\"getTextFieldStatus() == 'typed-error' || characterLimit\"\n [iconSize]=\"'md-16'\"></gravity-icon>\n <gravity-icon class=\"positive\" [iconName]=\"'check'\" *ngIf=\"!hasInvalidPasswordRequirements && isPasswordField\"\n [iconSize]=\"'md-16'\"></gravity-icon>\n <gravity-icon [ngClass]=\"{negative: getTextFieldStatus() === 'typed-error',positive: getTextFieldStatus() === 'typed-positive'}\"\n [iconName]=\"supportTextIcon\" *ngIf=\"supportTextIcon\" [iconSize]=\"'md-16'\"></gravity-icon>\n {{ supportText }}\n </p>\n <p class=\"hr-label sm-regular character-counter {{getTextFieldStatus()}}\"\n *ngIf=\"characterCounter\">{{ inputValue.length }}/200</p>\n</div>\n\n\n<div class=\"password-requirements\" *ngIf=\"passwordRequirements.length> 0 && hasInvalidPasswordRequirements\">\n <p class=\"hr-label sm-bold\">{{ currentLang == 'en' ? 'Password requirements:' : 'Requisitos de contrase\u00F1a:' }}</p>\n <ul class=\"requirements\">\n <li class=\"hr-label sm-regular\" *ngFor=\"let requirement of passwordRequirements\"\n [ngClass]=\"{valid: hasUserTyped && requirement.isValid, invalid: hasUserTyped && !focusInput && !requirement.isValid}\">\n {{ requirement.label }}\n </li>\n </ul>\n</div>\n\n<ng-template #icons let-iconPosition=\"iconPosition\">\n <gravity-icon (click)=\"$event.stopPropagation(); handleIconClick(iconPosition)\" class=\"{{iconPosition}}\"\n [class.pointer]=\"(iconPosition == 'left' && clickOnLeftIcon) || (iconPosition == 'right' && clickOnRightIcon)\"\n [iconName]=\"iconPosition == 'left' ? iconLeft : iconRight\" [style.--icon-color]=\"iconColor\"\n [iconSize]=\"isNewIcon(iconPosition) ? 'md-16' : null\" [attr.data-cy]=\"'textField_icon'\"></gravity-icon>\n</ng-template>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}.scrollbar-sm::-webkit-scrollbar,.gravity-input-field textarea::-webkit-scrollbar{width:4px;height:4px}.scrollbar-sm::-webkit-scrollbar-track,.gravity-input-field textarea::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb,.gravity-input-field textarea::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb:hover,.gravity-input-field textarea::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.scrollbar-md::-webkit-scrollbar{width:8px;height:8px}.scrollbar-md::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}:host{display:block}label{color:var(--text-field-label-color);display:block;margin:0 12px 5px}label.active,label.hover,label.autofill{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.typing{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}label.typed,label.typed-error{--text-field-label-color: var(--label-text-full-enabled-primary)}label.typed-error span{color:var(--negative-primary)}label.typed-positive{--text-field-label-color: var(--label-text-full-enabled-primary)}label.disabled{--text-field-label-color: var(--on-bg-disabled)}label.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}label .extra-text{font-weight:343!important;color:var(--placeholder-empty-enabled-primary)!important}.hr-label.sm-bold.custom-label-size,.hr-label.sm-regular.custom-label-size{font-size:10px;letter-spacing:.25px}.gravity-input-field{align-items:center;background-color:var(--text-field-input-field-background-color);border:var(--text-field-input-field-border-width) solid var(--text-field-input-field-border-color);border-radius:.3125rem;color:var(--text-field-input-field-content-color);display:flex;height:var(--text-field-input-field-height);padding:10px 12px;--text-field-input-field-border-width: .5px;width:var(--text-field-input-field-width)}.gravity-input-field gravity-icon{--icon-color: var(--text-field-input-field-icon-color);--icon-height: var(--text-field-input-field-content);--icon-width: var(--text-field-input-field-content)}.gravity-input-field gravity-icon.pointer{cursor:pointer}.gravity-input-field gravity-icon.left{margin-right:5px}.gravity-input-field gravity-icon.right{margin-left:5px}.gravity-input-field .prefix{color:var(--text-field-input-field-content-color)}.gravity-input-field input,.gravity-input-field textarea{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-content-color);height:var(--text-field-input-field-input);line-height:1;outline:none;padding:0;resize:none;width:100%}.gravity-input-field input::placeholder,.gravity-input-field textarea::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field input:-webkit-autofill,.gravity-input-field textarea:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--bg-field-autofill) inset!important;-webkit-text-fill-color:var(--label-text-full-enabled-primary)!important}.gravity-input-field.sm,.support-text-container.sm{--text-field-input-field-content: 9px}.gravity-input-field.sm.input,.support-text-container.sm.input{--text-field-input-field-height: 29px;--text-field-input-field-input: 13px}.gravity-input-field.sm.textarea,.support-text-container.sm.textarea{--text-field-input-field-height: 64px;--text-field-input-field-input: 44px}.gravity-input-field.sm.short-width,.support-text-container.sm.short-width{--text-field-input-field-width: 195px}.gravity-input-field.sm.medium-width,.support-text-container.sm.medium-width{--text-field-input-field-width: 276px}.gravity-input-field.sm.full-width,.support-text-container.sm.full-width,.gravity-input-field.sm.fit-width,.support-text-container.sm.fit-width{--text-field-input-field-width: 100%}.gravity-input-field.md,.support-text-container.md{--text-field-input-field-content: 15px}.gravity-input-field.md.input,.support-text-container.md.input{--text-field-input-field-height: 35px;--text-field-input-field-input: 18px}.gravity-input-field.md.textarea,.support-text-container.md.textarea{--text-field-input-field-height: 80px;--text-field-input-field-input: 60px}.gravity-input-field.md.short-width,.support-text-container.md.short-width{--text-field-input-field-width: 242px}.gravity-input-field.md.medium-width,.support-text-container.md.medium-width{--text-field-input-field-width: 329px}.gravity-input-field.md.full-width,.support-text-container.md.full-width,.gravity-input-field.md.fit-width,.support-text-container.md.fit-width{--text-field-input-field-width: 100%}.gravity-input-field.active{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.active:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.hover{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-border-width: 1px;--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.autofill{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.autofill:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.autofill input,.gravity-input-field.autofill textarea{background-color:var(--bg-field-autofill);color:var(--label-text-full-enabled-primary)}.gravity-input-field.typing{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-border-width: 1px;--text-field-input-field-content-color: var(--placeholder-full-enabled-pressed-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-pressed-primary);--text-field-input-field-placeholder-color: var(--placeholder-full-enabled-pressed-primary)}.gravity-input-field.typing:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed-error{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--negative-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed-error:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed-positive{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--positive-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed-positive:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.disabled{--text-field-input-field-background-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-border-color: var(--outline-disabled);--text-field-input-field-content-color: var(--on-bg-disabled);--text-field-input-field-icon-color: var(--on-bg-disabled);--text-field-input-field-placeholder-color: var(--on-bg-disabled)}.gravity-input-field.readonly{--text-field-input-field-background-color: var(--bg-field-full-read-only-primary);--text-field-input-field-border-color: var(--bg-field-full-read-only-primary);--text-field-input-field-content-color: var(--input-text-full-read-only-primary);--text-field-input-field-icon-color: var(--input-text-full-read-only-primary);--text-field-input-field-placeholder-color: var(--input-text-full-read-only-primary)}.support-text-container{display:flex;justify-content:space-between;width:var(--text-field-input-field-width)}.supporting-text{align-items:center;color:var(--text-field-supporting-text-color);display:flex;margin:5px 12px 0}.supporting-text.active,.supporting-text.hover,.supporting-text.autofill{--text-field-supporting-text-color: var(--label-text-empty-enabled-primary)}.supporting-text.typing{--text-field-supporting-text-color: var(--label-text-full-enabled-pressed-primary)}.supporting-text.typed{--text-field-supporting-text-color: var(--label-text-full-enabled-primary)}.supporting-text.typed-error{--text-field-supporting-text-color: var(--negative-primary)}.supporting-text.typed-positive{--text-field-supporting-text-color: var(--positive-primary)}.supporting-text.disabled{--text-field-supporting-text-color: var(--on-bg-disabled)}.supporting-text.readonly{--text-field-supporting-text-color: var(--label-text-full-read-only-primary)}.supporting-text.sm{--text-field-supporting-text-icon-size: 9px}.supporting-text.md{--text-field-supporting-text-icon-size: 15px}.supporting-text gravity-icon{--icon-height: var(--text-field-supporting-text-icon-size);--icon-width: var(--text-field-supporting-text-icon-size);margin-right:5px}.supporting-text gravity-icon.negative{--icon-color: var(--negative-primary)}.supporting-text gravity-icon.positive{--icon-color: var(--positive-primary)}.password-requirements{display:flex;padding-left:12px;flex-direction:column;align-items:flex-start;gap:8px;margin-top:16px}.password-requirements .requirements{padding-left:12px;margin:0!important}.password-requirements .requirements li.valid{color:var(--positive-primary)}.password-requirements .requirements li.invalid{color:var(--negative-primary)}.character-counter{margin-left:auto;margin-top:5px}.character-counter.disabled{color:var(--on-bg-disabled)}\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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.GravityIconComponent, selector: "gravity-icon", inputs: ["customIconColorVariable", "iconName", "iconSize", "hoverIcon", "size", "isCoin"] }] }); }
187
226
  }
188
227
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTextFieldComponent, decorators: [{
189
228
  type: Component,
190
- args: [{ selector: 'gravity-text-field', template: "<label class=\"hr-label sm-bold {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"label\">\n {{label}} <span *ngIf=\"required || getTextFieldStatus() == 'typed-error'\">*</span>\n</label>\n<div class=\"gravity-input-field {{size}} {{width}}-width {{getTextFieldStatus()}}\">\n <ng-container *ngIf=\"iconLeft\">\n <ng-container [ngTemplateOutlet]=\"icons\" [ngTemplateOutletContext]=\"{iconPosition: 'left'}\"></ng-container>\n </ng-container>\n <span class=\"{{getTextFieldInputFontSize()}} prefix\">{{prefix}}</span>\n <input [attr.data-cy]=\"cypressTag ? 'textField_' + cypressTag : null\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n [autocomplete]=\"autocomplete\"\n [maxLength]=\"inputContentType === 'date' ? 10 : (validations?.maxLength || 100)\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [type]=\"inputContentType === 'date' ? 'text' : (inputContentType !== 'number' ? inputContentType : 'text')\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keydown)=\" onKeyDownEvent($event)\"\n (keyup)=\"inputContentType === 'date' ?\n formatDateInput($event) : changeInputValue()\"\n\n class=\"{{getTextFieldInputFontSize()}}\"\n\t\t\t\t #inputElement\n *ngIf=\"textFieldType == 'input'\">\n\n <textarea [attr.data-cy]=\"cypressTag ? 'textField_' + cypressTag : null\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 200\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keydown)=\"onKeyDownEvent($event)\"\n (keyup)=\"changeInputValue()\"\n\n class=\"{{getTextFieldInputFontSize()}}\"\n rows=\"1\"\n\n #textAreaElement\n\n *ngIf=\"textFieldType == 'textarea'\"></textarea>\n <ng-container *ngIf=\"iconRight\">\n <ng-container [ngTemplateOutlet]=\"icons\" [ngTemplateOutletContext]=\"{iconPosition: 'right'}\"></ng-container>\n </ng-container>\n</div>\n<p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}} {{size}}\"\n [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"supportText\">\n <gravity-icon [iconName]=\"'question-circle'\" *ngIf=\"getTextFieldStatus() == 'typed-error'\"\n [iconSize]=\"'md-16'\"></gravity-icon>\n {{supportText}}\n</p>\n<p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}} {{size}}\"\n [class.custom-label-size]=\"size == 'sm'\"\n *ngIf=\"!supportText && getTextFieldStatus() == 'active' && inputValue == '' && required\">\n {{currentLang == 'es' ? 'Requerido' : 'Required'}}\n</p>\n\n<ng-template #icons let-iconPosition=\"iconPosition\">\n <gravity-icon (click)=\"$event.stopPropagation(); handleIconClick(iconPosition)\" class=\"{{iconPosition}}\"\n [class.pointer]=\"(iconPosition == 'left' && clickOnLeftIcon) || (iconPosition == 'right' && clickOnRightIcon)\"\n [iconName]=\"iconPosition == 'left' ? iconLeft : iconRight\" [style.--icon-color]=\"iconColor\"\n [iconSize]=\"isNewIcon(iconPosition) ? 'md-16' : null\" [attr.data-cy]=\"'textField_icon'\"></gravity-icon>\n</ng-template>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}:host{display:block}label{color:var(--text-field-label-color);display:block;margin:0 12px 5px}label.active,label.hover,label.autofill{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.typing{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}label.typed,label.typed-error{--text-field-label-color: var(--label-text-full-enabled-primary)}label.typed-error span{color:var(--negative-primary)}label.typed-positive{--text-field-label-color: var(--label-text-full-enabled-primary)}label.disabled{--text-field-label-color: var(--on-bg-disabled)}label.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}.hr-label.sm-bold.custom-label-size,.hr-label.sm-regular.custom-label-size{font-size:10px;letter-spacing:.25px}.gravity-input-field{align-items:center;background-color:var(--text-field-input-field-background-color);border:var(--text-field-input-field-border-width) solid var(--text-field-input-field-border-color);border-radius:.3125rem;color:var(--text-field-input-field-content-color);display:flex;height:var(--text-field-input-field-height);padding:10px 12px;--text-field-input-field-border-width: .5px;width:var(--text-field-input-field-width)}.gravity-input-field gravity-icon{--icon-color: var(--text-field-input-field-icon-color);--icon-height: var(--text-field-input-field-content);--icon-width: var(--text-field-input-field-content)}.gravity-input-field gravity-icon.pointer{cursor:pointer}.gravity-input-field gravity-icon.left{margin-right:5px}.gravity-input-field gravity-icon.right{margin-left:5px}.gravity-input-field .prefix{color:var(--text-field-input-field-content-color)}.gravity-input-field input,.gravity-input-field textarea{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-content-color);height:var(--text-field-input-field-input);line-height:1;outline:none;padding:0;resize:none;width:100%}.gravity-input-field input::placeholder,.gravity-input-field textarea::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field input:-webkit-autofill,.gravity-input-field textarea:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--bg-field-autofill) inset!important;-webkit-text-fill-color:var(--label-text-full-enabled-primary)!important}.gravity-input-field.sm{--text-field-input-field-height: 29px;--text-field-input-field-content: 9px;--text-field-input-field-input: 13px}.gravity-input-field.sm.short-width{--text-field-input-field-width: 195px}.gravity-input-field.sm.medium-width{--text-field-input-field-width: 276px}.gravity-input-field.sm.full-width,.gravity-input-field.sm.fit-width{--text-field-input-field-width: 100%}.gravity-input-field.md{--text-field-input-field-height: 35px;--text-field-input-field-content: 15px;--text-field-input-field-input: 18px}.gravity-input-field.md.short-width{--text-field-input-field-width: 242px}.gravity-input-field.md.medium-width{--text-field-input-field-width: 329px}.gravity-input-field.md.full-width,.gravity-input-field.md.fit-width{--text-field-input-field-width: 100%}.gravity-input-field.active{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.active:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.hover{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-border-width: 1px;--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.autofill{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.autofill:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.autofill input,.gravity-input-field.autofill textarea{background-color:var(--bg-field-autofill);color:var(--label-text-full-enabled-primary)}.gravity-input-field.typing{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-border-width: 1px;--text-field-input-field-content-color: var(--placeholder-full-enabled-pressed-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-pressed-primary);--text-field-input-field-placeholder-color: var(--placeholder-full-enabled-pressed-primary)}.gravity-input-field.typing:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed-error{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--negative-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed-error:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed-positive{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--positive-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed-positive:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.disabled{--text-field-input-field-background-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-border-color: var(--outline-disabled);--text-field-input-field-content-color: var(--on-bg-disabled);--text-field-input-field-icon-color: var(--on-bg-disabled);--text-field-input-field-placeholder-color: var(--on-bg-disabled)}.gravity-input-field.readonly{--text-field-input-field-background-color: var(--bg-field-full-read-only-primary);--text-field-input-field-border-color: var(--bg-field-full-read-only-primary);--text-field-input-field-content-color: var(--input-text-full-read-only-primary);--text-field-input-field-icon-color: var(--input-text-full-read-only-primary);--text-field-input-field-placeholder-color: var(--input-text-full-read-only-primary)}.supporting-text{align-items:center;color:var(--text-field-supporting-text-color);display:flex;margin:5px 12px 0}.supporting-text.active,.supporting-text.hover,.supporting-text.autofill{--text-field-supporting-text-color: var(--label-text-empty-enabled-primary)}.supporting-text.typing{--text-field-supporting-text-color: var(--label-text-full-enabled-pressed-primary)}.supporting-text.typed{--text-field-supporting-text-color: var(--label-text-full-enabled-primary)}.supporting-text.typed-error{--text-field-supporting-text-color: var(--negative-primary)}.supporting-text.typed-positive{--text-field-supporting-text-color: var(--positive-primary)}.supporting-text.disabled{--text-field-supporting-text-color: var(--on-bg-disabled)}.supporting-text.readonly{--text-field-supporting-text-color: var(--label-text-full-read-only-primary)}.supporting-text.sm{--text-field-supporting-text-icon-size: 9px}.supporting-text.md{--text-field-supporting-text-icon-size: 15px}.supporting-text gravity-icon{--icon-color: var(--negative-primary);--icon-height: var(--text-field-supporting-text-icon-size);--icon-width: var(--text-field-supporting-text-icon-size);margin-right:5px}\n"] }]
229
+ args: [{ selector: 'gravity-text-field', template: "<label class=\"hr-label sm-bold {{getTextFieldStatus()}}\" [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"label\">\n {{ label }}\n <span *ngIf=\"required || getTextFieldStatus() == 'typed-error'\">* </span>\n <span [class.extra-text]=\"labelExtraText\" *ngIf=\"labelExtraText\">{{ labelExtraText }}</span>\n</label>\n<div class=\"gravity-input-field {{textFieldType}} {{size}} {{width}}-width {{getTextFieldStatus()}}\">\n <ng-container *ngIf=\"iconLeft\">\n <ng-container [ngTemplateOutlet]=\"icons\" [ngTemplateOutletContext]=\"{iconPosition: 'left'}\"></ng-container>\n </ng-container>\n <span class=\"{{getTextFieldInputFontSize()}} prefix\">{{ prefix }}</span>\n <input [attr.data-cy]=\"cypressTag ? 'textField_' + cypressTag : null\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n [autocomplete]=\"autocomplete\"\n [maxLength]=\"inputContentType === 'date' ? 10 : (validations?.maxLength || 100)\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [type]=\"inputContentType === 'date' ? 'text' : (inputContentType !== 'number' ? inputContentType : 'text')\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keydown)=\" onKeyDownEvent($event)\"\n (keyup)=\"inputContentType === 'date' ?\n formatDateInput($event) : changeInputValue()\"\n\n class=\"{{getTextFieldInputFontSize()}}\"\n #inputElement\n *ngIf=\"textFieldType == 'input'\">\n\n <textarea [attr.data-cy]=\"cypressTag ? 'textField_' + cypressTag : null\"\n [attr.disabled]=\"customState == 'disabled' ? true : null\"\n [attr.readonly]=\"customState == 'readonly' ? true : null\"\n [maxLength]=\"validations?.maxLength ? validations?.maxLength : 200\"\n [minLength]=\"validations?.minLength ? validations?.minLength : 0\"\n [placeholder]=\"getPlaceholder()\"\n [value]=\"inputValue\"\n\n (blur)=\"focusInput = false\"\n (change)=\"changeInputValue()\"\n (focus)=\"focusInput = true\"\n (keydown)=\"onKeyDownEvent($event)\"\n (keyup)=\"changeInputValue()\"\n\n class=\"{{getTextFieldInputFontSize()}}\"\n rows=\"1\"\n\n #textAreaElement\n\n *ngIf=\"textFieldType == 'textarea'\"></textarea>\n <ng-container *ngIf=\"iconRight\">\n <ng-container [ngTemplateOutlet]=\"icons\" [ngTemplateOutletContext]=\"{iconPosition: 'right'}\"></ng-container>\n </ng-container>\n</div>\n<div class=\"support-text-container {{size}} {{width}}-width\">\n <p class=\"hr-label sm-regular supporting-text {{getTextFieldStatus()}} {{size}}\"\n [class.custom-label-size]=\"size == 'sm'\" *ngIf=\"supportText\">\n <gravity-icon [class.negative]=\"getTextFieldStatus() == 'typed-error'\" [iconName]=\"'question-circle'\"\n *ngIf=\"getTextFieldStatus() == 'typed-error' || characterLimit\"\n [iconSize]=\"'md-16'\"></gravity-icon>\n <gravity-icon class=\"positive\" [iconName]=\"'check'\" *ngIf=\"!hasInvalidPasswordRequirements && isPasswordField\"\n [iconSize]=\"'md-16'\"></gravity-icon>\n <gravity-icon [ngClass]=\"{negative: getTextFieldStatus() === 'typed-error',positive: getTextFieldStatus() === 'typed-positive'}\"\n [iconName]=\"supportTextIcon\" *ngIf=\"supportTextIcon\" [iconSize]=\"'md-16'\"></gravity-icon>\n {{ supportText }}\n </p>\n <p class=\"hr-label sm-regular character-counter {{getTextFieldStatus()}}\"\n *ngIf=\"characterCounter\">{{ inputValue.length }}/200</p>\n</div>\n\n\n<div class=\"password-requirements\" *ngIf=\"passwordRequirements.length> 0 && hasInvalidPasswordRequirements\">\n <p class=\"hr-label sm-bold\">{{ currentLang == 'en' ? 'Password requirements:' : 'Requisitos de contrase\u00F1a:' }}</p>\n <ul class=\"requirements\">\n <li class=\"hr-label sm-regular\" *ngFor=\"let requirement of passwordRequirements\"\n [ngClass]=\"{valid: hasUserTyped && requirement.isValid, invalid: hasUserTyped && !focusInput && !requirement.isValid}\">\n {{ requirement.label }}\n </li>\n </ul>\n</div>\n\n<ng-template #icons let-iconPosition=\"iconPosition\">\n <gravity-icon (click)=\"$event.stopPropagation(); handleIconClick(iconPosition)\" class=\"{{iconPosition}}\"\n [class.pointer]=\"(iconPosition == 'left' && clickOnLeftIcon) || (iconPosition == 'right' && clickOnRightIcon)\"\n [iconName]=\"iconPosition == 'left' ? iconLeft : iconRight\" [style.--icon-color]=\"iconColor\"\n [iconSize]=\"isNewIcon(iconPosition) ? 'md-16' : null\" [attr.data-cy]=\"'textField_icon'\"></gravity-icon>\n</ng-template>\n", styles: [".border-radius-none{border-radius:0}.border-radius-xs{border-radius:.0625rem}.border-radius-sm{border-radius:.3125rem}.border-radius-md{border-radius:.625rem}.border-radius-lg{border-radius:.9375rem}.border-radius-xl{border-radius:1.25rem}.border-radius-xxl{border-radius:2rem}.border-radius-rounded{border-radius:6.25rem}.text-negative{color:var(--negative-primary)}.text-neutro{color:var(--text-primary)}.text-positive{color:var(--positive-primary)}.support-text{margin-left:0;margin-top:.3125rem;padding-inline:1rem}.scrollbar-sm::-webkit-scrollbar,.gravity-input-field textarea::-webkit-scrollbar{width:4px;height:4px}.scrollbar-sm::-webkit-scrollbar-track,.gravity-input-field textarea::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb,.gravity-input-field textarea::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-sm::-webkit-scrollbar-thumb:hover,.gravity-input-field textarea::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}.scrollbar-md::-webkit-scrollbar{width:8px;height:8px}.scrollbar-md::-webkit-scrollbar-track{background-color:var(--surface-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb{background-color:var(--placeholder-empty-enabled-primary);border-radius:5px}.scrollbar-md::-webkit-scrollbar-thumb:hover{background-color:var(--line-empty-enabled-primary)}:host{display:block}label{color:var(--text-field-label-color);display:block;margin:0 12px 5px}label.active,label.hover,label.autofill{--text-field-label-color: var(--label-text-empty-enabled-primary)}label.typing{--text-field-label-color: var(--label-text-full-enabled-pressed-primary)}label.typed,label.typed-error{--text-field-label-color: var(--label-text-full-enabled-primary)}label.typed-error span{color:var(--negative-primary)}label.typed-positive{--text-field-label-color: var(--label-text-full-enabled-primary)}label.disabled{--text-field-label-color: var(--on-bg-disabled)}label.readonly{--text-field-label-color: var(--label-text-full-read-only-primary)}label .extra-text{font-weight:343!important;color:var(--placeholder-empty-enabled-primary)!important}.hr-label.sm-bold.custom-label-size,.hr-label.sm-regular.custom-label-size{font-size:10px;letter-spacing:.25px}.gravity-input-field{align-items:center;background-color:var(--text-field-input-field-background-color);border:var(--text-field-input-field-border-width) solid var(--text-field-input-field-border-color);border-radius:.3125rem;color:var(--text-field-input-field-content-color);display:flex;height:var(--text-field-input-field-height);padding:10px 12px;--text-field-input-field-border-width: .5px;width:var(--text-field-input-field-width)}.gravity-input-field gravity-icon{--icon-color: var(--text-field-input-field-icon-color);--icon-height: var(--text-field-input-field-content);--icon-width: var(--text-field-input-field-content)}.gravity-input-field gravity-icon.pointer{cursor:pointer}.gravity-input-field gravity-icon.left{margin-right:5px}.gravity-input-field gravity-icon.right{margin-left:5px}.gravity-input-field .prefix{color:var(--text-field-input-field-content-color)}.gravity-input-field input,.gravity-input-field textarea{background-color:transparent;border:none;box-shadow:none;color:var(--text-field-input-field-content-color);height:var(--text-field-input-field-input);line-height:1;outline:none;padding:0;resize:none;width:100%}.gravity-input-field input::placeholder,.gravity-input-field textarea::placeholder{color:var(--text-field-input-field-placeholder-color)}.gravity-input-field input:-webkit-autofill,.gravity-input-field textarea:-webkit-autofill{-webkit-box-shadow:0 0 0 30px var(--bg-field-autofill) inset!important;-webkit-text-fill-color:var(--label-text-full-enabled-primary)!important}.gravity-input-field.sm,.support-text-container.sm{--text-field-input-field-content: 9px}.gravity-input-field.sm.input,.support-text-container.sm.input{--text-field-input-field-height: 29px;--text-field-input-field-input: 13px}.gravity-input-field.sm.textarea,.support-text-container.sm.textarea{--text-field-input-field-height: 64px;--text-field-input-field-input: 44px}.gravity-input-field.sm.short-width,.support-text-container.sm.short-width{--text-field-input-field-width: 195px}.gravity-input-field.sm.medium-width,.support-text-container.sm.medium-width{--text-field-input-field-width: 276px}.gravity-input-field.sm.full-width,.support-text-container.sm.full-width,.gravity-input-field.sm.fit-width,.support-text-container.sm.fit-width{--text-field-input-field-width: 100%}.gravity-input-field.md,.support-text-container.md{--text-field-input-field-content: 15px}.gravity-input-field.md.input,.support-text-container.md.input{--text-field-input-field-height: 35px;--text-field-input-field-input: 18px}.gravity-input-field.md.textarea,.support-text-container.md.textarea{--text-field-input-field-height: 80px;--text-field-input-field-input: 60px}.gravity-input-field.md.short-width,.support-text-container.md.short-width{--text-field-input-field-width: 242px}.gravity-input-field.md.medium-width,.support-text-container.md.medium-width{--text-field-input-field-width: 329px}.gravity-input-field.md.full-width,.support-text-container.md.full-width,.gravity-input-field.md.fit-width,.support-text-container.md.fit-width{--text-field-input-field-width: 100%}.gravity-input-field.active{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.active:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.hover{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-border-width: 1px;--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.autofill{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-empty-enabled-primary);--text-field-input-field-content-color: var(--placeholder-empty-enabled-primary);--text-field-input-field-icon-color: var(--label-text-empty-enabled-primary);--text-field-input-field-placeholder-color: var(--placeholder-empty-enabled-primary)}.gravity-input-field.autofill:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.autofill input,.gravity-input-field.autofill textarea{background-color:var(--bg-field-autofill);color:var(--label-text-full-enabled-primary)}.gravity-input-field.typing{--text-field-input-field-background-color: var(--bg-field-empty-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-border-width: 1px;--text-field-input-field-content-color: var(--placeholder-full-enabled-pressed-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-pressed-primary);--text-field-input-field-placeholder-color: var(--placeholder-full-enabled-pressed-primary)}.gravity-input-field.typing:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--outline-field-full-enabled-pressed-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed-error{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--negative-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed-error:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.typed-positive{--text-field-input-field-background-color: var(--bg-field-full-enabled-primary);--text-field-input-field-border-color: var(--positive-primary);--text-field-input-field-content-color: var(--label-text-full-enabled-primary);--text-field-input-field-icon-color: var(--label-text-full-enabled-primary);--text-field-input-field-placeholder-color: var(--label-text-full-enabled-primary)}.gravity-input-field.typed-positive:hover{--text-field-input-field-border-width: 1px}.gravity-input-field.disabled{--text-field-input-field-background-color: var(--bg-field-empty-disabled-primary);--text-field-input-field-border-color: var(--outline-disabled);--text-field-input-field-content-color: var(--on-bg-disabled);--text-field-input-field-icon-color: var(--on-bg-disabled);--text-field-input-field-placeholder-color: var(--on-bg-disabled)}.gravity-input-field.readonly{--text-field-input-field-background-color: var(--bg-field-full-read-only-primary);--text-field-input-field-border-color: var(--bg-field-full-read-only-primary);--text-field-input-field-content-color: var(--input-text-full-read-only-primary);--text-field-input-field-icon-color: var(--input-text-full-read-only-primary);--text-field-input-field-placeholder-color: var(--input-text-full-read-only-primary)}.support-text-container{display:flex;justify-content:space-between;width:var(--text-field-input-field-width)}.supporting-text{align-items:center;color:var(--text-field-supporting-text-color);display:flex;margin:5px 12px 0}.supporting-text.active,.supporting-text.hover,.supporting-text.autofill{--text-field-supporting-text-color: var(--label-text-empty-enabled-primary)}.supporting-text.typing{--text-field-supporting-text-color: var(--label-text-full-enabled-pressed-primary)}.supporting-text.typed{--text-field-supporting-text-color: var(--label-text-full-enabled-primary)}.supporting-text.typed-error{--text-field-supporting-text-color: var(--negative-primary)}.supporting-text.typed-positive{--text-field-supporting-text-color: var(--positive-primary)}.supporting-text.disabled{--text-field-supporting-text-color: var(--on-bg-disabled)}.supporting-text.readonly{--text-field-supporting-text-color: var(--label-text-full-read-only-primary)}.supporting-text.sm{--text-field-supporting-text-icon-size: 9px}.supporting-text.md{--text-field-supporting-text-icon-size: 15px}.supporting-text gravity-icon{--icon-height: var(--text-field-supporting-text-icon-size);--icon-width: var(--text-field-supporting-text-icon-size);margin-right:5px}.supporting-text gravity-icon.negative{--icon-color: var(--negative-primary)}.supporting-text gravity-icon.positive{--icon-color: var(--positive-primary)}.password-requirements{display:flex;padding-left:12px;flex-direction:column;align-items:flex-start;gap:8px;margin-top:16px}.password-requirements .requirements{padding-left:12px;margin:0!important}.password-requirements .requirements li.valid{color:var(--positive-primary)}.password-requirements .requirements li.invalid{color:var(--negative-primary)}.character-counter{margin-left:auto;margin-top:5px}.character-counter.disabled{color:var(--on-bg-disabled)}\n"] }]
191
230
  }], propDecorators: { leftIconResponse: [{
192
231
  type: Output,
193
232
  args: ['clickIconLeft']
@@ -243,5 +282,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
243
282
  type: Input
244
283
  }], width: [{
245
284
  type: Input
285
+ }], labelExtraText: [{
286
+ type: Input
287
+ }], characterCounter: [{
288
+ type: Input
289
+ }], passwordRequirements: [{
290
+ type: Input
291
+ }], supportTextIcon: [{
292
+ type: Input
246
293
  }] } });
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10ZXh0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10ZXh0LWZpZWxkL2dyYXZpdHktdGV4dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQU85SCxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBTWtDLHFCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3pELHNCQUFpQixHQUF1QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pFLDJCQUFzQixHQUF5QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBSzlGLFlBQVk7UUFDSyxnQkFBVyxHQUFXLElBQUksQ0FBQztRQUUzQixnQkFBVyxHQUFrSSxTQUFTLENBQUM7UUFHdkosV0FBTSxHQUFXLEVBQUUsQ0FBQztRQUdwQixrQkFBYSxHQUF5QixPQUFPLENBQUM7UUFFOUQsUUFBUTtRQUNRLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLHFCQUFnQixHQUFZLEtBQUssQ0FBQztRQUtsRCxtQkFBbUI7UUFDSCxpQkFBWSxHQUFXLEtBQUssQ0FBQztRQUM3QixxQkFBZ0IsR0FBOEQsTUFBTSxDQUFDO1FBSXJHLFFBQVE7UUFDUSxTQUFJLEdB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QUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFHVSxJQUFJO3NCQUFuQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dyYXZpdHlJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vZ3Jhdml0eS1pY29uL2dyYXZpdHktaWNvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdncmF2aXR5LXRleHQtZmllbGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3Jhdml0eS10ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ3Jhdml0eS10ZXh0LWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgR3Jhdml0eVRleHRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQE91dHB1dCgnY2xpY2tJY29uTGVmdCcpIHB1YmxpYyBsZWZ0SWNvblJlc3BvbnNlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoJ2NsaWNrSWNvblJpZ2h0JykgcHVibGljIHJpZ2h0SWNvblJlc3BvbnNlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoJ3Jlc3BvbnNlJykgcHVibGljIHRleHRGaWVsZFZhbHVlUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcsIHtzdGF0aWM6IGZhbHNlfSkgcHVibGljIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cdEBWaWV3Q2hpbGQoJ3RleHRBcmVhRWxlbWVudCcsIHtzdGF0aWM6IGZhbHNlfSkgcHVibGljIHRleHRBcmVhRWxlbWVudCE6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cblx0Ly8gQ29tcG9uZW50XG4gIEBJbnB1dCgpIHB1YmxpYyBjdXJyZW50TGFuZzogc3RyaW5nID0gJ2VuJztcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUlucHV0VmFsdWU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbVN0YXRlOiAnZGVmYXVsdCcgfCAnYWN0aXZlJyB8ICdob3ZlcicgfCAndHlwaW5nJyB8ICd0eXBlZCcgfCAndHlwZWQtZXJyb3InIHwgJ3R5cGVkLXBvc2l0aXZlJyB8ICdkaXNhYmxlZCcgfCAncmVhZG9ubHknIHwgJ2F1dG9maWxsJyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgcHVibGljIGN5cHJlc3NUYWc6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVmaXg6IHN0cmluZyA9IFwiXCI7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgcHVibGljIHN1cHBvcnRUZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyB0ZXh0RmllbGRUeXBlOiAnaW5wdXQnIHwgJ3RleHRhcmVhJyA9IFwiaW5wdXRcIjtcblxuICAvLyBJY29uc1xuICBASW5wdXQoKSBwdWJsaWMgY2xpY2tPbkxlZnRJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjbGlja09uUmlnaHRJY29uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uQ29sb3I6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGljb25MZWZ0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uUmlnaHQ6IHN0cmluZztcblxuICAvLyBJbnB1dCB8IFRleHRhcmVhXG4gIEBJbnB1dCgpIHB1YmxpYyBhdXRvY29tcGxldGU6IHN0cmluZyA9ICdvZmYnO1xuICBASW5wdXQoKSBwdWJsaWMgaW5wdXRDb250ZW50VHlwZTogJ2VtYWlsJyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyB8ICd0ZWwnIHwgJ2RhdGUnIHwgJ3RleHQnID0gXCJ0ZXh0XCI7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgdmFsaWRhdGlvbnM6IHsgbWF4TGVuZ3RoPzogbnVtYmVyOyBtaW5MZW5ndGg/OiBudW1iZXIgfTtcblxuICAvLyBTaXplc1xuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xuICBASW5wdXQoKSBwdWJsaWMgd2lkdGg6ICdzaG9ydCcgfCAnbWVkaXVtJyB8ICdmdWxsJyB8ICdmaXQnID0gJ3Nob3J0JztcblxuICBwdWJsaWMgZm9jdXNJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaW5wdXRWYWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5jdXN0b21JbnB1dFZhbHVlID8gdGhpcy5jdXN0b21JbnB1dFZhbHVlIDogJyc7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2N1c3RvbUlucHV0VmFsdWUnXSkge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gY2hhbmdlc1snY3VzdG9tSW5wdXRWYWx1ZSddLmN1cnJlbnRWYWx1ZSA/IGNoYW5nZXNbJ2N1c3RvbUlucHV0VmFsdWUnXS5jdXJyZW50VmFsdWUgOiAnJztcbiAgICB9XG4gIH1cblxuXHRwdWJsaWMgZm9jdXMoKSB7XG5cdFx0dGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHR9XG5cblx0cHVibGljIGlzRm9jdXNlZCgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudDtcblx0fVxuXG4gIHB1YmxpYyBnZXRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnBsYWNlaG9sZGVyICYmIHRoaXMucGxhY2Vob2xkZXIgIT0gJycpIHtcbiAgICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5sYWJlbDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY2xlYXJJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZUlucHV0VmFsdWUodHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlSW5wdXRWYWx1ZShjbGVhcklucHV0OiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoY2xlYXJJbnB1dCkge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gJyc7XG4gICAgfSBlbHNlIGlmICh0aGlzLnRleHRGaWVsZFR5cGUgPT0gJ2lucHV0Jykge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pbnB1dFZhbHVlID0gdGhpcy50ZXh0QXJlYUVsZW1lbnQubmF0aXZlRWxlbWVudC52YWx1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pbnB1dFZhbHVlID09ICcnKSB7XG4gICAgICB0aGlzLnRleHRGaWVsZFZhbHVlUmVzcG9uc2UuZW1pdCgnJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGV4dEZpZWxkVmFsdWVSZXNwb25zZS5lbWl0KHRoaXMucHJlZml4ICsgdGhpcy5pbnB1dFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlSWNvbkNsaWNrKGljb25Qb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jyk6IHZvaWQge1xuICAgIGlmIChpY29uUG9zaXRpb24gPT0gJ2xlZnQnICYmIHRoaXMuY2xpY2tPbkxlZnRJY29uKSB7XG4gICAgICB0aGlzLmxlZnRJY29uUmVzcG9uc2UuZW1pdCgpO1xuICAgIH1cblxuICAgIGlmIChpY29uUG9zaXRpb24gPT0gJ3JpZ2h0JyAmJiB0aGlzLmNsaWNrT25SaWdodEljb24pIHtcbiAgICAgIHRoaXMucmlnaHRJY29uUmVzcG9uc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUZXh0RmllbGRTdGF0dXMoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jdXN0b21TdGF0ZSA9PSAnZGVmYXVsdCcpIHtcbiAgICAgIGlmICghdGhpcy5mb2N1c0lucHV0ICYmICF0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICdhY3RpdmUnO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5mb2N1c0lucHV0ICYmIHRoaXMuaW5wdXRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gJ3R5cGVkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAndHlwaW5nJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tU3RhdGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRleHRGaWVsZElucHV0Rm9udFNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2hyLWxhYmVsICcgKyB0aGlzLnNpemUgKyAnLXJlZ3VsYXInO1xuICB9XG5cbiAgcHVibGljIGlzTmV3SWNvbihpY29uUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcpOiBib29sZWFuIHtcbiAgICBpZiAoaWNvblBvc2l0aW9uID09ICdsZWZ0Jykge1xuICAgICAgcmV0dXJuIEdyYXZpdHlJY29uQ29tcG9uZW50LmlzTmV3SWNvbih0aGlzLmljb25MZWZ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEdyYXZpdHlJY29uQ29tcG9uZW50LmlzTmV3SWNvbih0aGlzLmljb25SaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uS2V5RG93bkV2ZW50KCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0Q29udGVudFR5cGUgPT0gJ251bWJlcicpIHtcbiAgICAgIGxldCBuYXZpZ2F0aW9uS2V5cyA9IFsnQmFja3NwYWNlJywgJ0RlbGV0ZScsICdUYWInLCAnRXNjYXBlJywgJ0VudGVyJywgJ0hvbWUnLCAnRW5kJywgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0NsZWFyJywgJ0NvcHknLCAnUGFzdGUnXTtcblxuICAgICAgaWYgKFxuICAgICAgICBuYXZpZ2F0aW9uS2V5cy5pbmRleE9mKCRldmVudC5rZXkpID4gLTEgfHwgLy8gQWxsb3c6IG5hdmlnYXRpb24ga2V5czogYmFja3NwYWNlLCBkZWxldGUsIGFycm93cyBldGMuXG4gICAgICAgICgkZXZlbnQua2V5ID09PSAnYScgJiYgJGV2ZW50LmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK0FcbiAgICAgICAgKCRldmVudC5rZXkgPT09ICdjJyAmJiAkZXZlbnQuY3RybEtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IEN0cmwrQ1xuICAgICAgICAoJGV2ZW50LmtleSA9PT0gJ3YnICYmICRldmVudC5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtWXG4gICAgICAgICgkZXZlbnQua2V5ID09PSAneCcgJiYgJGV2ZW50LmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK1hcbiAgICAgICAgKCRldmVudC5rZXkgPT09ICdhJyAmJiAkZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IENtZCtBIChNYWMpXG4gICAgICAgICgkZXZlbnQua2V5ID09PSAnYycgJiYgJGV2ZW50Lm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQyAoTWFjKVxuICAgICAgICAoJGV2ZW50LmtleSA9PT0gJ3YnICYmICRldmVudC5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK1YgKE1hYylcbiAgICAgICAgKCRldmVudC5rZXkgPT09ICd4JyAmJiAkZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkgfHwvLyBBbGxvdzogQ21kK1ggKE1hYylcbiAgICAgICAgKCRldmVudC5rZXkgPT09ICcuJykgfHwgKCRldmVudC5rZXkgPT09ICcsJykgLy8gQWxsb3c6IGRvdCBhbmQgY29tbWEgZm9yIGRlY2ltYWxcbiAgICAgICkge1xuICAgICAgICAvLyBsZXQgaXQgaGFwcGVuLCBkb24ndCBkbyBhbnl0aGluZ1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xuICAgICAgaWYgKFxuICAgICAgICAoJGV2ZW50LnNoaWZ0S2V5IHx8ICgkZXZlbnQua2V5Q29kZSA8IDQ4IHx8ICRldmVudC5rZXlDb2RlID4gNTcpKSAmJlxuICAgICAgICAoJGV2ZW50LmtleUNvZGUgPCA5NiB8fCAkZXZlbnQua2V5Q29kZSA+IDEwNSlcbiAgICAgICkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG5cblx0ICBpZiAodGhpcy5pbnB1dENvbnRlbnRUeXBlID09ICdkYXRlJykge1xuXHRcdCAgY29uc3QgYWxsb3dlZEtleXMgPSBbXG5cdFx0XHQgICdCYWNrc3BhY2UnLCAnRGVsZXRlJywgJ1RhYicsICdFc2NhcGUnLCAnRW50ZXInLFxuXHRcdFx0ICAnQXJyb3dMZWZ0JywgJ0Fycm93UmlnaHQnLCAnQXJyb3dVcCcsICdBcnJvd0Rvd24nXG5cdFx0ICBdO1xuXG5cdFx0ICBpZiAoYWxsb3dlZEtleXMuaW5jbHVkZXMoJGV2ZW50LmtleSkgfHwgJGV2ZW50Lm1ldGFLZXkgfHwgJGV2ZW50LmN0cmxLZXkpIHtcblx0XHRcdCAgcmV0dXJuO1xuXHRcdCAgfVxuXG5cdFx0ICBpZiAoL1xcRC8udGVzdCgkZXZlbnQua2V5KSAmJiAkZXZlbnQua2V5ICE9PSAnLycpIHtcblx0XHRcdCAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0ICB9XG5cdCAgfVxuICB9XG5cblx0cHVibGljIGZvcm1hdERhdGVJbnB1dChldmVudDogYW55KTogdm9pZCB7XG5cdFx0Y29uc3QgZWwgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblx0XHRsZXQgdmFsdWUgPSBlbC52YWx1ZTtcblx0XHRsZXQgZm9ybWF0dGVkID0gJyc7XG5cblx0XHRsZXQgY3Vyc29yUG9zaXRpb24gPSBlbC5zZWxlY3Rpb25TdGFydCB8fCAwO1xuXHRcdGNvbnN0IGlzRGVsZXRpbmcgPSBldmVudC5pbnB1dFR5cGUgPT09ICdkZWxldGVDb250ZW50QmFja3dhcmQnIHx8XG5cdFx0XHQgICAgICAgICAgICAgICAgIGV2ZW50LmlucHV0VHlwZSA9PT0gJ2RlbGV0ZUNvbnRlbnRGb3J3YXJkJztcblxuXHRcdGlmICgodmFsdWUubGVuZ3RoID09PSAzICYmIHZhbHVlWzJdID09PSAnLycpIHx8XG5cdFx0XHQgICh2YWx1ZS5sZW5ndGggPT09IDYgJiYgdmFsdWVbNV0gPT09ICcvJykpIHtcblx0XHRcdGZvcm1hdHRlZCA9IHZhbHVlO1xuXHRcdH1cblxuXHRcdGVsc2UgaWYgKC9cXEQvLnRlc3QodmFsdWVbdmFsdWUubGVuZ3RoIC0gMV0pKSB7XG5cdFx0XHRmb3JtYXR0ZWQgPSB2YWx1ZS5zbGljZSgwLCAtMSk7XG5cdFx0XHRjdXJzb3JQb3NpdGlvbiA9IE1hdGgubWF4KDAsIGN1cnNvclBvc2l0aW9uIC0gMSk7XG5cblx0XHRcdGlmKGZvcm1hdHRlZC5sZW5ndGggPT09IDEgfHwgZm9ybWF0dGVkLmxlbmd0aCA9PT0gNCkge1xuXHRcdFx0XHRjdXJzb3JQb3NpdGlvbisrO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGVsc2Uge1xuXHRcdFx0Y29uc3QgbnVtYmVycyA9IHZhbHVlLnJlcGxhY2UoL1xcLy9nLCAnJyk7XG5cblx0XHRcdGxldCBkYXkgPSBudW1iZXJzLnNsaWNlKDAsIDIpO1xuXHRcdFx0bGV0IG1vbnRoID0gbnVtYmVycy5zbGljZSgyLCA0KTtcblx0XHRcdGxldCB5ZWFyID0gbnVtYmVycy5zbGljZSg0LCA4KTtcblxuXHRcdFx0aWYgKGRheS5sZW5ndGggPiAwKSBmb3JtYXR0ZWQgKz0gZGF5O1xuXHRcdFx0aWYgKGRheS5sZW5ndGggPT09IDIgJiYgbW9udGgubGVuZ3RoID4gMCkgZm9ybWF0dGVkICs9ICcvJztcblx0XHRcdGlmIChtb250aC5sZW5ndGggPiAwKSBmb3JtYXR0ZWQgKz0gbW9udGg7XG5cdFx0XHRpZiAobW9udGgubGVuZ3RoID09PSAyICYmIHllYXIubGVuZ3RoID4gMCkgZm9ybWF0dGVkICs9ICcvJztcblx0XHRcdGlmICh5ZWFyLmxlbmd0aCA+IDApIGZvcm1hdHRlZCArPSB5ZWFyO1xuXG5cdFx0XHRjb25zdCBjdXJyZW50TGVuZ3RoID0gdmFsdWUubGVuZ3RoO1xuXHRcdFx0Y29uc3QgbmV3TGVuZ3RoID0gZm9ybWF0dGVkLmxlbmd0aDtcblxuXHRcdFx0aWYgKG5ld0xlbmd0aCA+IGN1cnJlbnRMZW5ndGggJiYgIWlzRGVsZXRpbmcpIHsgY3Vyc29yUG9zaXRpb24rKyB9XG5cdFx0fVxuXG5cdFx0ZWwudmFsdWUgPSBmb3JtYXR0ZWQ7XG5cdFx0dGhpcy5pbnB1dFZhbHVlID0gZm9ybWF0dGVkO1xuXHRcdGVsLnNldFNlbGVjdGlvblJhbmdlKGN1cnNvclBvc2l0aW9uLCBjdXJzb3JQb3NpdGlvbik7XG5cblx0XHR0aGlzLmNoYW5nZUlucHV0VmFsdWUoKTtcblx0fVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiaHItbGFiZWwgc20tYm9sZCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX1cIiBbY2xhc3MuY3VzdG9tLWxhYmVsLXNpemVdPVwic2l6ZSA9PSAnc20nXCIgKm5nSWY9XCJsYWJlbFwiPlxuICB7e2xhYmVsfX0gPHNwYW4gKm5nSWY9XCJyZXF1aXJlZCB8fCBnZXRUZXh0RmllbGRTdGF0dXMoKSA9PSAndHlwZWQtZXJyb3InXCI+Kjwvc3Bhbj5cbjwvbGFiZWw+XG48ZGl2IGNsYXNzPVwiZ3Jhdml0eS1pbnB1dC1maWVsZCB7e3NpemV9fSB7e3dpZHRofX0td2lkdGgge3tnZXRUZXh0RmllbGRTdGF0dXMoKX19XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpY29uTGVmdFwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaWNvbnNcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2ljb25Qb3NpdGlvbjogJ2xlZnQnfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPHNwYW4gY2xhc3M9XCJ7e2dldFRleHRGaWVsZElucHV0Rm9udFNpemUoKX19IHByZWZpeFwiPnt7cHJlZml4fX08L3NwYW4+XG4gIDxpbnB1dCBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWcgPyAndGV4dEZpZWxkXycgKyBjeXByZXNzVGFnIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjdXN0b21TdGF0ZSA9PSAnZGlzYWJsZWQnID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgW2F0dHIucmVhZG9ubHldPVwiY3VzdG9tU3RhdGUgPT0gJ3JlYWRvbmx5JyA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgIFttYXhMZW5ndGhdPVwiaW5wdXRDb250ZW50VHlwZSA9PT0gJ2RhdGUnID8gMTAgOiAodmFsaWRhdGlvbnM/Lm1heExlbmd0aCB8fCAxMDApXCJcbiAgICAgICAgIFttaW5MZW5ndGhdPVwidmFsaWRhdGlvbnM/Lm1pbkxlbmd0aCA/IHZhbGlkYXRpb25zPy5taW5MZW5ndGggOiAwXCJcbiAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcbiAgICAgICAgIFt0eXBlXT1cImlucHV0Q29udGVudFR5cGUgPT09ICdkYXRlJyA/ICd0ZXh0JyA6IChpbnB1dENvbnRlbnRUeXBlICE9PSAnbnVtYmVyJyA/IGlucHV0Q29udGVudFR5cGUgOiAndGV4dCcpXCJcbiAgICAgICAgIFt2YWx1ZV09XCJpbnB1dFZhbHVlXCJcblxuICAgICAgICAgKGJsdXIpPVwiZm9jdXNJbnB1dCA9IGZhbHNlXCJcbiAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlSW5wdXRWYWx1ZSgpXCJcbiAgICAgICAgIChmb2N1cyk9XCJmb2N1c0lucHV0ID0gdHJ1ZVwiXG4gICAgICAgICAoa2V5ZG93bik9XCIgb25LZXlEb3duRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAoa2V5dXApPVwiaW5wdXRDb250ZW50VHlwZSA9PT0gJ2RhdGUnID9cbiAgICAgICAgICBmb3JtYXREYXRlSW5wdXQoJGV2ZW50KSA6IGNoYW5nZUlucHV0VmFsdWUoKVwiXG5cbiAgICAgICAgIGNsYXNzPVwie3tnZXRUZXh0RmllbGRJbnB1dEZvbnRTaXplKCl9fVwiXG5cdFx0XHRcdCAjaW5wdXRFbGVtZW50XG4gICAgICAgICAqbmdJZj1cInRleHRGaWVsZFR5cGUgPT0gJ2lucHV0J1wiPlxuXG4gIDx0ZXh0YXJlYSBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWcgPyAndGV4dEZpZWxkXycgKyBjeXByZXNzVGFnIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjdXN0b21TdGF0ZSA9PSAnZGlzYWJsZWQnID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIucmVhZG9ubHldPVwiY3VzdG9tU3RhdGUgPT0gJ3JlYWRvbmx5JyA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwidmFsaWRhdGlvbnM/Lm1heExlbmd0aCA/IHZhbGlkYXRpb25zPy5tYXhMZW5ndGggOiAyMDBcIlxuICAgICAgICAgICAgW21pbkxlbmd0aF09XCJ2YWxpZGF0aW9ucz8ubWluTGVuZ3RoID8gdmFsaWRhdGlvbnM/Lm1pbkxlbmd0aCA6IDBcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImlucHV0VmFsdWVcIlxuXG4gICAgICAgICAgICAoYmx1cik9XCJmb2N1c0lucHV0ID0gZmFsc2VcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VJbnB1dFZhbHVlKClcIlxuICAgICAgICAgICAgKGZvY3VzKT1cImZvY3VzSW5wdXQgPSB0cnVlXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgKGtleXVwKT1cImNoYW5nZUlucHV0VmFsdWUoKVwiXG5cbiAgICAgICAgICAgIGNsYXNzPVwie3tnZXRUZXh0RmllbGRJbnB1dEZvbnRTaXplKCl9fVwiXG4gICAgICAgICAgICByb3dzPVwiMVwiXG5cbiAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcblxuICAgICAgICAgICAgKm5nSWY9XCJ0ZXh0RmllbGRUeXBlID09ICd0ZXh0YXJlYSdcIj48L3RleHRhcmVhPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvblJpZ2h0XCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uc1wiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aWNvblBvc2l0aW9uOiAncmlnaHQnfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyIHN1cHBvcnRpbmctdGV4dCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX0ge3tzaXplfX1cIlxuICAgW2NsYXNzLmN1c3RvbS1sYWJlbC1zaXplXT1cInNpemUgPT0gJ3NtJ1wiICpuZ0lmPVwic3VwcG9ydFRleHRcIj5cbiAgPGdyYXZpdHktaWNvbiBbaWNvbk5hbWVdPVwiJ3F1ZXN0aW9uLWNpcmNsZSdcIiAqbmdJZj1cImdldFRleHRGaWVsZFN0YXR1cygpID09ICd0eXBlZC1lcnJvcidcIlxuICAgICAgICAgICAgICAgIFtpY29uU2l6ZV09XCInbWQtMTYnXCI+PC9ncmF2aXR5LWljb24+XG4gIHt7c3VwcG9ydFRleHR9fVxuPC9wPlxuPHAgY2xhc3M9XCJoci1sYWJlbCBzbS1yZWd1bGFyIHN1cHBvcnRpbmctdGV4dCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX0ge3tzaXplfX1cIlxuICAgW2NsYXNzLmN1c3RvbS1sYWJlbC1zaXplXT1cInNpemUgPT0gJ3NtJ1wiXG4gICAqbmdJZj1cIiFzdXBwb3J0VGV4dCAmJiBnZXRUZXh0RmllbGRTdGF0dXMoKSA9PSAnYWN0aXZlJyAmJiBpbnB1dFZhbHVlID09ICcnICYmIHJlcXVpcmVkXCI+XG4gIHt7Y3VycmVudExhbmcgPT0gJ2VzJyA/ICdSZXF1ZXJpZG8nIDogJ1JlcXVpcmVkJ319XG48L3A+XG5cbjxuZy10ZW1wbGF0ZSAjaWNvbnMgbGV0LWljb25Qb3NpdGlvbj1cImljb25Qb3NpdGlvblwiPlxuICA8Z3Jhdml0eS1pY29uIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGhhbmRsZUljb25DbGljayhpY29uUG9zaXRpb24pXCIgY2xhc3M9XCJ7e2ljb25Qb3NpdGlvbn19XCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucG9pbnRlcl09XCIoaWNvblBvc2l0aW9uID09ICdsZWZ0JyAmJiBjbGlja09uTGVmdEljb24pIHx8IChpY29uUG9zaXRpb24gPT0gJ3JpZ2h0JyAmJiBjbGlja09uUmlnaHRJY29uKVwiXG4gICAgICAgICAgICAgICAgW2ljb25OYW1lXT1cImljb25Qb3NpdGlvbiA9PSAnbGVmdCcgPyBpY29uTGVmdCA6IGljb25SaWdodFwiIFtzdHlsZS4tLWljb24tY29sb3JdPVwiaWNvbkNvbG9yXCJcbiAgICAgICAgICAgICAgICBbaWNvblNpemVdPVwiaXNOZXdJY29uKGljb25Qb3NpdGlvbikgPyAnbWQtMTYnIDogbnVsbFwiIFthdHRyLmRhdGEtY3ldPVwiJ3RleHRGaWVsZF9pY29uJ1wiPjwvZ3Jhdml0eS1pY29uPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10ZXh0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbXBvbmVudHMvZ3Jhdml0eS10ZXh0LWZpZWxkL2dyYXZpdHktdGV4dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ncmF2aXR5LWRlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2dyYXZpdHktdGV4dC1maWVsZC9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFFTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7Ozs7QUFPdkIsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQU1rQyxxQkFBZ0IsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6RCxzQkFBaUIsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqRSwyQkFBc0IsR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUs3RixZQUFZO1FBQ0ksZ0JBQVcsR0FBVyxJQUFJLENBQUM7UUFFM0IsZ0JBQVcsR0FBa0ksU0FBUyxDQUFDO1FBR3ZKLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFHcEIsa0JBQWEsR0FBeUIsT0FBTyxDQUFDO1FBRTlELFFBQVE7UUFDUSxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyxxQkFBZ0IsR0FBWSxLQUFLLENBQUM7UUFLbEQsbUJBQW1CO1FBQ0gsaUJBQVksR0FBVyxLQUFLLENBQUM7UUFDN0IscUJBQWdCLEdBQThELE1BQU0sQ0FBQztRQUlyRyxRQUFRO1FBQ1EsU0FBSSxHQUFn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LEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFM0ksSUFDRSxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSx5REFBeUQ7Z0JBQ3BHLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7Z0JBQ25FLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7Z0JBQ25FLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7Z0JBQ25FLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7Z0JBQ25FLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7Z0JBQ3hFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7Z0JBQ3hFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBSSxxQkFBcUI7Z0JBQ3hFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsSUFBRyxxQkFBcUI7Z0JBQ3ZFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENB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RUFBRSxLQUFLLEVBQUM7Z0JBQ1ksZUFBZTtzQkFBcEUsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRzdCLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBR1UsZUFBZTtzQkFBOUIsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxnQkFBZ0I7c0JBQS9CLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUdVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsS0FBSztzQkFBcEIsS0FBSztnQkFFVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLGdCQUFnQjtzQkFBL0IsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R3Jhdml0eUljb25Db21wb25lbnR9IGZyb20gXCIuLi9ncmF2aXR5LWljb24vZ3Jhdml0eS1pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dyYXZpdHktdGV4dC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LXRleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcmF2aXR5VGV4dEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAT3V0cHV0KCdjbGlja0ljb25MZWZ0JykgcHVibGljIGxlZnRJY29uUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgnY2xpY2tJY29uUmlnaHQnKSBwdWJsaWMgcmlnaHRJY29uUmVzcG9uc2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgncmVzcG9uc2UnKSBwdWJsaWMgdGV4dEZpZWxkVmFsdWVSZXNwb25zZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50Jywge3N0YXRpYzogZmFsc2V9KSBwdWJsaWMgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgndGV4dEFyZWFFbGVtZW50Jywge3N0YXRpYzogZmFsc2V9KSBwdWJsaWMgdGV4dEFyZWFFbGVtZW50ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICAvLyBDb21wb25lbnRcbiAgQElucHV0KCkgcHVibGljIGN1cnJlbnRMYW5nOiBzdHJpbmcgPSAnZW4nO1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tSW5wdXRWYWx1ZTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tU3RhdGU6ICdkZWZhdWx0JyB8ICdhY3RpdmUnIHwgJ2hvdmVyJyB8ICd0eXBpbmcnIHwgJ3R5cGVkJyB8ICd0eXBlZC1lcnJvcicgfCAndHlwZWQtcG9zaXRpdmUnIHwgJ2Rpc2FibGVkJyB8ICdyZWFkb25seScgfCAnYXV0b2ZpbGwnID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBwdWJsaWMgY3lwcmVzc1RhZzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHByZWZpeDogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkOiBib29sZWFuO1xuICBASW5wdXQoKSBwdWJsaWMgc3VwcG9ydFRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHRleHRGaWVsZFR5cGU6ICdpbnB1dCcgfCAndGV4dGFyZWEnID0gXCJpbnB1dFwiO1xuXG4gIC8vIEljb25zXG4gIEBJbnB1dCgpIHB1YmxpYyBjbGlja09uTGVmdEljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGNsaWNrT25SaWdodEljb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGljb25Db2xvcjogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgaWNvbkxlZnQ6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGljb25SaWdodDogc3RyaW5nO1xuXG4gIC8vIElucHV0IHwgVGV4dGFyZWFcbiAgQElucHV0KCkgcHVibGljIGF1dG9jb21wbGV0ZTogc3RyaW5nID0gJ29mZic7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbnB1dENvbnRlbnRUeXBlOiAnZW1haWwnIHwgJ251bWJlcicgfCAncGFzc3dvcmQnIHwgJ3RlbCcgfCAnZGF0ZScgfCAndGV4dCcgPSBcInRleHRcIjtcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyB2YWxpZGF0aW9uczogeyBtYXhMZW5ndGg/OiBudW1iZXI7IG1pbkxlbmd0aD86IG51bWJlciB9O1xuXG4gIC8vIFNpemVzXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiAnc20nIHwgJ21kJyA9ICdtZCc7XG4gIEBJbnB1dCgpIHB1YmxpYyB3aWR0aDogJ3Nob3J0JyB8ICdtZWRpdW0nIHwgJ2Z1bGwnIHwgJ2ZpdCcgPSAnc2hvcnQnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbEV4dHJhVGV4dDogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgY2hhcmFjdGVyQ291bnRlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcGFzc3dvcmRSZXF1aXJlbWVudHM6IHsga2V5OiBzdHJpbmc7IGxhYmVsOiBzdHJpbmc7IGlzVmFsaWQ6IGJvb2xlYW47IH1bXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgc3VwcG9ydFRleHRJY29uOiBzdHJpbmcgPSAnJztcblxuICBwdWJsaWMgZm9jdXNJbnB1dDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgaGFzVXNlclR5cGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpc1Bhc3N3b3JkRmllbGQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHVibGljIGNoYXJhY3RlckxpbWl0OiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBhbGxQYXNzd29yZFJlcXVpcmVtZW50c1ZhbGlkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBpbnB1dFZhbHVlOiBzdHJpbmcgPSAnJztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmN1c3RvbUlucHV0VmFsdWUgPyB0aGlzLmN1c3RvbUlucHV0VmFsdWUgOiAnJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snY3VzdG9tSW5wdXRWYWx1ZSddKSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSBjaGFuZ2VzWydjdXN0b21JbnB1dFZhbHVlJ10uY3VycmVudFZhbHVlID8gY2hhbmdlc1snY3VzdG9tSW5wdXRWYWx1ZSddLmN1cnJlbnRWYWx1ZSA6ICcnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1cygpIHtcbiAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBwdWJsaWMgaXNGb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGdldFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucGxhY2Vob2xkZXIgJiYgdGhpcy5wbGFjZWhvbGRlciAhPSAnJykge1xuICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmxhYmVsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhcklucHV0KCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlSW5wdXRWYWx1ZSh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VJbnB1dFZhbHVlKGNsZWFySW5wdXQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuaGFzVXNlclR5cGVkID0gdHJ1ZTtcblxuICAgIGlmIChjbGVhcklucHV0KSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICB9IGVsc2UgaWYgKHRoaXMudGV4dEZpZWxkVHlwZSA9PSAnaW5wdXQnKSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSB0aGlzLnRleHRBcmVhRWxlbWVudC5uYXRpdmVFbGVtZW50LnZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0VmFsdWUgPT0gJycpIHtcbiAgICAgIHRoaXMudGV4dEZpZWxkVmFsdWVSZXNwb25zZS5lbWl0KCcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50ZXh0RmllbGRWYWx1ZVJlc3BvbnNlLmVtaXQodGhpcy5wcmVmaXggKyB0aGlzLmlucHV0VmFsdWUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlucHV0VmFsdWUubGVuZ3RoID09IHRoaXMudmFsaWRhdGlvbnM/Lm1heExlbmd0aCB8fCB0aGlzLmlucHV0VmFsdWUubGVuZ3RoID09IDIwMCkge1xuICAgICAgdGhpcy5zdXBwb3J0VGV4dCA9IHRoaXMuY3VycmVudExhbmcgPT0gJ2VuJyA/ICdDaGFyYWN0ZXIgbGltaXQgcmVhY2hlZCcgOiAnTMOtbWl0ZSBkZSBjYXJhY3RlcmVzIGFsY2FuemFkbyc7XG4gICAgICB0aGlzLmNoYXJhY3RlckxpbWl0ID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2hhcmFjdGVyTGltaXQpIHtcbiAgICAgIHRoaXMuc3VwcG9ydFRleHQgPSAnJztcbiAgICAgIHRoaXMuY2hhcmFjdGVyTGltaXQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlSWNvbkNsaWNrKGljb25Qb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jyk6IHZvaWQge1xuICAgIGlmIChpY29uUG9zaXRpb24gPT0gJ2xlZnQnICYmIHRoaXMuY2xpY2tPbkxlZnRJY29uKSB7XG4gICAgICB0aGlzLmxlZnRJY29uUmVzcG9uc2UuZW1pdCgpO1xuICAgIH1cblxuICAgIGlmIChpY29uUG9zaXRpb24gPT0gJ3JpZ2h0JyAmJiB0aGlzLmNsaWNrT25SaWdodEljb24pIHtcbiAgICAgIHRoaXMucmlnaHRJY29uUmVzcG9uc2UuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRUZXh0RmllbGRTdGF0dXMoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5jdXN0b21TdGF0ZSA9PSAnZGVmYXVsdCcpIHtcbiAgICAgIGlmICghdGhpcy5mb2N1c0lucHV0ICYmICF0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgICAgcmV0dXJuICdhY3RpdmUnO1xuICAgICAgfSBlbHNlIGlmICghdGhpcy5mb2N1c0lucHV0ICYmIHRoaXMuaW5wdXRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gJ3R5cGVkJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiAndHlwaW5nJztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tU3RhdGU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFRleHRGaWVsZElucHV0Rm9udFNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ2hyLWxhYmVsICcgKyB0aGlzLnNpemUgKyAnLXJlZ3VsYXInO1xuICB9XG5cbiAgcHVibGljIGlzTmV3SWNvbihpY29uUG9zaXRpb246ICdsZWZ0JyB8ICdyaWdodCcpOiBib29sZWFuIHtcbiAgICBpZiAoaWNvblBvc2l0aW9uID09ICdsZWZ0Jykge1xuICAgICAgcmV0dXJuIEdyYXZpdHlJY29uQ29tcG9uZW50LmlzTmV3SWNvbih0aGlzLmljb25MZWZ0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIEdyYXZpdHlJY29uQ29tcG9uZW50LmlzTmV3SWNvbih0aGlzLmljb25SaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBoYXNJbnZhbGlkUGFzc3dvcmRSZXF1aXJlbWVudHMoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucGFzc3dvcmRSZXF1aXJlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5pc1Bhc3N3b3JkRmllbGQgPSB0cnVlO1xuICAgICAgY29uc3QgaGFzSW52YWxpZCA9IHRoaXMucGFzc3dvcmRSZXF1aXJlbWVudHM/LnNvbWUociA9PiAhci5pc1ZhbGlkKTtcblxuICAgICAgaWYgKHRoaXMuaGFzVXNlclR5cGVkKSB7XG4gICAgICAgIC8vUmVxdWlyZW1lbnRzIGludmFsaWRcbiAgICAgICAgaWYgKGhhc0ludmFsaWQpIHtcbiAgICAgICAgICBpZiAoIXRoaXMuZm9jdXNJbnB1dCB8fCB0aGlzLmFsbFBhc3N3b3JkUmVxdWlyZW1lbnRzVmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tU3RhdGUgPSAndHlwZWQtZXJyb3InO1xuICAgICAgICAgICAgdGhpcy5zdXBwb3J0VGV4dCA9IHRoaXMuY3VycmVudExhbmcgPT09ICdlbicgPyAnTXVzdCBtZWV0IHBhc3N3b3JkIHJlcXVpcmVtZW50cycgOiAnRGViZSBjdW1wbGlyIGNvbiBsb3MgcmVxdWlzaXRvcyBkZSBjb250cmFzZcOxYSc7XG4gICAgICAgICAgICB0aGlzLmFsbFBhc3N3b3JkUmVxdWlyZW1lbnRzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy9SZXF1aXJlbWVudHMgdmFsaWRcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgdGhpcy5jdXN0b21TdGF0ZSA9ICd0eXBlZC1wb3NpdGl2ZSc7XG4gICAgICAgICAgdGhpcy5zdXBwb3J0VGV4dCA9IHRoaXMuY3VycmVudExhbmcgPT09ICdlbicgPyAnUmVxdWlyZW1lbnRzIGFwcGxpZWQnIDogJ1JlcXVpc2l0b3MgYXBsaWNhZG9zJztcbiAgICAgICAgICB0aGlzLmFsbFBhc3N3b3JkUmVxdWlyZW1lbnRzVmFsaWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBoYXNJbnZhbGlkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbktleURvd25FdmVudCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbnB1dENvbnRlbnRUeXBlID09ICdudW1iZXInKSB7XG4gICAgICBsZXQgbmF2aWdhdGlvbktleXMgPSBbJ0JhY2tzcGFjZScsICdEZWxldGUnLCAnVGFiJywgJ0VzY2FwZScsICdFbnRlcicsICdIb21lJywgJ0VuZCcsICdBcnJvd0xlZnQnLCAnQXJyb3dSaWdodCcsICdDbGVhcicsICdDb3B5JywgJ1Bhc3RlJ107XG5cbiAgICAgIGlmIChcbiAgICAgICAgbmF2aWdhdGlvbktleXMuaW5kZXhPZigkZXZlbnQua2V5KSA+IC0xIHx8IC8vIEFsbG93OiBuYXZpZ2F0aW9uIGtleXM6IGJhY2tzcGFjZSwgZGVsZXRlLCBhcnJvd3MgZXRjLlxuICAgICAgICAoJGV2ZW50LmtleSA9PT0gJ2EnICYmICRldmVudC5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtBXG4gICAgICAgICgkZXZlbnQua2V5ID09PSAnYycgJiYgJGV2ZW50LmN0cmxLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDdHJsK0NcbiAgICAgICAgKCRldmVudC5rZXkgPT09ICd2JyAmJiAkZXZlbnQuY3RybEtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IEN0cmwrVlxuICAgICAgICAoJGV2ZW50LmtleSA9PT0gJ3gnICYmICRldmVudC5jdHJsS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ3RybCtYXG4gICAgICAgICgkZXZlbnQua2V5ID09PSAnYScgJiYgJGV2ZW50Lm1ldGFLZXkgPT09IHRydWUpIHx8IC8vIEFsbG93OiBDbWQrQSAoTWFjKVxuICAgICAgICAoJGV2ZW50LmtleSA9PT0gJ2MnICYmICRldmVudC5tZXRhS2V5ID09PSB0cnVlKSB8fCAvLyBBbGxvdzogQ21kK0MgKE1hYylcbiAgICAgICAgKCRldmVudC5rZXkgPT09ICd2JyAmJiAkZXZlbnQubWV0YUtleSA9PT0gdHJ1ZSkgfHwgLy8gQWxsb3c6IENtZCtWIChNYWMpXG4gICAgICAgICgkZXZlbnQua2V5ID09PSAneCcgJiYgJGV2ZW50Lm1ldGFLZXkgPT09IHRydWUpIHx8Ly8gQWxsb3c6IENtZCtYIChNYWMpXG4gICAgICAgICgkZXZlbnQua2V5ID09PSAnLicpIHx8ICgkZXZlbnQua2V5ID09PSAnLCcpIC8vIEFsbG93OiBkb3QgYW5kIGNvbW1hIGZvciBkZWNpbWFsXG4gICAgICApIHtcbiAgICAgICAgLy8gbGV0IGl0IGhhcHBlbiwgZG9uJ3QgZG8gYW55dGhpbmdcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBFbnN1cmUgdGhhdCBpdCBpcyBhIG51bWJlciBhbmQgc3RvcCB0aGUga2V5cHJlc3NcbiAgICAgIGlmIChcbiAgICAgICAgKCRldmVudC5zaGlmdEtleSB8fCAoJGV2ZW50LmtleUNvZGUgPCA0OCB8fCAkZXZlbnQua2V5Q29kZSA+IDU3KSkgJiZcbiAgICAgICAgKCRldmVudC5rZXlDb2RlIDwgOTYgfHwgJGV2ZW50LmtleUNvZGUgPiAxMDUpXG4gICAgICApIHtcbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaW5wdXRDb250ZW50VHlwZSA9PSAnZGF0ZScpIHtcbiAgICAgIGNvbnN0IGFsbG93ZWRLZXlzID0gW1xuICAgICAgICAnQmFja3NwYWNlJywgJ0RlbGV0ZScsICdUYWInLCAnRXNjYXBlJywgJ0VudGVyJyxcbiAgICAgICAgJ0Fycm93TGVmdCcsICdBcnJvd1JpZ2h0JywgJ0Fycm93VXAnLCAnQXJyb3dEb3duJ1xuICAgICAgXTtcblxuICAgICAgaWYgKGFsbG93ZWRLZXlzLmluY2x1ZGVzKCRldmVudC5rZXkpIHx8ICRldmVudC5tZXRhS2V5IHx8ICRldmVudC5jdHJsS2V5KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKC9cXEQvLnRlc3QoJGV2ZW50LmtleSkgJiYgJGV2ZW50LmtleSAhPT0gJy8nKSB7XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXREYXRlSW5wdXQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IGVsID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgbGV0IHZhbHVlID0gZWwudmFsdWU7XG4gICAgbGV0IGZvcm1hdHRlZCA9ICcnO1xuXG4gICAgbGV0IGN1cnNvclBvc2l0aW9uID0gZWwuc2VsZWN0aW9uU3RhcnQgfHwgMDtcbiAgICBjb25zdCBpc0RlbGV0aW5nID0gZXZlbnQuaW5wdXRUeXBlID09PSAnZGVsZXRlQ29udGVudEJhY2t3YXJkJyB8fFxuICAgICAgZXZlbnQuaW5wdXRUeXBlID09PSAnZGVsZXRlQ29udGVudEZvcndhcmQnO1xuXG4gICAgaWYgKCh2YWx1ZS5sZW5ndGggPT09IDMgJiYgdmFsdWVbMl0gPT09ICcvJykgfHxcbiAgICAgICh2YWx1ZS5sZW5ndGggPT09IDYgJiYgdmFsdWVbNV0gPT09ICcvJykpIHtcbiAgICAgIGZvcm1hdHRlZCA9IHZhbHVlO1xuICAgIH0gZWxzZSBpZiAoL1xcRC8udGVzdCh2YWx1ZVt2YWx1ZS5sZW5ndGggLSAxXSkpIHtcbiAgICAgIGZvcm1hdHRlZCA9IHZhbHVlLnNsaWNlKDAsIC0xKTtcbiAgICAgIGN1cnNvclBvc2l0aW9uID0gTWF0aC5tYXgoMCwgY3Vyc29yUG9zaXRpb24gLSAxKTtcblxuICAgICAgaWYgKGZvcm1hdHRlZC5sZW5ndGggPT09IDEgfHwgZm9ybWF0dGVkLmxlbmd0aCA9PT0gNCkge1xuICAgICAgICBjdXJzb3JQb3NpdGlvbisrO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBudW1iZXJzID0gdmFsdWUucmVwbGFjZSgvXFwvL2csICcnKTtcblxuICAgICAgbGV0IGRheSA9IG51bWJlcnMuc2xpY2UoMCwgMik7XG4gICAgICBsZXQgbW9udGggPSBudW1iZXJzLnNsaWNlKDIsIDQpO1xuICAgICAgbGV0IHllYXIgPSBudW1iZXJzLnNsaWNlKDQsIDgpO1xuXG4gICAgICBpZiAoZGF5Lmxlbmd0aCA+IDApIGZvcm1hdHRlZCArPSBkYXk7XG4gICAgICBpZiAoZGF5Lmxlbmd0aCA9PT0gMiAmJiBtb250aC5sZW5ndGggPiAwKSBmb3JtYXR0ZWQgKz0gJy8nO1xuICAgICAgaWYgKG1vbnRoLmxlbmd0aCA+IDApIGZvcm1hdHRlZCArPSBtb250aDtcbiAgICAgIGlmIChtb250aC5sZW5ndGggPT09IDIgJiYgeWVhci5sZW5ndGggPiAwKSBmb3JtYXR0ZWQgKz0gJy8nO1xuICAgICAgaWYgKHllYXIubGVuZ3RoID4gMCkgZm9ybWF0dGVkICs9IHllYXI7XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRMZW5ndGggPSB2YWx1ZS5sZW5ndGg7XG4gICAgICBjb25zdCBuZXdMZW5ndGggPSBmb3JtYXR0ZWQubGVuZ3RoO1xuXG4gICAgICBpZiAobmV3TGVuZ3RoID4gY3VycmVudExlbmd0aCAmJiAhaXNEZWxldGluZykge1xuICAgICAgICBjdXJzb3JQb3NpdGlvbisrXG4gICAgICB9XG4gICAgfVxuXG4gICAgZWwudmFsdWUgPSBmb3JtYXR0ZWQ7XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZm9ybWF0dGVkO1xuICAgIGVsLnNldFNlbGVjdGlvblJhbmdlKGN1cnNvclBvc2l0aW9uLCBjdXJzb3JQb3NpdGlvbik7XG5cbiAgICB0aGlzLmNoYW5nZUlucHV0VmFsdWUoKTtcbiAgfVxufVxuIiwiPGxhYmVsIGNsYXNzPVwiaHItbGFiZWwgc20tYm9sZCB7e2dldFRleHRGaWVsZFN0YXR1cygpfX1cIiBbY2xhc3MuY3VzdG9tLWxhYmVsLXNpemVdPVwic2l6ZSA9PSAnc20nXCIgKm5nSWY9XCJsYWJlbFwiPlxuICB7eyBsYWJlbCB9fVxuICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkIHx8IGdldFRleHRGaWVsZFN0YXR1cygpID09ICd0eXBlZC1lcnJvcidcIj4qIDwvc3Bhbj5cbiAgPHNwYW4gW2NsYXNzLmV4dHJhLXRleHRdPVwibGFiZWxFeHRyYVRleHRcIiAqbmdJZj1cImxhYmVsRXh0cmFUZXh0XCI+e3sgbGFiZWxFeHRyYVRleHQgfX08L3NwYW4+XG48L2xhYmVsPlxuPGRpdiBjbGFzcz1cImdyYXZpdHktaW5wdXQtZmllbGQge3t0ZXh0RmllbGRUeXBlfX0ge3tzaXplfX0ge3t3aWR0aH19LXdpZHRoIHt7Z2V0VGV4dEZpZWxkU3RhdHVzKCl9fVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvbkxlZnRcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImljb25zXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpY29uUG9zaXRpb246ICdsZWZ0J31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxzcGFuIGNsYXNzPVwie3tnZXRUZXh0RmllbGRJbnB1dEZvbnRTaXplKCl9fSBwcmVmaXhcIj57eyBwcmVmaXggfX08L3NwYW4+XG4gIDxpbnB1dCBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWcgPyAndGV4dEZpZWxkXycgKyBjeXByZXNzVGFnIDogbnVsbFwiXG4gICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjdXN0b21TdGF0ZSA9PSAnZGlzYWJsZWQnID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgW2F0dHIucmVhZG9ubHldPVwiY3VzdG9tU3RhdGUgPT0gJ3JlYWRvbmx5JyA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgIFttYXhMZW5ndGhdPVwiaW5wdXRDb250ZW50VHlwZSA9PT0gJ2RhdGUnID8gMTAgOiAodmFsaWRhdGlvbnM/Lm1heExlbmd0aCB8fCAxMDApXCJcbiAgICAgICAgIFttaW5MZW5ndGhdPVwidmFsaWRhdGlvbnM/Lm1pbkxlbmd0aCA/IHZhbGlkYXRpb25zPy5taW5MZW5ndGggOiAwXCJcbiAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlcigpXCJcbiAgICAgICAgIFt0eXBlXT1cImlucHV0Q29udGVudFR5cGUgPT09ICdkYXRlJyA/ICd0ZXh0JyA6IChpbnB1dENvbnRlbnRUeXBlICE9PSAnbnVtYmVyJyA/IGlucHV0Q29udGVudFR5cGUgOiAndGV4dCcpXCJcbiAgICAgICAgIFt2YWx1ZV09XCJpbnB1dFZhbHVlXCJcblxuICAgICAgICAgKGJsdXIpPVwiZm9jdXNJbnB1dCA9IGZhbHNlXCJcbiAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlSW5wdXRWYWx1ZSgpXCJcbiAgICAgICAgIChmb2N1cyk9XCJmb2N1c0lucHV0ID0gdHJ1ZVwiXG4gICAgICAgICAoa2V5ZG93bik9XCIgb25LZXlEb3duRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAoa2V5dXApPVwiaW5wdXRDb250ZW50VHlwZSA9PT0gJ2RhdGUnID9cbiAgICAgICAgICBmb3JtYXREYXRlSW5wdXQoJGV2ZW50KSA6IGNoYW5nZUlucHV0VmFsdWUoKVwiXG5cbiAgICAgICAgIGNsYXNzPVwie3tnZXRUZXh0RmllbGRJbnB1dEZvbnRTaXplKCl9fVwiXG4gICAgICAgICAjaW5wdXRFbGVtZW50XG4gICAgICAgICAqbmdJZj1cInRleHRGaWVsZFR5cGUgPT0gJ2lucHV0J1wiPlxuXG4gIDx0ZXh0YXJlYSBbYXR0ci5kYXRhLWN5XT1cImN5cHJlc3NUYWcgPyAndGV4dEZpZWxkXycgKyBjeXByZXNzVGFnIDogbnVsbFwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJjdXN0b21TdGF0ZSA9PSAnZGlzYWJsZWQnID8gdHJ1ZSA6IG51bGxcIlxuICAgICAgICAgICAgW2F0dHIucmVhZG9ubHldPVwiY3VzdG9tU3RhdGUgPT0gJ3JlYWRvbmx5JyA/IHRydWUgOiBudWxsXCJcbiAgICAgICAgICAgIFttYXhMZW5ndGhdPVwidmFsaWRhdGlvbnM/Lm1heExlbmd0aCA/IHZhbGlkYXRpb25zPy5tYXhMZW5ndGggOiAyMDBcIlxuICAgICAgICAgICAgW21pbkxlbmd0aF09XCJ2YWxpZGF0aW9ucz8ubWluTGVuZ3RoID8gdmFsaWRhdGlvbnM/Lm1pbkxlbmd0aCA6IDBcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImdldFBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImlucHV0VmFsdWVcIlxuXG4gICAgICAgICAgICAoYmx1cik9XCJmb2N1c0lucHV0ID0gZmFsc2VcIlxuICAgICAgICAgICAgKGNoYW5nZSk9XCJjaGFuZ2VJbnB1dFZhbHVlKClcIlxuICAgICAgICAgICAgKGZvY3VzKT1cImZvY3VzSW5wdXQgPSB0cnVlXCJcbiAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bkV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgKGtleXVwKT1cImNoYW5nZUlucHV0VmFsdWUoKVwiXG5cbiAgICAgICAgICAgIGNsYXNzPVwie3tnZXRUZXh0RmllbGRJbnB1dEZvbnRTaXplKCl9fVwiXG4gICAgICAgICAgICByb3dzPVwiMVwiXG5cbiAgICAgICAgICAgICN0ZXh0QXJlYUVsZW1lbnRcblxuICAgICAgICAgICAgKm5nSWY9XCJ0ZXh0RmllbGRUeXBlID09ICd0ZXh0YXJlYSdcIj48L3RleHRhcmVhPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaWNvblJpZ2h0XCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpY29uc1wiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aWNvblBvc2l0aW9uOiAncmlnaHQnfVwiPjwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cInN1cHBvcnQtdGV4dC1jb250YWluZXIge3tzaXplfX0ge3t3aWR0aH19LXdpZHRoXCI+XG4gIDxwIGNsYXNzPVwiaHItbGFiZWwgc20tcmVndWxhciBzdXBwb3J0aW5nLXRleHQge3tnZXRUZXh0RmllbGRTdGF0dXMoKX19IHt7c2l6ZX19XCJcbiAgICAgW2NsYXNzLmN1c3RvbS1sYWJlbC1zaXplXT1cInNpemUgPT0gJ3NtJ1wiICpuZ0lmPVwic3VwcG9ydFRleHRcIj5cbiAgICA8Z3Jhdml0eS1pY29uIFtjbGFzcy5uZWdhdGl2ZV09XCJnZXRUZXh0RmllbGRTdGF0dXMoKSA9PSAndHlwZWQtZXJyb3InXCIgW2ljb25OYW1lXT1cIidxdWVzdGlvbi1jaXJjbGUnXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZ2V0VGV4dEZpZWxkU3RhdHVzKCkgPT0gJ3R5cGVkLWVycm9yJyB8fCBjaGFyYWN0ZXJMaW1pdFwiXG4gICAgICAgICAgICAgICAgICBbaWNvblNpemVdPVwiJ21kLTE2J1wiPjwvZ3Jhdml0eS1pY29uPlxuICAgIDxncmF2aXR5LWljb24gY2xhc3M9XCJwb3NpdGl2ZVwiIFtpY29uTmFtZV09XCInY2hlY2snXCIgKm5nSWY9XCIhaGFzSW52YWxpZFBhc3N3b3JkUmVxdWlyZW1lbnRzICYmIGlzUGFzc3dvcmRGaWVsZFwiXG4gICAgICAgICAgICAgICAgICBbaWNvblNpemVdPVwiJ21kLTE2J1wiPjwvZ3Jhdml0eS1pY29uPlxuICAgIDxncmF2aXR5LWljb24gW25nQ2xhc3NdPVwie25lZ2F0aXZlOiBnZXRUZXh0RmllbGRTdGF0dXMoKSA9PT0gJ3R5cGVkLWVycm9yJyxwb3NpdGl2ZTogZ2V0VGV4dEZpZWxkU3RhdHVzKCkgPT09ICd0eXBlZC1wb3NpdGl2ZSd9XCJcbiAgICAgICAgICAgICAgICAgIFtpY29uTmFtZV09XCJzdXBwb3J0VGV4dEljb25cIiAqbmdJZj1cInN1cHBvcnRUZXh0SWNvblwiIFtpY29uU2l6ZV09XCInbWQtMTYnXCI+PC9ncmF2aXR5LWljb24+XG4gICAge3sgc3VwcG9ydFRleHQgfX1cbiAgPC9wPlxuICA8cCBjbGFzcz1cImhyLWxhYmVsIHNtLXJlZ3VsYXIgY2hhcmFjdGVyLWNvdW50ZXIge3tnZXRUZXh0RmllbGRTdGF0dXMoKX19XCJcbiAgICAgKm5nSWY9XCJjaGFyYWN0ZXJDb3VudGVyXCI+e3sgaW5wdXRWYWx1ZS5sZW5ndGggfX0vMjAwPC9wPlxuPC9kaXY+XG5cblxuPGRpdiBjbGFzcz1cInBhc3N3b3JkLXJlcXVpcmVtZW50c1wiICpuZ0lmPVwicGFzc3dvcmRSZXF1aXJlbWVudHMubGVuZ3RoPiAwICYmIGhhc0ludmFsaWRQYXNzd29yZFJlcXVpcmVtZW50c1wiPlxuICA8cCBjbGFzcz1cImhyLWxhYmVsIHNtLWJvbGRcIj57eyBjdXJyZW50TGFuZyA9PSAnZW4nID8gJ1Bhc3N3b3JkIHJlcXVpcmVtZW50czonIDogJ1JlcXVpc2l0b3MgZGUgY29udHJhc2XDsWE6JyB9fTwvcD5cbiAgPHVsIGNsYXNzPVwicmVxdWlyZW1lbnRzXCI+XG4gICAgPGxpIGNsYXNzPVwiaHItbGFiZWwgc20tcmVndWxhclwiICpuZ0Zvcj1cImxldCByZXF1aXJlbWVudCBvZiBwYXNzd29yZFJlcXVpcmVtZW50c1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cInt2YWxpZDogaGFzVXNlclR5cGVkICYmIHJlcXVpcmVtZW50LmlzVmFsaWQsIGludmFsaWQ6IGhhc1VzZXJUeXBlZCAmJiAhZm9jdXNJbnB1dCAmJiAhcmVxdWlyZW1lbnQuaXNWYWxpZH1cIj5cbiAgICAgIHt7IHJlcXVpcmVtZW50LmxhYmVsIH19XG4gICAgPC9saT5cbiAgPC91bD5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2ljb25zIGxldC1pY29uUG9zaXRpb249XCJpY29uUG9zaXRpb25cIj5cbiAgPGdyYXZpdHktaWNvbiAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBoYW5kbGVJY29uQ2xpY2soaWNvblBvc2l0aW9uKVwiIGNsYXNzPVwie3tpY29uUG9zaXRpb259fVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLnBvaW50ZXJdPVwiKGljb25Qb3NpdGlvbiA9PSAnbGVmdCcgJiYgY2xpY2tPbkxlZnRJY29uKSB8fCAoaWNvblBvc2l0aW9uID09ICdyaWdodCcgJiYgY2xpY2tPblJpZ2h0SWNvbilcIlxuICAgICAgICAgICAgICAgIFtpY29uTmFtZV09XCJpY29uUG9zaXRpb24gPT0gJ2xlZnQnID8gaWNvbkxlZnQgOiBpY29uUmlnaHRcIiBbc3R5bGUuLS1pY29uLWNvbG9yXT1cImljb25Db2xvclwiXG4gICAgICAgICAgICAgICAgW2ljb25TaXplXT1cImlzTmV3SWNvbihpY29uUG9zaXRpb24pID8gJ21kLTE2JyA6IG51bGxcIiBbYXR0ci5kYXRhLWN5XT1cIid0ZXh0RmllbGRfaWNvbidcIj48L2dyYXZpdHktaWNvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -52,7 +52,7 @@ export class GravityTreeViewComponent {
52
52
  this.treeService.filterChanged(newValue.toLowerCase());
53
53
  }
54
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTreeViewComponent, deps: [{ token: i1.TreeService }], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTreeViewComponent, selector: "gravity-tree-view", inputs: { callbacks: "callbacks", nodeItems: "nodeItems", showFilterInput: "showFilterInput" }, outputs: { selectedItems: "selectedItems" }, providers: [TreeService], usesOnChanges: true, ngImport: i0, template: "<gravity-text-field [label]=\"'Change filter'\" *ngIf=\"showFilterInput\"\n (response)=\"changeFilter($event)\"></gravity-text-field>\n<tree-node [nodeState]=\"state\" *ngFor=\"let state of treeService.treeState\"></tree-node>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.GravityTextFieldComponent, selector: "gravity-text-field", inputs: ["currentLang", "customInputValue", "customState", "cypressTag", "label", "prefix", "required", "supportText", "textFieldType", "clickOnLeftIcon", "clickOnRightIcon", "iconColor", "iconLeft", "iconRight", "autocomplete", "inputContentType", "placeholder", "validations", "size", "width"], outputs: ["clickIconLeft", "clickIconRight", "response"] }, { kind: "component", type: i4.NodeComponent, selector: "tree-node", inputs: ["nodeState"] }] }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GravityTreeViewComponent, selector: "gravity-tree-view", inputs: { callbacks: "callbacks", nodeItems: "nodeItems", showFilterInput: "showFilterInput" }, outputs: { selectedItems: "selectedItems" }, providers: [TreeService], usesOnChanges: true, ngImport: i0, template: "<gravity-text-field [label]=\"'Change filter'\" *ngIf=\"showFilterInput\"\n (response)=\"changeFilter($event)\"></gravity-text-field>\n<tree-node [nodeState]=\"state\" *ngFor=\"let state of treeService.treeState\"></tree-node>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.GravityTextFieldComponent, selector: "gravity-text-field", inputs: ["currentLang", "customInputValue", "customState", "cypressTag", "label", "prefix", "required", "supportText", "textFieldType", "clickOnLeftIcon", "clickOnRightIcon", "iconColor", "iconLeft", "iconRight", "autocomplete", "inputContentType", "placeholder", "validations", "size", "width", "labelExtraText", "characterCounter", "passwordRequirements", "supportTextIcon"], outputs: ["clickIconLeft", "clickIconRight", "response"] }, { kind: "component", type: i4.NodeComponent, selector: "tree-node", inputs: ["nodeState"] }] }); }
56
56
  }
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTreeViewComponent, decorators: [{
58
58
  type: Component,