ng-zenduit 2.0.22 → 2.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/input/zendu-input.component.mjs +10 -4
- package/esm2020/lib/search-box/zendu-search-box.component.mjs +1 -1
- package/fesm2015/ng-zenduit.mjs +10 -4
- package/fesm2015/ng-zenduit.mjs.map +1 -1
- package/fesm2020/ng-zenduit.mjs +10 -4
- package/fesm2020/ng-zenduit.mjs.map +1 -1
- package/lib/input/zendu-input.component.d.ts +6 -2
- package/package.json +1 -1
|
@@ -94,6 +94,10 @@ export class ZenduInputComponent {
|
|
|
94
94
|
* Leading static text
|
|
95
95
|
*/
|
|
96
96
|
this.leadingText = '';
|
|
97
|
+
/**
|
|
98
|
+
* Trailing static text
|
|
99
|
+
*/
|
|
100
|
+
this.trailingText = '';
|
|
97
101
|
/**
|
|
98
102
|
* Input size
|
|
99
103
|
*/
|
|
@@ -445,13 +449,13 @@ export class ZenduInputComponent {
|
|
|
445
449
|
}
|
|
446
450
|
}
|
|
447
451
|
ZenduInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ZenduInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
448
|
-
ZenduInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ZenduInputComponent, selector: "zen-input", inputs: { type: "type", variant: "variant", placeholder: "placeholder", label: "label", hintText: "hintText", leadingIcon: "leadingIcon", helpIcon: "helpIcon", helpTooltip: "helpTooltip", destructive: "destructive", errorMessage: "errorMessage", disabled: "disabled", required: "required", maxLength: "maxLength", minLength: "minLength", pattern: "pattern", autocomplete: "autocomplete", name: "name", id: "id", leadingDropdownOptions: "leadingDropdownOptions", leadingDropdownValue: "leadingDropdownValue", leadingDropdownPlaceholder: "leadingDropdownPlaceholder", trailingDropdownOptions: "trailingDropdownOptions", trailingDropdownValue: "trailingDropdownValue", trailingDropdownPlaceholder: "trailingDropdownPlaceholder", leadingText: "leadingText", size: "size", showCharacterCount: "showCharacterCount", phoneMaxLength: "phoneMaxLength", phone: "phone", width: "width" }, outputs: { valueChange: "valueChange", inputFocus: "inputFocus", inputBlur: "inputBlur", inputKeydown: "inputKeydown", inputKeyup: "inputKeyup", leadingDropdownChange: "leadingDropdownChange", leadingDropdownValueChange: "leadingDropdownValueChange", trailingDropdownChange: "trailingDropdownChange", trailingDropdownValueChange: "trailingDropdownValueChange", helpIconClick: "helpIconClick", phoneChange: "phoneChange", validChange: "validChange", leadingIconClick: "leadingIconClick" }, host: { properties: { "class.zen-input-wrapper": "this.hostClass" } }, providers: [
|
|
452
|
+
ZenduInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ZenduInputComponent, selector: "zen-input", inputs: { type: "type", variant: "variant", placeholder: "placeholder", label: "label", hintText: "hintText", leadingIcon: "leadingIcon", helpIcon: "helpIcon", helpTooltip: "helpTooltip", destructive: "destructive", errorMessage: "errorMessage", disabled: "disabled", required: "required", maxLength: "maxLength", minLength: "minLength", pattern: "pattern", autocomplete: "autocomplete", name: "name", id: "id", leadingDropdownOptions: "leadingDropdownOptions", leadingDropdownValue: "leadingDropdownValue", leadingDropdownPlaceholder: "leadingDropdownPlaceholder", trailingDropdownOptions: "trailingDropdownOptions", trailingDropdownValue: "trailingDropdownValue", trailingDropdownPlaceholder: "trailingDropdownPlaceholder", leadingText: "leadingText", trailingText: "trailingText", size: "size", showCharacterCount: "showCharacterCount", phoneMaxLength: "phoneMaxLength", phone: "phone", width: "width" }, outputs: { valueChange: "valueChange", inputFocus: "inputFocus", inputBlur: "inputBlur", inputKeydown: "inputKeydown", inputKeyup: "inputKeyup", leadingDropdownChange: "leadingDropdownChange", leadingDropdownValueChange: "leadingDropdownValueChange", trailingDropdownChange: "trailingDropdownChange", trailingDropdownValueChange: "trailingDropdownValueChange", helpIconClick: "helpIconClick", phoneChange: "phoneChange", validChange: "validChange", leadingIconClick: "leadingIconClick" }, host: { properties: { "class.zen-input-wrapper": "this.hostClass" } }, providers: [
|
|
449
453
|
{
|
|
450
454
|
provide: NG_VALUE_ACCESSOR,
|
|
451
455
|
useExisting: forwardRef(() => ZenduInputComponent),
|
|
452
456
|
multi: true
|
|
453
457
|
}
|
|
454
|
-
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"zen-input-container\" [ngClass]=\"inputClasses\">\n <!-- Label -->\n <label *ngIf=\"showLabel\" \n [for]=\"id\" \n class=\"zen-input-label text text-sm text-weight-medium\"\n [ngClass]=\"{'required': required, 'disabled': disabled, 'destructive': destructive}\">\n {{ label | translate }}\n <span *ngIf=\"required\" class=\"required-indicator\">*</span>\n </label>\n \n <!-- Input wrapper -->\n <div class=\"zen-input-field-wrapper\" (click)=\"focusInput()\">\n \n <!-- Leading icon -->\n <i *ngIf=\"leadingIcon && variant === 'default'\" \n class=\"material-icons zen-input-leading-icon\"\n (click)=\"onLeadingIconClick($event)\">\n {{ leadingIcon }}\n </i>\n \n <!-- Leading dropdown -->\n <div *ngIf=\"variant === 'leading-dropdown'\" \n class=\"zen-input-leading-dropdown\">\n <button type=\"button\"\n class=\"zen-dropdown-trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggleLeadingDropdown(); $event.stopPropagation()\">\n <span class=\"dropdown-label\">{{ getLeadingDropdownLabel() }}</span>\n <i class=\"material-icons dropdown-icon\">expand_more</i>\n </button>\n \n <div class=\"zen-dropdown-menu\" \n *ngIf=\"leadingDropdownOpen\"\n [ngClass]=\"{'open': leadingDropdownOpen}\">\n <button *ngFor=\"let option of leadingDropdownOptions\"\n type=\"button\"\n class=\"zen-dropdown-option\"\n [ngClass]=\"{'selected': option.value === leadingDropdownValue}\"\n (click)=\"onLeadingDropdownChange(option.value); $event.stopPropagation()\">\n <i *ngIf=\"option.icon\" class=\"material-icons option-icon\">{{ option.icon }}</i>\n {{ option.label | translate }}\n </button>\n </div>\n </div>\n \n <!-- Leading text -->\n <span *ngIf=\"variant === 'leading-text'\" \n class=\"zen-input-leading-text text text-md text-weight-regular\">\n {{ leadingText }}\n </span>\n \n <!-- Payment card icon -->\n <div *ngIf=\"variant === 'payment'\" \n class=\"zen-payment-card-icon\">\n <i class=\"material-icons card-icon\">payment</i>\n </div>\n \n <!-- Input content based on type -->\n <ng-container *ngIf=\"type === 'tel'; else defaultInputTemplate\">\n <ng-container *ngTemplateOutlet=\"phoneInputTemplate\"></ng-container>\n </ng-container>\n \n <!-- Default input template -->\n <ng-template #defaultInputTemplate>\n <input #inputElement\n [type]=\"type\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.maxlength]=\"maxLength\"\n [attr.minlength]=\"minLength\"\n [pattern]=\"pattern\"\n [autocomplete]=\"autocomplete\"\n class=\"zen-input-field text text-md text-weight-regular\"\n [ngClass]=\"{'zen-payment-field': variant === 'payment'}\"\n (input)=\"onInputChange($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\" />\n </ng-template>\n \n <!-- Trailing elements container -->\n <div class=\"zen-input-trailing-container\">\n <!-- Character counter -->\n <span *ngIf=\"showCharacterCount && !helpIcon && variant === 'default'\" \n class=\"zen-character-count text text-sm text-weight-regular\">\n {{ characterCount }}\n </span>\n \n <!-- Help icon -->\n <button *ngIf=\"helpIcon && variant !== 'trailing-dropdown'\" \n type=\"button\"\n class=\"zen-help-icon\"\n [disabled]=\"disabled\"\n (click)=\"onHelpIconClick($event); $event.stopPropagation()\">\n <i class=\"material-icons-outlined\">help_outline</i>\n \n <!-- Help tooltip -->\n <div class=\"zen-help-tooltip\" \n *ngIf=\"showHelpTooltip\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"tooltip-content\">\n {{ helpTooltip | translate }}\n </div>\n <div class=\"tooltip-arrow\"></div>\n </div>\n </button>\n \n <!-- Trailing dropdown -->\n <div *ngIf=\"variant === 'trailing-dropdown'\" \n class=\"zen-input-trailing-dropdown\">\n <button type=\"button\"\n class=\"zen-dropdown-trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggleTrailingDropdown(); $event.stopPropagation()\">\n <span class=\"dropdown-label\">{{ getTrailingDropdownLabel() }}</span>\n <i class=\"material-icons dropdown-icon\">expand_more</i>\n </button>\n \n <div class=\"zen-dropdown-menu dropdown-menu-right\" \n *ngIf=\"trailingDropdownOpen\"\n [ngClass]=\"{'open': trailingDropdownOpen}\">\n <button *ngFor=\"let option of trailingDropdownOptions\"\n type=\"button\"\n class=\"zen-dropdown-option\"\n [ngClass]=\"{'selected': option.value === trailingDropdownValue}\"\n (click)=\"onTrailingDropdownChange(option.value); $event.stopPropagation()\">\n <i *ngIf=\"option.icon\" class=\"material-icons option-icon\">{{ option.icon }}</i>\n {{ option.label | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Hint text / Error message -->\n <div *ngIf=\"showHintText\" \n class=\"zen-input-hint text text-sm text-weight-regular\"\n [ngClass]=\"{'destructive': destructive}\">\n <i *ngIf=\"destructive\" class=\"material-icons-outlined hint-icon\">error_outline</i>\n {{ displayHintText | translate }}\n </div>\n \n <!-- Phone Country Dropdown (for tel type) -->\n <div *ngIf=\"type === 'tel' && isPhoneDropdownExpanded\" \n class=\"zen-phone-dropdown-menu\">\n <div class=\"zen-phone-dropdown-list\">\n <!-- Countries List -->\n <button type=\"button\"\n class=\"zen-phone-dropdown-item\"\n *ngFor=\"let country of countryList\"\n [ngClass]=\"{'active': selectedCountry.countryName === country.countryName}\"\n (click)=\"onCountryChanged(country)\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"country.flag\"\n [alt]=\"country.countryName\">\n <span class=\"zen-phone-country-name\">{{ country.countryName | translate }}</span>\n <span class=\"zen-phone-country-code\">{{ country.countryCallingCode }}</span>\n </button>\n\n <!-- Custom Country -->\n <button type=\"button\"\n class=\"zen-phone-dropdown-item\"\n [ngClass]=\"{'active': selectedCountry.countryName === customCountry.countryName}\"\n (click)=\"onCountryChanged(customCountry)\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"customCountry.flag\"\n [alt]=\"customCountry.countryName\">\n <span class=\"zen-phone-country-name\">{{ customCountry.countryName | translate }}</span>\n <span class=\"zen-phone-country-code\">{{ customCountry.countryCallingCode }}</span>\n </button>\n </div>\n </div>\n</div>\n\n<!-- Phone Input Template -->\n<ng-template #phoneInputTemplate>\n <!-- Phone country selector -->\n <div class=\"zen-phone-country-select\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"selectedCountry.flag\"\n [alt]=\"selectedCountry.countryName\">\n <span class=\"zen-phone-code\">{{ selectedCountry.countryCallingCode }}</span>\n <button type=\"button\"\n class=\"zen-phone-dropdown-btn\"\n [disabled]=\"disabled\"\n (click)=\"togglePhoneDropdown(); $event.stopPropagation()\">\n <i class=\"material-icons zen-phone-expand-icon\"\n [ngClass]=\"{'active': isPhoneDropdownExpanded}\">expand_more</i>\n </button>\n </div>\n \n <!-- Phone input field -->\n <input #inputElement\n type=\"text\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [value]=\"phoneText\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.maxlength]=\"phoneMaxLength\"\n [attr.minlength]=\"minLength\"\n [autocomplete]=\"autocomplete\"\n class=\"zen-input-field text text-md text-weight-regular\"\n (input)=\"onInputChange($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\" />\n</ng-template>\n\n<!-- Click outside handler for dropdowns -->\n<div *ngIf=\"leadingDropdownOpen || trailingDropdownOpen || isPhoneDropdownExpanded\" \n class=\"zen-dropdown-backdrop\" \n (click)=\"closeDropdowns(); hidePhoneDropdown()\"></div>", styles: [".text{margin:0;padding:0;color:#101828}.text-display-2xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:72px;line-height:90px;letter-spacing:-.02em}.text-display-xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:60px;line-height:72px;letter-spacing:-.02em}.text-display-lg{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:48px;line-height:60px;letter-spacing:-.02em}.text-display-md{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:36px;line-height:44px;letter-spacing:-.02em}.text-display-sm{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:30px;line-height:38px;letter-spacing:0}.text-display-xs{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:24px;line-height:32px;letter-spacing:0}.text-xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:20px;line-height:30px;letter-spacing:0}.text-lg{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:28px;letter-spacing:0}.text-md{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:24px;letter-spacing:0}.text-sm{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:20px;letter-spacing:0}.text-xs{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;line-height:18px;letter-spacing:0}.text-weight-regular{font-weight:400;font-style:normal}.text-weight-medium{font-weight:500;font-style:normal}.text-weight-semibold{font-weight:600;font-style:normal}.text-weight-bold{font-weight:700;font-style:normal}@media (max-width: 768px){.text-display-2xl{font-size:48px;line-height:56px}.text-display-xl{font-size:40px;line-height:48px}.text-display-lg{font-size:32px;line-height:40px}}:host{display:block;width:100%}.zen-input-container{display:flex;flex-direction:column;gap:6px;width:100%;position:relative}.zen-input-container .zen-input-label{color:#344054;display:flex;align-items:center;gap:4px}.zen-input-container .zen-input-label .required-indicator{color:#f04438}.zen-input-container .zen-input-label.disabled{color:#d0d5dd}.zen-input-container .zen-input-label.destructive{color:#344054}.zen-input-container .zen-input-field-wrapper{display:flex;align-items:center;background:#FFFFFF;border:1px solid #D0D5DD;border-radius:8px;padding:10px 14px;gap:8px;min-height:44px;box-sizing:border-box;transition:all .2s ease;cursor:text;position:relative;box-shadow:0 1px 2px #1018280d}.zen-input-container .zen-input-field-wrapper:hover:not(.disabled){border-color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-leading-icon{font-size:20px;color:#98a2b3;flex-shrink:0;cursor:pointer;transition:color .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-leading-icon:hover{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown{position:relative;flex-shrink:0;margin-right:4px}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger{display:flex;align-items:center;gap:4px;background:transparent;border:none;padding:0;cursor:pointer;font-family:Inter,sans-serif;font-size:16px;color:#344054}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger .dropdown-icon{font-size:20px;color:#98a2b3;transition:transform .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger:hover:not(:disabled) .dropdown-icon{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-leading-text{color:#667085;flex-shrink:0;padding-right:4px}.zen-input-container .zen-input-field-wrapper .zen-input-field{flex:1;border:none;outline:none;background:transparent;color:#101828;padding:0;min-width:0}.zen-input-container .zen-input-field-wrapper .zen-input-field::placeholder{color:#667085}.zen-input-container .zen-input-field-wrapper .zen-input-field:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-field:disabled::placeholder{color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container{display:flex;align-items:center;gap:8px;flex-shrink:0}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-character-count{color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon{position:relative;display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;cursor:pointer}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon i{font-size:16px;color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:hover:not(:disabled) i{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:disabled{cursor:not-allowed}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:disabled i{color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip{position:absolute;bottom:calc(100% + 8px);right:50%;transform:translate(50%);z-index:1000;white-space:nowrap}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip .tooltip-content{background:#101828;color:#fff;padding:8px 12px;border-radius:8px;font-family:Inter,sans-serif;font-size:12px;line-height:18px;box-shadow:0 12px 16px #10182814,0 4px 6px #10182808;max-width:200px;white-space:normal}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip .tooltip-arrow{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #101828}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown{position:relative}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger{display:flex;align-items:center;gap:4px;background:transparent;border:none;border-left:1px solid #D0D5DD;padding:0 0 0 8px;margin-left:4px;cursor:pointer;font-family:Inter,sans-serif;font-size:16px;color:#344054}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger .dropdown-icon{font-size:20px;color:#98a2b3;transition:transform .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger:hover:not(:disabled) .dropdown-icon{color:#475467}.zen-input-container .zen-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:#FFFFFF;border:1px solid #EAECF0;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;min-width:200px;max-height:240px;overflow-y:auto;z-index:100;padding:4px}.zen-input-container .zen-dropdown-menu.dropdown-menu-right{left:auto;right:0}.zen-input-container .zen-dropdown-menu .zen-dropdown-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;font-family:Inter,sans-serif;font-size:14px;line-height:20px;color:#344054;text-align:left;cursor:pointer;transition:background-color .2s ease}.zen-input-container .zen-dropdown-menu .zen-dropdown-option .option-icon{font-size:20px;color:#98a2b3}.zen-input-container .zen-dropdown-menu .zen-dropdown-option:hover{background:#F9FAFB}.zen-input-container .zen-dropdown-menu .zen-dropdown-option.selected{background:#F1F7FE;color:#105494;font-weight:500}.zen-input-container .zen-dropdown-menu .zen-dropdown-option.selected .option-icon{color:#136ab6}.zen-input-container .zen-input-hint{display:flex;align-items:center;gap:4px;color:#667085}.zen-input-container .zen-input-hint .hint-icon{font-size:16px;color:#f04438}.zen-input-container .zen-input-hint.destructive{color:#f04438}.zen-input-container.focused .zen-input-field-wrapper{border-color:#88c1f1;box-shadow:0 1px 2px #1018280d,0 0 0 4px #e3eefb}.zen-input-container.focused .zen-input-field-wrapper.destructive{border-color:#fda29b;box-shadow:0 1px 2px #1018280d,0 0 0 4px #fee4e2}.zen-input-container.filled .zen-input-field-wrapper{background:#FFFFFF}.zen-input-container.disabled .zen-input-field-wrapper{background:#F9FAFB;border-color:#d0d5dd;cursor:not-allowed}.zen-input-container.disabled .zen-input-field-wrapper:hover{border-color:#d0d5dd}.zen-input-container.destructive .zen-input-field-wrapper{border-color:#fda29b}.zen-input-container.destructive .zen-input-field-wrapper:hover:not(.disabled){border-color:#f97066}.zen-input-container.size-sm .zen-input-label{font-size:12px;line-height:18px}.zen-input-container.size-sm .zen-input-field-wrapper{padding:8px 12px;min-height:36px;box-sizing:border-box}.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-field,.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-leading-text{font-size:14px;line-height:20px}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-input-field{font-family:Courier New,Courier,monospace}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon{display:flex;align-items:center;justify-content:center;background:#FFFFFF;border:1px solid #F2F4F7;border-radius:4px;width:34px;height:24px;flex-shrink:0}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon .card-icon{font-size:16px;color:#4285f4;line-height:1}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon zen-icon{font-size:16px;color:#98a2b3;line-height:1}.zen-input-container.variant-input-field .zen-input-field-wrapper{padding:12px 14px;min-height:48px}.zen-phone-country-select{display:flex;align-items:center;gap:6px;flex-shrink:0;padding-right:8px;border-right:1px solid #D0D5DD;margin-right:8px;position:relative}.zen-phone-country-select .zen-phone-country-flag{width:20px;height:15px;object-fit:cover;border-radius:2px}.zen-phone-country-select .zen-phone-code{color:#344054;font-family:Inter,sans-serif;font-size:14px;font-weight:500;min-width:max-content}.zen-phone-country-select .zen-phone-dropdown-btn{background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.zen-phone-country-select .zen-phone-dropdown-btn:disabled{cursor:not-allowed;opacity:.5}.zen-phone-country-select .zen-phone-dropdown-btn .zen-phone-expand-icon{font-size:16px;color:#98a2b3;transition:transform .2s ease,color .2s ease}.zen-phone-country-select .zen-phone-dropdown-btn .zen-phone-expand-icon.active{transform:rotate(180deg)}.zen-phone-country-select .zen-phone-dropdown-btn:hover:not(:disabled) .zen-phone-expand-icon{color:#475467}.zen-phone-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:#FFFFFF;border:1px solid #EAECF0;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;min-width:280px;max-height:240px;overflow-y:auto;z-index:100}.zen-phone-dropdown-menu .zen-phone-dropdown-list{padding:4px}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s ease;font-family:Inter,sans-serif;font-size:14px;text-align:left;color:#344054}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-flag{width:20px;height:15px;object-fit:cover;border-radius:2px;flex-shrink:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-name{flex:1;min-width:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-code{color:#667085;font-size:13px;flex-shrink:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item:hover{background:#F9FAFB}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item.active{background:#F1F7FE;color:#105494}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item.active .zen-phone-country-code{color:#136ab6}.zen-payment-field{font-family:Courier New,Courier,monospace!important;letter-spacing:1px}.zen-dropdown-backdrop{position:fixed;inset:0;z-index:99;background:transparent}\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: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
458
|
+
], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"zen-input-container\" [ngClass]=\"inputClasses\">\n <!-- Label -->\n <label *ngIf=\"showLabel\" \n [for]=\"id\" \n class=\"zen-input-label text text-sm text-weight-medium\"\n [ngClass]=\"{'required': required, 'disabled': disabled, 'destructive': destructive}\">\n {{ label | translate }}\n <span *ngIf=\"required\" class=\"required-indicator\">*</span>\n </label>\n \n <!-- Input wrapper -->\n <div class=\"zen-input-field-wrapper\" (click)=\"focusInput()\">\n \n <!-- Leading icon -->\n <i *ngIf=\"leadingIcon && variant === 'default'\" \n class=\"material-icons zen-input-leading-icon\"\n (click)=\"onLeadingIconClick($event)\">\n {{ leadingIcon }}\n </i>\n \n <!-- Leading dropdown -->\n <div *ngIf=\"variant === 'leading-dropdown'\" \n class=\"zen-input-leading-dropdown\">\n <button type=\"button\"\n class=\"zen-dropdown-trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggleLeadingDropdown(); $event.stopPropagation()\">\n <span class=\"dropdown-label\">{{ getLeadingDropdownLabel() }}</span>\n <i class=\"material-icons dropdown-icon\">expand_more</i>\n </button>\n \n <div class=\"zen-dropdown-menu\" \n *ngIf=\"leadingDropdownOpen\"\n [ngClass]=\"{'open': leadingDropdownOpen}\">\n <button *ngFor=\"let option of leadingDropdownOptions\"\n type=\"button\"\n class=\"zen-dropdown-option\"\n [ngClass]=\"{'selected': option.value === leadingDropdownValue}\"\n (click)=\"onLeadingDropdownChange(option.value); $event.stopPropagation()\">\n <i *ngIf=\"option.icon\" class=\"material-icons option-icon\">{{ option.icon }}</i>\n {{ option.label | translate }}\n </button>\n </div>\n </div>\n \n <!-- Leading text -->\n <span *ngIf=\"variant === 'leading-text'\" \n class=\"zen-input-leading-text text text-md text-weight-regular\">\n {{ leadingText }}\n </span>\n \n <!-- Payment card icon -->\n <div *ngIf=\"variant === 'payment'\" \n class=\"zen-payment-card-icon\">\n <i class=\"material-icons card-icon\">payment</i>\n </div>\n \n <!-- Input content based on type -->\n <ng-container *ngIf=\"type === 'tel'; else defaultInputTemplate\">\n <ng-container *ngTemplateOutlet=\"phoneInputTemplate\"></ng-container>\n </ng-container>\n \n <!-- Default input template -->\n <ng-template #defaultInputTemplate>\n <input #inputElement\n [type]=\"type\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.maxlength]=\"maxLength\"\n [attr.minlength]=\"minLength\"\n [pattern]=\"pattern\"\n [autocomplete]=\"autocomplete\"\n class=\"zen-input-field text text-md text-weight-regular\"\n [ngClass]=\"{'zen-payment-field': variant === 'payment'}\"\n (input)=\"onInputChange($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\" />\n </ng-template>\n \n <!-- Trailing elements container -->\n <div class=\"zen-input-trailing-container\">\n <!-- Trailing text -->\n <span *ngIf=\"variant === 'trailing-text'\"\n class=\"zen-input-trailing-text text text-md text-weight-regular\">\n {{ trailingText }}\n </span>\n\n <!-- Character counter -->\n <span *ngIf=\"showCharacterCount && !helpIcon && variant === 'default'\"\n class=\"zen-character-count text text-sm text-weight-regular\">\n {{ characterCount }}\n </span>\n \n <!-- Help icon -->\n <button *ngIf=\"helpIcon && variant !== 'trailing-dropdown'\" \n type=\"button\"\n class=\"zen-help-icon\"\n [disabled]=\"disabled\"\n (click)=\"onHelpIconClick($event); $event.stopPropagation()\">\n <i class=\"material-icons-outlined\">help_outline</i>\n \n <!-- Help tooltip -->\n <div class=\"zen-help-tooltip\" \n *ngIf=\"showHelpTooltip\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"tooltip-content\">\n {{ helpTooltip | translate }}\n </div>\n <div class=\"tooltip-arrow\"></div>\n </div>\n </button>\n \n <!-- Trailing dropdown -->\n <div *ngIf=\"variant === 'trailing-dropdown'\" \n class=\"zen-input-trailing-dropdown\">\n <button type=\"button\"\n class=\"zen-dropdown-trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggleTrailingDropdown(); $event.stopPropagation()\">\n <span class=\"dropdown-label\">{{ getTrailingDropdownLabel() }}</span>\n <i class=\"material-icons dropdown-icon\">expand_more</i>\n </button>\n \n <div class=\"zen-dropdown-menu dropdown-menu-right\" \n *ngIf=\"trailingDropdownOpen\"\n [ngClass]=\"{'open': trailingDropdownOpen}\">\n <button *ngFor=\"let option of trailingDropdownOptions\"\n type=\"button\"\n class=\"zen-dropdown-option\"\n [ngClass]=\"{'selected': option.value === trailingDropdownValue}\"\n (click)=\"onTrailingDropdownChange(option.value); $event.stopPropagation()\">\n <i *ngIf=\"option.icon\" class=\"material-icons option-icon\">{{ option.icon }}</i>\n {{ option.label | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Hint text / Error message -->\n <div *ngIf=\"showHintText\" \n class=\"zen-input-hint text text-sm text-weight-regular\"\n [ngClass]=\"{'destructive': destructive}\">\n <i *ngIf=\"destructive\" class=\"material-icons-outlined hint-icon\">error_outline</i>\n {{ displayHintText | translate }}\n </div>\n \n <!-- Phone Country Dropdown (for tel type) -->\n <div *ngIf=\"type === 'tel' && isPhoneDropdownExpanded\" \n class=\"zen-phone-dropdown-menu\">\n <div class=\"zen-phone-dropdown-list\">\n <!-- Countries List -->\n <button type=\"button\"\n class=\"zen-phone-dropdown-item\"\n *ngFor=\"let country of countryList\"\n [ngClass]=\"{'active': selectedCountry.countryName === country.countryName}\"\n (click)=\"onCountryChanged(country)\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"country.flag\"\n [alt]=\"country.countryName\">\n <span class=\"zen-phone-country-name\">{{ country.countryName | translate }}</span>\n <span class=\"zen-phone-country-code\">{{ country.countryCallingCode }}</span>\n </button>\n\n <!-- Custom Country -->\n <button type=\"button\"\n class=\"zen-phone-dropdown-item\"\n [ngClass]=\"{'active': selectedCountry.countryName === customCountry.countryName}\"\n (click)=\"onCountryChanged(customCountry)\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"customCountry.flag\"\n [alt]=\"customCountry.countryName\">\n <span class=\"zen-phone-country-name\">{{ customCountry.countryName | translate }}</span>\n <span class=\"zen-phone-country-code\">{{ customCountry.countryCallingCode }}</span>\n </button>\n </div>\n </div>\n</div>\n\n<!-- Phone Input Template -->\n<ng-template #phoneInputTemplate>\n <!-- Phone country selector -->\n <div class=\"zen-phone-country-select\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"selectedCountry.flag\"\n [alt]=\"selectedCountry.countryName\">\n <span class=\"zen-phone-code\">{{ selectedCountry.countryCallingCode }}</span>\n <button type=\"button\"\n class=\"zen-phone-dropdown-btn\"\n [disabled]=\"disabled\"\n (click)=\"togglePhoneDropdown(); $event.stopPropagation()\">\n <i class=\"material-icons zen-phone-expand-icon\"\n [ngClass]=\"{'active': isPhoneDropdownExpanded}\">expand_more</i>\n </button>\n </div>\n \n <!-- Phone input field -->\n <input #inputElement\n type=\"text\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [value]=\"phoneText\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.maxlength]=\"phoneMaxLength\"\n [attr.minlength]=\"minLength\"\n [autocomplete]=\"autocomplete\"\n class=\"zen-input-field text text-md text-weight-regular\"\n (input)=\"onInputChange($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\" />\n</ng-template>\n\n<!-- Click outside handler for dropdowns -->\n<div *ngIf=\"leadingDropdownOpen || trailingDropdownOpen || isPhoneDropdownExpanded\" \n class=\"zen-dropdown-backdrop\" \n (click)=\"closeDropdowns(); hidePhoneDropdown()\"></div>", styles: [".text{margin:0;padding:0;color:#101828}.text-display-2xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:72px;line-height:90px;letter-spacing:-.02em}.text-display-xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:60px;line-height:72px;letter-spacing:-.02em}.text-display-lg{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:48px;line-height:60px;letter-spacing:-.02em}.text-display-md{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:36px;line-height:44px;letter-spacing:-.02em}.text-display-sm{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:30px;line-height:38px;letter-spacing:0}.text-display-xs{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:24px;line-height:32px;letter-spacing:0}.text-xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:20px;line-height:30px;letter-spacing:0}.text-lg{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:28px;letter-spacing:0}.text-md{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:24px;letter-spacing:0}.text-sm{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:20px;letter-spacing:0}.text-xs{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;line-height:18px;letter-spacing:0}.text-weight-regular{font-weight:400;font-style:normal}.text-weight-medium{font-weight:500;font-style:normal}.text-weight-semibold{font-weight:600;font-style:normal}.text-weight-bold{font-weight:700;font-style:normal}@media (max-width: 768px){.text-display-2xl{font-size:48px;line-height:56px}.text-display-xl{font-size:40px;line-height:48px}.text-display-lg{font-size:32px;line-height:40px}}:host{display:block;width:100%}.zen-input-container{display:flex;flex-direction:column;gap:6px;width:100%;position:relative}.zen-input-container .zen-input-label{color:#344054;display:flex;align-items:center;gap:4px}.zen-input-container .zen-input-label .required-indicator{color:#f04438}.zen-input-container .zen-input-label.disabled{color:#d0d5dd}.zen-input-container .zen-input-label.destructive{color:#344054}.zen-input-container .zen-input-field-wrapper{display:flex;align-items:center;background:#FFFFFF;border:1px solid #D0D5DD;border-radius:8px;padding:10px 14px;gap:8px;min-height:44px;box-sizing:border-box;transition:all .2s ease;cursor:text;position:relative;box-shadow:0 1px 2px #1018280d}.zen-input-container .zen-input-field-wrapper:hover:not(.disabled){border-color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-leading-icon{font-size:20px;color:#98a2b3;flex-shrink:0;cursor:pointer;transition:color .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-leading-icon:hover{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown{position:relative;flex-shrink:0;margin-right:4px}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger{display:flex;align-items:center;gap:4px;background:transparent;border:none;padding:0;cursor:pointer;font-family:Inter,sans-serif;font-size:16px;color:#344054}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger .dropdown-icon{font-size:20px;color:#98a2b3;transition:transform .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger:hover:not(:disabled) .dropdown-icon{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-leading-text{color:#667085;flex-shrink:0;padding-right:4px}.zen-input-container .zen-input-field-wrapper .zen-input-field{flex:1;border:none;outline:none;background:transparent;color:#101828;padding:0;min-width:0}.zen-input-container .zen-input-field-wrapper .zen-input-field::placeholder{color:#667085}.zen-input-container .zen-input-field-wrapper .zen-input-field:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-field:disabled::placeholder{color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container{display:flex;align-items:center;gap:8px;flex-shrink:0}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-text{color:#667085;flex-shrink:0;padding-left:4px}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-character-count{color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon{position:relative;display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;cursor:pointer}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon i{font-size:16px;color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:hover:not(:disabled) i{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:disabled{cursor:not-allowed}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:disabled i{color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip{position:absolute;bottom:calc(100% + 8px);right:50%;transform:translate(50%);z-index:1000;white-space:nowrap}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip .tooltip-content{background:#101828;color:#fff;padding:8px 12px;border-radius:8px;font-family:Inter,sans-serif;font-size:12px;line-height:18px;box-shadow:0 12px 16px #10182814,0 4px 6px #10182808;max-width:200px;white-space:normal}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip .tooltip-arrow{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #101828}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown{position:relative}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger{display:flex;align-items:center;gap:4px;background:transparent;border:none;border-left:1px solid #D0D5DD;padding:0 0 0 8px;margin-left:4px;cursor:pointer;font-family:Inter,sans-serif;font-size:16px;color:#344054}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger .dropdown-icon{font-size:20px;color:#98a2b3;transition:transform .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger:hover:not(:disabled) .dropdown-icon{color:#475467}.zen-input-container .zen-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:#FFFFFF;border:1px solid #EAECF0;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;min-width:200px;max-height:240px;overflow-y:auto;z-index:100;padding:4px}.zen-input-container .zen-dropdown-menu.dropdown-menu-right{left:auto;right:0}.zen-input-container .zen-dropdown-menu .zen-dropdown-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;font-family:Inter,sans-serif;font-size:14px;line-height:20px;color:#344054;text-align:left;cursor:pointer;transition:background-color .2s ease}.zen-input-container .zen-dropdown-menu .zen-dropdown-option .option-icon{font-size:20px;color:#98a2b3}.zen-input-container .zen-dropdown-menu .zen-dropdown-option:hover{background:#F9FAFB}.zen-input-container .zen-dropdown-menu .zen-dropdown-option.selected{background:#F1F7FE;color:#105494;font-weight:500}.zen-input-container .zen-dropdown-menu .zen-dropdown-option.selected .option-icon{color:#136ab6}.zen-input-container .zen-input-hint{display:flex;align-items:center;gap:4px;color:#667085}.zen-input-container .zen-input-hint .hint-icon{font-size:16px;color:#f04438}.zen-input-container .zen-input-hint.destructive{color:#f04438}.zen-input-container.focused .zen-input-field-wrapper{border-color:#88c1f1;box-shadow:0 1px 2px #1018280d,0 0 0 4px #e3eefb}.zen-input-container.focused .zen-input-field-wrapper.destructive{border-color:#fda29b;box-shadow:0 1px 2px #1018280d,0 0 0 4px #fee4e2}.zen-input-container.filled .zen-input-field-wrapper{background:#FFFFFF}.zen-input-container.disabled .zen-input-field-wrapper{background:#F9FAFB;border-color:#d0d5dd;cursor:not-allowed}.zen-input-container.disabled .zen-input-field-wrapper:hover{border-color:#d0d5dd}.zen-input-container.destructive .zen-input-field-wrapper{border-color:#fda29b}.zen-input-container.destructive .zen-input-field-wrapper:hover:not(.disabled){border-color:#f97066}.zen-input-container.size-sm .zen-input-label{font-size:12px;line-height:18px}.zen-input-container.size-sm .zen-input-field-wrapper{padding:8px 12px;min-height:36px;box-sizing:border-box}.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-field,.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-leading-text,.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-trailing-text{font-size:14px;line-height:20px}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-input-field{font-family:Courier New,Courier,monospace}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon{display:flex;align-items:center;justify-content:center;background:#FFFFFF;border:1px solid #F2F4F7;border-radius:4px;width:34px;height:24px;flex-shrink:0}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon .card-icon{font-size:16px;color:#4285f4;line-height:1}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon zen-icon{font-size:16px;color:#98a2b3;line-height:1}.zen-input-container.variant-input-field .zen-input-field-wrapper{padding:12px 14px;min-height:48px}.zen-phone-country-select{display:flex;align-items:center;gap:6px;flex-shrink:0;padding-right:8px;border-right:1px solid #D0D5DD;margin-right:8px;position:relative}.zen-phone-country-select .zen-phone-country-flag{width:20px;height:15px;object-fit:cover;border-radius:2px}.zen-phone-country-select .zen-phone-code{color:#344054;font-family:Inter,sans-serif;font-size:14px;font-weight:500;min-width:max-content}.zen-phone-country-select .zen-phone-dropdown-btn{background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.zen-phone-country-select .zen-phone-dropdown-btn:disabled{cursor:not-allowed;opacity:.5}.zen-phone-country-select .zen-phone-dropdown-btn .zen-phone-expand-icon{font-size:16px;color:#98a2b3;transition:transform .2s ease,color .2s ease}.zen-phone-country-select .zen-phone-dropdown-btn .zen-phone-expand-icon.active{transform:rotate(180deg)}.zen-phone-country-select .zen-phone-dropdown-btn:hover:not(:disabled) .zen-phone-expand-icon{color:#475467}.zen-phone-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:#FFFFFF;border:1px solid #EAECF0;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;min-width:280px;max-height:240px;overflow-y:auto;z-index:100}.zen-phone-dropdown-menu .zen-phone-dropdown-list{padding:4px}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s ease;font-family:Inter,sans-serif;font-size:14px;text-align:left;color:#344054}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-flag{width:20px;height:15px;object-fit:cover;border-radius:2px;flex-shrink:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-name{flex:1;min-width:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-code{color:#667085;font-size:13px;flex-shrink:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item:hover{background:#F9FAFB}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item.active{background:#F1F7FE;color:#105494}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item.active .zen-phone-country-code{color:#136ab6}.zen-payment-field{font-family:Courier New,Courier,monospace!important;letter-spacing:1px}.zen-dropdown-backdrop{position:fixed;inset:0;z-index:99;background:transparent}\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: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
455
459
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ZenduInputComponent, decorators: [{
|
|
456
460
|
type: Component,
|
|
457
461
|
args: [{ selector: 'zen-input', providers: [
|
|
@@ -460,7 +464,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
460
464
|
useExisting: forwardRef(() => ZenduInputComponent),
|
|
461
465
|
multi: true
|
|
462
466
|
}
|
|
463
|
-
], template: "<div class=\"zen-input-container\" [ngClass]=\"inputClasses\">\n <!-- Label -->\n <label *ngIf=\"showLabel\" \n [for]=\"id\" \n class=\"zen-input-label text text-sm text-weight-medium\"\n [ngClass]=\"{'required': required, 'disabled': disabled, 'destructive': destructive}\">\n {{ label | translate }}\n <span *ngIf=\"required\" class=\"required-indicator\">*</span>\n </label>\n \n <!-- Input wrapper -->\n <div class=\"zen-input-field-wrapper\" (click)=\"focusInput()\">\n \n <!-- Leading icon -->\n <i *ngIf=\"leadingIcon && variant === 'default'\" \n class=\"material-icons zen-input-leading-icon\"\n (click)=\"onLeadingIconClick($event)\">\n {{ leadingIcon }}\n </i>\n \n <!-- Leading dropdown -->\n <div *ngIf=\"variant === 'leading-dropdown'\" \n class=\"zen-input-leading-dropdown\">\n <button type=\"button\"\n class=\"zen-dropdown-trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggleLeadingDropdown(); $event.stopPropagation()\">\n <span class=\"dropdown-label\">{{ getLeadingDropdownLabel() }}</span>\n <i class=\"material-icons dropdown-icon\">expand_more</i>\n </button>\n \n <div class=\"zen-dropdown-menu\" \n *ngIf=\"leadingDropdownOpen\"\n [ngClass]=\"{'open': leadingDropdownOpen}\">\n <button *ngFor=\"let option of leadingDropdownOptions\"\n type=\"button\"\n class=\"zen-dropdown-option\"\n [ngClass]=\"{'selected': option.value === leadingDropdownValue}\"\n (click)=\"onLeadingDropdownChange(option.value); $event.stopPropagation()\">\n <i *ngIf=\"option.icon\" class=\"material-icons option-icon\">{{ option.icon }}</i>\n {{ option.label | translate }}\n </button>\n </div>\n </div>\n \n <!-- Leading text -->\n <span *ngIf=\"variant === 'leading-text'\" \n class=\"zen-input-leading-text text text-md text-weight-regular\">\n {{ leadingText }}\n </span>\n \n <!-- Payment card icon -->\n <div *ngIf=\"variant === 'payment'\" \n class=\"zen-payment-card-icon\">\n <i class=\"material-icons card-icon\">payment</i>\n </div>\n \n <!-- Input content based on type -->\n <ng-container *ngIf=\"type === 'tel'; else defaultInputTemplate\">\n <ng-container *ngTemplateOutlet=\"phoneInputTemplate\"></ng-container>\n </ng-container>\n \n <!-- Default input template -->\n <ng-template #defaultInputTemplate>\n <input #inputElement\n [type]=\"type\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.maxlength]=\"maxLength\"\n [attr.minlength]=\"minLength\"\n [pattern]=\"pattern\"\n [autocomplete]=\"autocomplete\"\n class=\"zen-input-field text text-md text-weight-regular\"\n [ngClass]=\"{'zen-payment-field': variant === 'payment'}\"\n (input)=\"onInputChange($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\" />\n </ng-template>\n \n <!-- Trailing elements container -->\n <div class=\"zen-input-trailing-container\">\n <!-- Character counter -->\n <span *ngIf=\"showCharacterCount && !helpIcon && variant === 'default'\" \n class=\"zen-character-count text text-sm text-weight-regular\">\n {{ characterCount }}\n </span>\n \n <!-- Help icon -->\n <button *ngIf=\"helpIcon && variant !== 'trailing-dropdown'\" \n type=\"button\"\n class=\"zen-help-icon\"\n [disabled]=\"disabled\"\n (click)=\"onHelpIconClick($event); $event.stopPropagation()\">\n <i class=\"material-icons-outlined\">help_outline</i>\n \n <!-- Help tooltip -->\n <div class=\"zen-help-tooltip\" \n *ngIf=\"showHelpTooltip\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"tooltip-content\">\n {{ helpTooltip | translate }}\n </div>\n <div class=\"tooltip-arrow\"></div>\n </div>\n </button>\n \n <!-- Trailing dropdown -->\n <div *ngIf=\"variant === 'trailing-dropdown'\" \n class=\"zen-input-trailing-dropdown\">\n <button type=\"button\"\n class=\"zen-dropdown-trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggleTrailingDropdown(); $event.stopPropagation()\">\n <span class=\"dropdown-label\">{{ getTrailingDropdownLabel() }}</span>\n <i class=\"material-icons dropdown-icon\">expand_more</i>\n </button>\n \n <div class=\"zen-dropdown-menu dropdown-menu-right\" \n *ngIf=\"trailingDropdownOpen\"\n [ngClass]=\"{'open': trailingDropdownOpen}\">\n <button *ngFor=\"let option of trailingDropdownOptions\"\n type=\"button\"\n class=\"zen-dropdown-option\"\n [ngClass]=\"{'selected': option.value === trailingDropdownValue}\"\n (click)=\"onTrailingDropdownChange(option.value); $event.stopPropagation()\">\n <i *ngIf=\"option.icon\" class=\"material-icons option-icon\">{{ option.icon }}</i>\n {{ option.label | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Hint text / Error message -->\n <div *ngIf=\"showHintText\" \n class=\"zen-input-hint text text-sm text-weight-regular\"\n [ngClass]=\"{'destructive': destructive}\">\n <i *ngIf=\"destructive\" class=\"material-icons-outlined hint-icon\">error_outline</i>\n {{ displayHintText | translate }}\n </div>\n \n <!-- Phone Country Dropdown (for tel type) -->\n <div *ngIf=\"type === 'tel' && isPhoneDropdownExpanded\" \n class=\"zen-phone-dropdown-menu\">\n <div class=\"zen-phone-dropdown-list\">\n <!-- Countries List -->\n <button type=\"button\"\n class=\"zen-phone-dropdown-item\"\n *ngFor=\"let country of countryList\"\n [ngClass]=\"{'active': selectedCountry.countryName === country.countryName}\"\n (click)=\"onCountryChanged(country)\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"country.flag\"\n [alt]=\"country.countryName\">\n <span class=\"zen-phone-country-name\">{{ country.countryName | translate }}</span>\n <span class=\"zen-phone-country-code\">{{ country.countryCallingCode }}</span>\n </button>\n\n <!-- Custom Country -->\n <button type=\"button\"\n class=\"zen-phone-dropdown-item\"\n [ngClass]=\"{'active': selectedCountry.countryName === customCountry.countryName}\"\n (click)=\"onCountryChanged(customCountry)\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"customCountry.flag\"\n [alt]=\"customCountry.countryName\">\n <span class=\"zen-phone-country-name\">{{ customCountry.countryName | translate }}</span>\n <span class=\"zen-phone-country-code\">{{ customCountry.countryCallingCode }}</span>\n </button>\n </div>\n </div>\n</div>\n\n<!-- Phone Input Template -->\n<ng-template #phoneInputTemplate>\n <!-- Phone country selector -->\n <div class=\"zen-phone-country-select\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"selectedCountry.flag\"\n [alt]=\"selectedCountry.countryName\">\n <span class=\"zen-phone-code\">{{ selectedCountry.countryCallingCode }}</span>\n <button type=\"button\"\n class=\"zen-phone-dropdown-btn\"\n [disabled]=\"disabled\"\n (click)=\"togglePhoneDropdown(); $event.stopPropagation()\">\n <i class=\"material-icons zen-phone-expand-icon\"\n [ngClass]=\"{'active': isPhoneDropdownExpanded}\">expand_more</i>\n </button>\n </div>\n \n <!-- Phone input field -->\n <input #inputElement\n type=\"text\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [value]=\"phoneText\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.maxlength]=\"phoneMaxLength\"\n [attr.minlength]=\"minLength\"\n [autocomplete]=\"autocomplete\"\n class=\"zen-input-field text text-md text-weight-regular\"\n (input)=\"onInputChange($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\" />\n</ng-template>\n\n<!-- Click outside handler for dropdowns -->\n<div *ngIf=\"leadingDropdownOpen || trailingDropdownOpen || isPhoneDropdownExpanded\" \n class=\"zen-dropdown-backdrop\" \n (click)=\"closeDropdowns(); hidePhoneDropdown()\"></div>", styles: [".text{margin:0;padding:0;color:#101828}.text-display-2xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:72px;line-height:90px;letter-spacing:-.02em}.text-display-xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:60px;line-height:72px;letter-spacing:-.02em}.text-display-lg{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:48px;line-height:60px;letter-spacing:-.02em}.text-display-md{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:36px;line-height:44px;letter-spacing:-.02em}.text-display-sm{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:30px;line-height:38px;letter-spacing:0}.text-display-xs{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:24px;line-height:32px;letter-spacing:0}.text-xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:20px;line-height:30px;letter-spacing:0}.text-lg{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:28px;letter-spacing:0}.text-md{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:24px;letter-spacing:0}.text-sm{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:20px;letter-spacing:0}.text-xs{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;line-height:18px;letter-spacing:0}.text-weight-regular{font-weight:400;font-style:normal}.text-weight-medium{font-weight:500;font-style:normal}.text-weight-semibold{font-weight:600;font-style:normal}.text-weight-bold{font-weight:700;font-style:normal}@media (max-width: 768px){.text-display-2xl{font-size:48px;line-height:56px}.text-display-xl{font-size:40px;line-height:48px}.text-display-lg{font-size:32px;line-height:40px}}:host{display:block;width:100%}.zen-input-container{display:flex;flex-direction:column;gap:6px;width:100%;position:relative}.zen-input-container .zen-input-label{color:#344054;display:flex;align-items:center;gap:4px}.zen-input-container .zen-input-label .required-indicator{color:#f04438}.zen-input-container .zen-input-label.disabled{color:#d0d5dd}.zen-input-container .zen-input-label.destructive{color:#344054}.zen-input-container .zen-input-field-wrapper{display:flex;align-items:center;background:#FFFFFF;border:1px solid #D0D5DD;border-radius:8px;padding:10px 14px;gap:8px;min-height:44px;box-sizing:border-box;transition:all .2s ease;cursor:text;position:relative;box-shadow:0 1px 2px #1018280d}.zen-input-container .zen-input-field-wrapper:hover:not(.disabled){border-color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-leading-icon{font-size:20px;color:#98a2b3;flex-shrink:0;cursor:pointer;transition:color .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-leading-icon:hover{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown{position:relative;flex-shrink:0;margin-right:4px}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger{display:flex;align-items:center;gap:4px;background:transparent;border:none;padding:0;cursor:pointer;font-family:Inter,sans-serif;font-size:16px;color:#344054}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger .dropdown-icon{font-size:20px;color:#98a2b3;transition:transform .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger:hover:not(:disabled) .dropdown-icon{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-leading-text{color:#667085;flex-shrink:0;padding-right:4px}.zen-input-container .zen-input-field-wrapper .zen-input-field{flex:1;border:none;outline:none;background:transparent;color:#101828;padding:0;min-width:0}.zen-input-container .zen-input-field-wrapper .zen-input-field::placeholder{color:#667085}.zen-input-container .zen-input-field-wrapper .zen-input-field:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-field:disabled::placeholder{color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container{display:flex;align-items:center;gap:8px;flex-shrink:0}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-character-count{color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon{position:relative;display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;cursor:pointer}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon i{font-size:16px;color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:hover:not(:disabled) i{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:disabled{cursor:not-allowed}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:disabled i{color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip{position:absolute;bottom:calc(100% + 8px);right:50%;transform:translate(50%);z-index:1000;white-space:nowrap}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip .tooltip-content{background:#101828;color:#fff;padding:8px 12px;border-radius:8px;font-family:Inter,sans-serif;font-size:12px;line-height:18px;box-shadow:0 12px 16px #10182814,0 4px 6px #10182808;max-width:200px;white-space:normal}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip .tooltip-arrow{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #101828}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown{position:relative}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger{display:flex;align-items:center;gap:4px;background:transparent;border:none;border-left:1px solid #D0D5DD;padding:0 0 0 8px;margin-left:4px;cursor:pointer;font-family:Inter,sans-serif;font-size:16px;color:#344054}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger .dropdown-icon{font-size:20px;color:#98a2b3;transition:transform .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger:hover:not(:disabled) .dropdown-icon{color:#475467}.zen-input-container .zen-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:#FFFFFF;border:1px solid #EAECF0;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;min-width:200px;max-height:240px;overflow-y:auto;z-index:100;padding:4px}.zen-input-container .zen-dropdown-menu.dropdown-menu-right{left:auto;right:0}.zen-input-container .zen-dropdown-menu .zen-dropdown-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;font-family:Inter,sans-serif;font-size:14px;line-height:20px;color:#344054;text-align:left;cursor:pointer;transition:background-color .2s ease}.zen-input-container .zen-dropdown-menu .zen-dropdown-option .option-icon{font-size:20px;color:#98a2b3}.zen-input-container .zen-dropdown-menu .zen-dropdown-option:hover{background:#F9FAFB}.zen-input-container .zen-dropdown-menu .zen-dropdown-option.selected{background:#F1F7FE;color:#105494;font-weight:500}.zen-input-container .zen-dropdown-menu .zen-dropdown-option.selected .option-icon{color:#136ab6}.zen-input-container .zen-input-hint{display:flex;align-items:center;gap:4px;color:#667085}.zen-input-container .zen-input-hint .hint-icon{font-size:16px;color:#f04438}.zen-input-container .zen-input-hint.destructive{color:#f04438}.zen-input-container.focused .zen-input-field-wrapper{border-color:#88c1f1;box-shadow:0 1px 2px #1018280d,0 0 0 4px #e3eefb}.zen-input-container.focused .zen-input-field-wrapper.destructive{border-color:#fda29b;box-shadow:0 1px 2px #1018280d,0 0 0 4px #fee4e2}.zen-input-container.filled .zen-input-field-wrapper{background:#FFFFFF}.zen-input-container.disabled .zen-input-field-wrapper{background:#F9FAFB;border-color:#d0d5dd;cursor:not-allowed}.zen-input-container.disabled .zen-input-field-wrapper:hover{border-color:#d0d5dd}.zen-input-container.destructive .zen-input-field-wrapper{border-color:#fda29b}.zen-input-container.destructive .zen-input-field-wrapper:hover:not(.disabled){border-color:#f97066}.zen-input-container.size-sm .zen-input-label{font-size:12px;line-height:18px}.zen-input-container.size-sm .zen-input-field-wrapper{padding:8px 12px;min-height:36px;box-sizing:border-box}.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-field,.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-leading-text{font-size:14px;line-height:20px}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-input-field{font-family:Courier New,Courier,monospace}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon{display:flex;align-items:center;justify-content:center;background:#FFFFFF;border:1px solid #F2F4F7;border-radius:4px;width:34px;height:24px;flex-shrink:0}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon .card-icon{font-size:16px;color:#4285f4;line-height:1}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon zen-icon{font-size:16px;color:#98a2b3;line-height:1}.zen-input-container.variant-input-field .zen-input-field-wrapper{padding:12px 14px;min-height:48px}.zen-phone-country-select{display:flex;align-items:center;gap:6px;flex-shrink:0;padding-right:8px;border-right:1px solid #D0D5DD;margin-right:8px;position:relative}.zen-phone-country-select .zen-phone-country-flag{width:20px;height:15px;object-fit:cover;border-radius:2px}.zen-phone-country-select .zen-phone-code{color:#344054;font-family:Inter,sans-serif;font-size:14px;font-weight:500;min-width:max-content}.zen-phone-country-select .zen-phone-dropdown-btn{background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.zen-phone-country-select .zen-phone-dropdown-btn:disabled{cursor:not-allowed;opacity:.5}.zen-phone-country-select .zen-phone-dropdown-btn .zen-phone-expand-icon{font-size:16px;color:#98a2b3;transition:transform .2s ease,color .2s ease}.zen-phone-country-select .zen-phone-dropdown-btn .zen-phone-expand-icon.active{transform:rotate(180deg)}.zen-phone-country-select .zen-phone-dropdown-btn:hover:not(:disabled) .zen-phone-expand-icon{color:#475467}.zen-phone-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:#FFFFFF;border:1px solid #EAECF0;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;min-width:280px;max-height:240px;overflow-y:auto;z-index:100}.zen-phone-dropdown-menu .zen-phone-dropdown-list{padding:4px}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s ease;font-family:Inter,sans-serif;font-size:14px;text-align:left;color:#344054}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-flag{width:20px;height:15px;object-fit:cover;border-radius:2px;flex-shrink:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-name{flex:1;min-width:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-code{color:#667085;font-size:13px;flex-shrink:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item:hover{background:#F9FAFB}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item.active{background:#F1F7FE;color:#105494}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item.active .zen-phone-country-code{color:#136ab6}.zen-payment-field{font-family:Courier New,Courier,monospace!important;letter-spacing:1px}.zen-dropdown-backdrop{position:fixed;inset:0;z-index:99;background:transparent}\n"] }]
|
|
467
|
+
], template: "<div class=\"zen-input-container\" [ngClass]=\"inputClasses\">\n <!-- Label -->\n <label *ngIf=\"showLabel\" \n [for]=\"id\" \n class=\"zen-input-label text text-sm text-weight-medium\"\n [ngClass]=\"{'required': required, 'disabled': disabled, 'destructive': destructive}\">\n {{ label | translate }}\n <span *ngIf=\"required\" class=\"required-indicator\">*</span>\n </label>\n \n <!-- Input wrapper -->\n <div class=\"zen-input-field-wrapper\" (click)=\"focusInput()\">\n \n <!-- Leading icon -->\n <i *ngIf=\"leadingIcon && variant === 'default'\" \n class=\"material-icons zen-input-leading-icon\"\n (click)=\"onLeadingIconClick($event)\">\n {{ leadingIcon }}\n </i>\n \n <!-- Leading dropdown -->\n <div *ngIf=\"variant === 'leading-dropdown'\" \n class=\"zen-input-leading-dropdown\">\n <button type=\"button\"\n class=\"zen-dropdown-trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggleLeadingDropdown(); $event.stopPropagation()\">\n <span class=\"dropdown-label\">{{ getLeadingDropdownLabel() }}</span>\n <i class=\"material-icons dropdown-icon\">expand_more</i>\n </button>\n \n <div class=\"zen-dropdown-menu\" \n *ngIf=\"leadingDropdownOpen\"\n [ngClass]=\"{'open': leadingDropdownOpen}\">\n <button *ngFor=\"let option of leadingDropdownOptions\"\n type=\"button\"\n class=\"zen-dropdown-option\"\n [ngClass]=\"{'selected': option.value === leadingDropdownValue}\"\n (click)=\"onLeadingDropdownChange(option.value); $event.stopPropagation()\">\n <i *ngIf=\"option.icon\" class=\"material-icons option-icon\">{{ option.icon }}</i>\n {{ option.label | translate }}\n </button>\n </div>\n </div>\n \n <!-- Leading text -->\n <span *ngIf=\"variant === 'leading-text'\" \n class=\"zen-input-leading-text text text-md text-weight-regular\">\n {{ leadingText }}\n </span>\n \n <!-- Payment card icon -->\n <div *ngIf=\"variant === 'payment'\" \n class=\"zen-payment-card-icon\">\n <i class=\"material-icons card-icon\">payment</i>\n </div>\n \n <!-- Input content based on type -->\n <ng-container *ngIf=\"type === 'tel'; else defaultInputTemplate\">\n <ng-container *ngTemplateOutlet=\"phoneInputTemplate\"></ng-container>\n </ng-container>\n \n <!-- Default input template -->\n <ng-template #defaultInputTemplate>\n <input #inputElement\n [type]=\"type\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.maxlength]=\"maxLength\"\n [attr.minlength]=\"minLength\"\n [pattern]=\"pattern\"\n [autocomplete]=\"autocomplete\"\n class=\"zen-input-field text text-md text-weight-regular\"\n [ngClass]=\"{'zen-payment-field': variant === 'payment'}\"\n (input)=\"onInputChange($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\" />\n </ng-template>\n \n <!-- Trailing elements container -->\n <div class=\"zen-input-trailing-container\">\n <!-- Trailing text -->\n <span *ngIf=\"variant === 'trailing-text'\"\n class=\"zen-input-trailing-text text text-md text-weight-regular\">\n {{ trailingText }}\n </span>\n\n <!-- Character counter -->\n <span *ngIf=\"showCharacterCount && !helpIcon && variant === 'default'\"\n class=\"zen-character-count text text-sm text-weight-regular\">\n {{ characterCount }}\n </span>\n \n <!-- Help icon -->\n <button *ngIf=\"helpIcon && variant !== 'trailing-dropdown'\" \n type=\"button\"\n class=\"zen-help-icon\"\n [disabled]=\"disabled\"\n (click)=\"onHelpIconClick($event); $event.stopPropagation()\">\n <i class=\"material-icons-outlined\">help_outline</i>\n \n <!-- Help tooltip -->\n <div class=\"zen-help-tooltip\" \n *ngIf=\"showHelpTooltip\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"tooltip-content\">\n {{ helpTooltip | translate }}\n </div>\n <div class=\"tooltip-arrow\"></div>\n </div>\n </button>\n \n <!-- Trailing dropdown -->\n <div *ngIf=\"variant === 'trailing-dropdown'\" \n class=\"zen-input-trailing-dropdown\">\n <button type=\"button\"\n class=\"zen-dropdown-trigger\"\n [disabled]=\"disabled\"\n (click)=\"toggleTrailingDropdown(); $event.stopPropagation()\">\n <span class=\"dropdown-label\">{{ getTrailingDropdownLabel() }}</span>\n <i class=\"material-icons dropdown-icon\">expand_more</i>\n </button>\n \n <div class=\"zen-dropdown-menu dropdown-menu-right\" \n *ngIf=\"trailingDropdownOpen\"\n [ngClass]=\"{'open': trailingDropdownOpen}\">\n <button *ngFor=\"let option of trailingDropdownOptions\"\n type=\"button\"\n class=\"zen-dropdown-option\"\n [ngClass]=\"{'selected': option.value === trailingDropdownValue}\"\n (click)=\"onTrailingDropdownChange(option.value); $event.stopPropagation()\">\n <i *ngIf=\"option.icon\" class=\"material-icons option-icon\">{{ option.icon }}</i>\n {{ option.label | translate }}\n </button>\n </div>\n </div>\n </div>\n </div>\n \n <!-- Hint text / Error message -->\n <div *ngIf=\"showHintText\" \n class=\"zen-input-hint text text-sm text-weight-regular\"\n [ngClass]=\"{'destructive': destructive}\">\n <i *ngIf=\"destructive\" class=\"material-icons-outlined hint-icon\">error_outline</i>\n {{ displayHintText | translate }}\n </div>\n \n <!-- Phone Country Dropdown (for tel type) -->\n <div *ngIf=\"type === 'tel' && isPhoneDropdownExpanded\" \n class=\"zen-phone-dropdown-menu\">\n <div class=\"zen-phone-dropdown-list\">\n <!-- Countries List -->\n <button type=\"button\"\n class=\"zen-phone-dropdown-item\"\n *ngFor=\"let country of countryList\"\n [ngClass]=\"{'active': selectedCountry.countryName === country.countryName}\"\n (click)=\"onCountryChanged(country)\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"country.flag\"\n [alt]=\"country.countryName\">\n <span class=\"zen-phone-country-name\">{{ country.countryName | translate }}</span>\n <span class=\"zen-phone-country-code\">{{ country.countryCallingCode }}</span>\n </button>\n\n <!-- Custom Country -->\n <button type=\"button\"\n class=\"zen-phone-dropdown-item\"\n [ngClass]=\"{'active': selectedCountry.countryName === customCountry.countryName}\"\n (click)=\"onCountryChanged(customCountry)\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"customCountry.flag\"\n [alt]=\"customCountry.countryName\">\n <span class=\"zen-phone-country-name\">{{ customCountry.countryName | translate }}</span>\n <span class=\"zen-phone-country-code\">{{ customCountry.countryCallingCode }}</span>\n </button>\n </div>\n </div>\n</div>\n\n<!-- Phone Input Template -->\n<ng-template #phoneInputTemplate>\n <!-- Phone country selector -->\n <div class=\"zen-phone-country-select\">\n <img class=\"zen-phone-country-flag\"\n [src]=\"selectedCountry.flag\"\n [alt]=\"selectedCountry.countryName\">\n <span class=\"zen-phone-code\">{{ selectedCountry.countryCallingCode }}</span>\n <button type=\"button\"\n class=\"zen-phone-dropdown-btn\"\n [disabled]=\"disabled\"\n (click)=\"togglePhoneDropdown(); $event.stopPropagation()\">\n <i class=\"material-icons zen-phone-expand-icon\"\n [ngClass]=\"{'active': isPhoneDropdownExpanded}\">expand_more</i>\n </button>\n </div>\n \n <!-- Phone input field -->\n <input #inputElement\n type=\"text\"\n [id]=\"id\"\n [name]=\"name\"\n [placeholder]=\"placeholder\"\n [value]=\"phoneText\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [attr.maxlength]=\"phoneMaxLength\"\n [attr.minlength]=\"minLength\"\n [autocomplete]=\"autocomplete\"\n class=\"zen-input-field text text-md text-weight-regular\"\n (input)=\"onInputChange($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (keydown)=\"onKeydown($event)\"\n (keyup)=\"onKeyup($event)\" />\n</ng-template>\n\n<!-- Click outside handler for dropdowns -->\n<div *ngIf=\"leadingDropdownOpen || trailingDropdownOpen || isPhoneDropdownExpanded\" \n class=\"zen-dropdown-backdrop\" \n (click)=\"closeDropdowns(); hidePhoneDropdown()\"></div>", styles: [".text{margin:0;padding:0;color:#101828}.text-display-2xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:72px;line-height:90px;letter-spacing:-.02em}.text-display-xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:60px;line-height:72px;letter-spacing:-.02em}.text-display-lg{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:48px;line-height:60px;letter-spacing:-.02em}.text-display-md{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:36px;line-height:44px;letter-spacing:-.02em}.text-display-sm{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:30px;line-height:38px;letter-spacing:0}.text-display-xs{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:24px;line-height:32px;letter-spacing:0}.text-xl{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:20px;line-height:30px;letter-spacing:0}.text-lg{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:18px;line-height:28px;letter-spacing:0}.text-md{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:24px;letter-spacing:0}.text-sm{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:20px;letter-spacing:0}.text-xs{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:12px;line-height:18px;letter-spacing:0}.text-weight-regular{font-weight:400;font-style:normal}.text-weight-medium{font-weight:500;font-style:normal}.text-weight-semibold{font-weight:600;font-style:normal}.text-weight-bold{font-weight:700;font-style:normal}@media (max-width: 768px){.text-display-2xl{font-size:48px;line-height:56px}.text-display-xl{font-size:40px;line-height:48px}.text-display-lg{font-size:32px;line-height:40px}}:host{display:block;width:100%}.zen-input-container{display:flex;flex-direction:column;gap:6px;width:100%;position:relative}.zen-input-container .zen-input-label{color:#344054;display:flex;align-items:center;gap:4px}.zen-input-container .zen-input-label .required-indicator{color:#f04438}.zen-input-container .zen-input-label.disabled{color:#d0d5dd}.zen-input-container .zen-input-label.destructive{color:#344054}.zen-input-container .zen-input-field-wrapper{display:flex;align-items:center;background:#FFFFFF;border:1px solid #D0D5DD;border-radius:8px;padding:10px 14px;gap:8px;min-height:44px;box-sizing:border-box;transition:all .2s ease;cursor:text;position:relative;box-shadow:0 1px 2px #1018280d}.zen-input-container .zen-input-field-wrapper:hover:not(.disabled){border-color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-leading-icon{font-size:20px;color:#98a2b3;flex-shrink:0;cursor:pointer;transition:color .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-leading-icon:hover{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown{position:relative;flex-shrink:0;margin-right:4px}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger{display:flex;align-items:center;gap:4px;background:transparent;border:none;padding:0;cursor:pointer;font-family:Inter,sans-serif;font-size:16px;color:#344054}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger .dropdown-icon{font-size:20px;color:#98a2b3;transition:transform .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-leading-dropdown .zen-dropdown-trigger:hover:not(:disabled) .dropdown-icon{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-leading-text{color:#667085;flex-shrink:0;padding-right:4px}.zen-input-container .zen-input-field-wrapper .zen-input-field{flex:1;border:none;outline:none;background:transparent;color:#101828;padding:0;min-width:0}.zen-input-container .zen-input-field-wrapper .zen-input-field::placeholder{color:#667085}.zen-input-container .zen-input-field-wrapper .zen-input-field:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-field:disabled::placeholder{color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container{display:flex;align-items:center;gap:8px;flex-shrink:0}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-text{color:#667085;flex-shrink:0;padding-left:4px}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-character-count{color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon{position:relative;display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;cursor:pointer}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon i{font-size:16px;color:#98a2b3}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:hover:not(:disabled) i{color:#475467}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:disabled{cursor:not-allowed}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon:disabled i{color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip{position:absolute;bottom:calc(100% + 8px);right:50%;transform:translate(50%);z-index:1000;white-space:nowrap}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip .tooltip-content{background:#101828;color:#fff;padding:8px 12px;border-radius:8px;font-family:Inter,sans-serif;font-size:12px;line-height:18px;box-shadow:0 12px 16px #10182814,0 4px 6px #10182808;max-width:200px;white-space:normal}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-help-icon .zen-help-tooltip .tooltip-arrow{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #101828}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown{position:relative}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger{display:flex;align-items:center;gap:4px;background:transparent;border:none;border-left:1px solid #D0D5DD;padding:0 0 0 8px;margin-left:4px;cursor:pointer;font-family:Inter,sans-serif;font-size:16px;color:#344054}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger:disabled{cursor:not-allowed;color:#d0d5dd}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger .dropdown-icon{font-size:20px;color:#98a2b3;transition:transform .2s ease}.zen-input-container .zen-input-field-wrapper .zen-input-trailing-container .zen-input-trailing-dropdown .zen-dropdown-trigger:hover:not(:disabled) .dropdown-icon{color:#475467}.zen-input-container .zen-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:#FFFFFF;border:1px solid #EAECF0;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;min-width:200px;max-height:240px;overflow-y:auto;z-index:100;padding:4px}.zen-input-container .zen-dropdown-menu.dropdown-menu-right{left:auto;right:0}.zen-input-container .zen-dropdown-menu .zen-dropdown-option{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:6px;font-family:Inter,sans-serif;font-size:14px;line-height:20px;color:#344054;text-align:left;cursor:pointer;transition:background-color .2s ease}.zen-input-container .zen-dropdown-menu .zen-dropdown-option .option-icon{font-size:20px;color:#98a2b3}.zen-input-container .zen-dropdown-menu .zen-dropdown-option:hover{background:#F9FAFB}.zen-input-container .zen-dropdown-menu .zen-dropdown-option.selected{background:#F1F7FE;color:#105494;font-weight:500}.zen-input-container .zen-dropdown-menu .zen-dropdown-option.selected .option-icon{color:#136ab6}.zen-input-container .zen-input-hint{display:flex;align-items:center;gap:4px;color:#667085}.zen-input-container .zen-input-hint .hint-icon{font-size:16px;color:#f04438}.zen-input-container .zen-input-hint.destructive{color:#f04438}.zen-input-container.focused .zen-input-field-wrapper{border-color:#88c1f1;box-shadow:0 1px 2px #1018280d,0 0 0 4px #e3eefb}.zen-input-container.focused .zen-input-field-wrapper.destructive{border-color:#fda29b;box-shadow:0 1px 2px #1018280d,0 0 0 4px #fee4e2}.zen-input-container.filled .zen-input-field-wrapper{background:#FFFFFF}.zen-input-container.disabled .zen-input-field-wrapper{background:#F9FAFB;border-color:#d0d5dd;cursor:not-allowed}.zen-input-container.disabled .zen-input-field-wrapper:hover{border-color:#d0d5dd}.zen-input-container.destructive .zen-input-field-wrapper{border-color:#fda29b}.zen-input-container.destructive .zen-input-field-wrapper:hover:not(.disabled){border-color:#f97066}.zen-input-container.size-sm .zen-input-label{font-size:12px;line-height:18px}.zen-input-container.size-sm .zen-input-field-wrapper{padding:8px 12px;min-height:36px;box-sizing:border-box}.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-field,.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-leading-text,.zen-input-container.size-sm .zen-input-field-wrapper .zen-input-trailing-text{font-size:14px;line-height:20px}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-input-field{font-family:Courier New,Courier,monospace}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon{display:flex;align-items:center;justify-content:center;background:#FFFFFF;border:1px solid #F2F4F7;border-radius:4px;width:34px;height:24px;flex-shrink:0}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon .card-icon{font-size:16px;color:#4285f4;line-height:1}.zen-input-container.variant-payment .zen-input-field-wrapper .zen-payment-card-icon zen-icon{font-size:16px;color:#98a2b3;line-height:1}.zen-input-container.variant-input-field .zen-input-field-wrapper{padding:12px 14px;min-height:48px}.zen-phone-country-select{display:flex;align-items:center;gap:6px;flex-shrink:0;padding-right:8px;border-right:1px solid #D0D5DD;margin-right:8px;position:relative}.zen-phone-country-select .zen-phone-country-flag{width:20px;height:15px;object-fit:cover;border-radius:2px}.zen-phone-country-select .zen-phone-code{color:#344054;font-family:Inter,sans-serif;font-size:14px;font-weight:500;min-width:max-content}.zen-phone-country-select .zen-phone-dropdown-btn{background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center}.zen-phone-country-select .zen-phone-dropdown-btn:disabled{cursor:not-allowed;opacity:.5}.zen-phone-country-select .zen-phone-dropdown-btn .zen-phone-expand-icon{font-size:16px;color:#98a2b3;transition:transform .2s ease,color .2s ease}.zen-phone-country-select .zen-phone-dropdown-btn .zen-phone-expand-icon.active{transform:rotate(180deg)}.zen-phone-country-select .zen-phone-dropdown-btn:hover:not(:disabled) .zen-phone-expand-icon{color:#475467}.zen-phone-dropdown-menu{position:absolute;top:calc(100% + 4px);left:0;background:#FFFFFF;border:1px solid #EAECF0;border-radius:8px;box-shadow:0 12px 16px -4px #10182814,0 4px 6px -2px #10182808;min-width:280px;max-height:240px;overflow-y:auto;z-index:100}.zen-phone-dropdown-menu .zen-phone-dropdown-list{padding:4px}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background-color .2s ease;font-family:Inter,sans-serif;font-size:14px;text-align:left;color:#344054}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-flag{width:20px;height:15px;object-fit:cover;border-radius:2px;flex-shrink:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-name{flex:1;min-width:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item .zen-phone-country-code{color:#667085;font-size:13px;flex-shrink:0}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item:hover{background:#F9FAFB}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item.active{background:#F1F7FE;color:#105494}.zen-phone-dropdown-menu .zen-phone-dropdown-list .zen-phone-dropdown-item.active .zen-phone-country-code{color:#136ab6}.zen-payment-field{font-family:Courier New,Courier,monospace!important;letter-spacing:1px}.zen-dropdown-backdrop{position:fixed;inset:0;z-index:99;background:transparent}\n"] }]
|
|
464
468
|
}], propDecorators: { inputElement: [{
|
|
465
469
|
type: ViewChild,
|
|
466
470
|
args: ['inputElement']
|
|
@@ -514,6 +518,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
514
518
|
type: Input
|
|
515
519
|
}], leadingText: [{
|
|
516
520
|
type: Input
|
|
521
|
+
}], trailingText: [{
|
|
522
|
+
type: Input
|
|
517
523
|
}], size: [{
|
|
518
524
|
type: Input
|
|
519
525
|
}], showCharacterCount: [{
|
|
@@ -554,4 +560,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
554
560
|
type: HostBinding,
|
|
555
561
|
args: ['class.zen-input-wrapper']
|
|
556
562
|
}] } });
|
|
557
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVuZHUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctemVuZHVpdC9zcmMvbGliL2lucHV0L3plbmR1LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXplbmR1aXQvc3JjL2xpYi9pbnB1dC96ZW5kdS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBS1QsV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFvQnhELE1BQU0sT0FBTyxtQkFBbUI7SUFaaEM7UUFnQkk7O1dBRUc7UUFDTSxTQUFJLEdBQXdFLE1BQU0sQ0FBQztRQUU1Rjs7V0FFRztRQUNNLFlBQU8sR0FBc0csU0FBUyxDQUFDO1FBRWhJOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7O1dBRUc7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXBCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUV2Qjs7V0FFRztRQUNNLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRTFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7V0FFRztRQUNNLGdCQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFFM0M7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU3Qjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRTNCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7V0FF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S0csVUFBVTtzQkFBbkIsTUFBTTtnQkFLRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBS0csMEJBQTBCO3NCQUFuQyxNQUFNO2dCQUtHLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFLRywyQkFBMkI7c0JBQXBDLE1BQU07Z0JBS0csYUFBYTtzQkFBdEIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQStDSCxTQUFTO3NCQURaLFdBQVc7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgXG4gICAgQ29tcG9uZW50LCBcbiAgICBJbnB1dCwgXG4gICAgT3V0cHV0LCBcbiAgICBFdmVudEVtaXR0ZXIsIFxuICAgIGZvcndhcmRSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIEhvc3RCaW5kaW5nXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJVdGlsIH0gZnJvbSAnZ29vZ2xlLWxpYnBob25lbnVtYmVyJztcblxuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bk9wdGlvbiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGljb24/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnemVuLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vemVuZHUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3plbmR1LWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gWmVuZHVJbnB1dENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBaZW5kdUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBcbiAgICBAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG4gICAgXG4gICAgLyoqXG4gICAgICogSW5wdXQgdHlwZSBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0eXBlOiAndGV4dCcgfCAnZW1haWwnIHwgJ3Bhc3N3b3JkJyB8ICd0ZWwnIHwgJ251bWJlcicgfCAndXJsJyB8ICdzZWFyY2gnID0gJ3RleHQnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIElucHV0IHZhcmlhbnQgdHlwZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHZhcmlhbnQ6ICdkZWZhdWx0JyB8ICdpbnB1dC1maWVsZCcgfCAncGF5bWVudCcgfCAnbGVhZGluZy1kcm9wZG93bicgfCAnbGVhZGluZy10ZXh0JyB8ICd0cmFpbGluZy1kcm9wZG93bicgPSAnZGVmYXVsdCc7XG4gICAgXG4gICAgLyoqXG4gICAgICogUGxhY2Vob2xkZXIgdGV4dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gICAgXG4gICAgLyoqXG4gICAgICogTGFiZWwgdGV4dCAoc2hvd24gYWJvdmUgaW5wdXQpXG4gICAgICovXG4gICAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBIaW50IHRleHQgKHNob3duIGJlbG93IGlucHV0KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGhpbnRUZXh0ID0gJyc7XG4gICAgXG4gICAgLyoqXG4gICAgICogTGVhZGluZyBpY29uIG5hbWUgKE1hdGVyaWFsIEljb25zKVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGxlYWRpbmdJY29uID0gJyc7XG4gICAgXG4gICAgLyoqXG4gICAgICogU2hvdyBoZWxwIGljb24gd2l0aCB0b29sdGlwXG4gICAgICovXG4gICAgQElucHV0KCkgaGVscEljb24gPSBmYWxzZTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBUb29sdGlwIHRleHQgZm9yIGhlbHAgaWNvblxuICAgICAqL1xuICAgIEBJbnB1dCgpIGhlbHBUb29sdGlwID0gJ1RoaXMgaXMgYSB0b29sdGlwJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBFcnJvci9kZXN0cnVjdGl2ZSBzdGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGRlc3RydWN0aXZlID0gZmFsc2U7XG4gICAgXG4gICAgLyoqXG4gICAgICogRXJyb3IgbWVzc2FnZSB0byBkaXNwbGF5XG4gICAgICovXG4gICAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJyc7XG4gICAgXG4gICAgLyoqXG4gICAgICogRGlzYWJsZWQgc3RhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFJlcXVpcmVkIGZpZWxkXG4gICAgICovXG4gICAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGNoYXJhY3RlciBsZW5ndGhcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlcjtcbiAgICBcbiAgICAvKipcbiAgICAgKiBNaW5pbXVtIGNoYXJhY3RlciBsZW5ndGhcbiAgICAgKi9cbiAgICBASW5wdXQoKSBtaW5MZW5ndGg6IG51bWJlcjtcbiAgICBcbiAgICAvKipcbiAgICAgKiBQYXR0ZXJuIGZvciB2YWxpZGF0aW9uXG4gICAgICovXG4gICAgQElucHV0KCkgcGF0dGVybjogc3RyaW5nO1xuICAgIFxuICAgIC8qKlxuICAgICAqIEF1dG9jb21wbGV0ZSBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBhdXRvY29tcGxldGUgPSAnb2ZmJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBOYW1lIGF0dHJpYnV0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIG5hbWUgPSAnJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBJRCBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBpZCA9ICcnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIExlYWRpbmcgZHJvcGRvd24gb3B0aW9uc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIGxlYWRpbmdEcm9wZG93bk9wdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gPSBbXTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBTZWxlY3RlZCBsZWFkaW5nIGRyb3Bkb3duIHZhbHVlXG4gICAgICovXG4gICAgQElucHV0KCkgbGVhZGluZ0Ryb3Bkb3duVmFsdWU6IHN0cmluZyB8IG51bWJlciA9ICcnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIExlYWRpbmcgZHJvcGRvd24gcGxhY2Vob2xkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsZWFkaW5nRHJvcGRvd25QbGFjZWhvbGRlciA9ICdTZWxlY3QnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFRyYWlsaW5nIGRyb3Bkb3duIG9wdGlvbnNcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0cmFpbGluZ0Ryb3Bkb3duT3B0aW9uczogRHJvcGRvd25PcHRpb25bXSA9IFtdO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFNlbGVjdGVkIHRyYWlsaW5nIGRyb3Bkb3duIHZhbHVlXG4gICAgICovXG4gICAgQElucHV0KCkgdHJhaWxpbmdEcm9wZG93blZhbHVlOiBzdHJpbmcgfCBudW1iZXIgPSAnJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBUcmFpbGluZyBkcm9wZG93biBwbGFjZWhvbGRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRyYWlsaW5nRHJvcGRvd25QbGFjZWhvbGRlciA9ICdTZWxlY3QnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIExlYWRpbmcgc3RhdGljIHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsZWFkaW5nVGV4dCA9ICcnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIElucHV0IHNpemVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ21kJyA9ICdtZCc7XG4gICAgXG4gICAgLyoqXG4gICAgICogU2hvdyBjaGFyYWN0ZXIgY291bnRlclxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNob3dDaGFyYWN0ZXJDb3VudCA9IGZhbHNlO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFBob25lIGlucHV0IG1heGltdW0gbGVuZ3RoXG4gICAgICovXG4gICAgQElucHV0KCkgcGhvbmVNYXhMZW5ndGg6IG51bWJlciA9IDEzO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFBob25lIG51bWJlciB2YWx1ZSAoZm9yIHRlbCB0eXBlKVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHBob25lOiBzdHJpbmcgPSAnJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBXaWR0aCBmb3IgcGhvbmUgaW5wdXRcbiAgICAgKi9cbiAgICBASW5wdXQoKSB3aWR0aDogc3RyaW5nO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFZhbHVlIGNoYW5nZSBldmVudFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgIFxuICAgIC8qKlxuICAgICAqIEZvY3VzIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIGlucHV0Rm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogQmx1ciBldmVudFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBpbnB1dEJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZvY3VzRXZlbnQ+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogS2V5ZG93biBldmVudFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBpbnB1dEtleWRvd24gPSBuZXcgRXZlbnRFbWl0dGVyPEtleWJvYXJkRXZlbnQ+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogS2V5dXAgZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgaW5wdXRLZXl1cCA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBMZWFkaW5nIGRyb3Bkb3duIGNoYW5nZSBldmVudFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBsZWFkaW5nRHJvcGRvd25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bWJlcj4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBMZWFkaW5nIGRyb3Bkb3duIHZhbHVlIGNoYW5nZSBldmVudCAoZm9yIHR3by13YXkgYmluZGluZylcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgbGVhZGluZ0Ryb3Bkb3duVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bWJlcj4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBUcmFpbGluZyBkcm9wZG93biBjaGFuZ2UgZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdHJhaWxpbmdEcm9wZG93bkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVtYmVyPigpO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFRyYWlsaW5nIGRyb3Bkb3duIHZhbHVlIGNoYW5nZSBldmVudCAoZm9yIHR3by13YXkgYmluZGluZylcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdHJhaWxpbmdEcm9wZG93blZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudW1iZXI+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogSGVscCBpY29uIGNsaWNrIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIGhlbHBJY29uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogUGhvbmUgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIHBob25lQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogUGhvbmUgdmFsaWQgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIHZhbGlkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICAgIFxuICAgIC8qKlxuICAgICAqIExlYWRpbmcgaWNvbiBjbGljayBldmVudFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBsZWFkaW5nSWNvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICAgIFxuICAgIC8vIEludGVybmFsIHByb3BlcnRpZXNcbiAgICBwdWJsaWMgdmFsdWUgPSAnJztcbiAgICBwdWJsaWMgaXNGb2N1c2VkID0gZmFsc2U7XG4gICAgcHVibGljIHNob3dIZWxwVG9vbHRpcCA9IGZhbHNlO1xuICAgIHB1YmxpYyBsZWFkaW5nRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgcHVibGljIHRyYWlsaW5nRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgXG4gICAgLy8gUGhvbmUgaW5wdXQgcHJvcGVydGllc1xuICAgIHB1YmxpYyBwaG9uZVRleHQgPSAnJztcbiAgICBwdWJsaWMgY291bnRyeUxpc3Q6IHsgY291bnRyeUNvZGU6IHN0cmluZywgY291bnRyeU5hbWU6IHN0cmluZywgY291bnRyeUNhbGxpbmdDb2RlOiBzdHJpbmcsIGZsYWc6IHN0cmluZyB9W10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvdW50cnlDb2RlOiBcIlVTXCIsXG4gICAgICAgICAgICBjb3VudHJ5TmFtZTogXCJBbWVyaWNhXCIsXG4gICAgICAgICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiKzFcIixcbiAgICAgICAgICAgIGZsYWc6IFwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbmR1aXQtaWNvbnMvRmxhZ3MvVVNBLnN2Z1wiXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGNvdW50cnlDb2RlOiBcIkNBXCIsXG4gICAgICAgICAgICBjb3VudHJ5TmFtZTogXCJDYW5hZGFcIixcbiAgICAgICAgICAgIGNvdW50cnlDYWxsaW5nQ29kZTogXCIrMVwiLFxuICAgICAgICAgICAgZmxhZzogXCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vemVuZHVpdC1pY29ucy9GbGFncy9DYW5hZGEuc3ZnXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY291bnRyeUNvZGU6IFwiTVhcIixcbiAgICAgICAgICAgIGNvdW50cnlOYW1lOiBcIk1leGljb1wiLFxuICAgICAgICAgICAgY291bnRyeUNhbGxpbmdDb2RlOiBcIis1MlwiLFxuICAgICAgICAgICAgZmxhZzogXCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vemVuZHVpdC1pY29ucy9GbGFncy9NZXhpY28uc3ZnXCJcbiAgICAgICAgfVxuICAgIF07XG4gICAgXG4gICAgcHVibGljIGN1c3RvbUNvdW50cnkgPSB7XG4gICAgICAgIGNvdW50cnlDb2RlOiBcIlwiLFxuICAgICAgICBjb3VudHJ5TmFtZTogXCJDdXN0b21cIixcbiAgICAgICAgY291bnRyeUNhbGxpbmdDb2RlOiBcIlwiLFxuICAgICAgICBmbGFnOiBcImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS96ZW5kdWl0LWljb25zL0ZsYWdzL0N1c3RvbS5zdmdcIlxuICAgIH07XG4gICAgXG4gICAgcHVibGljIHNlbGVjdGVkQ291bnRyeTogeyBjb3VudHJ5Q29kZTogc3RyaW5nLCBjb3VudHJ5TmFtZTogc3RyaW5nLCBjb3VudHJ5Q2FsbGluZ0NvZGU6IHN0cmluZywgZmxhZzogc3RyaW5nIH07XG4gICAgcHVibGljIGlzUGhvbmVEcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gICAgXG4gICAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cbiAgICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCA9ICgpID0+IHt9O1xuICAgIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG4gICAgXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy56ZW4taW5wdXQtd3JhcHBlcicpXG4gICAgZ2V0IGhvc3RDbGFzcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIFxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBTZXQgZGVmYXVsdCBJRCBpZiBub3QgcHJvdmlkZWRcbiAgICAgICAgaWYgKCF0aGlzLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmlkID0gYHplbi1pbnB1dC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICAvLyBJbml0aWFsaXplIHBob25lIGlucHV0IGlmIHR5cGUgaXMgdGVsXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY291bnRyeUxpc3RbMV07IC8vIERlZmF1bHQgdG8gQ2FuYWRhXG4gICAgICAgICAgICB0aGlzLnBhcnNlUGhvbmVOdW1iZXIoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzW1wicGhvbmVcIl0gJiYgdGhpcy50eXBlID09PSAndGVsJyAmJiAoIXRoaXMuc2VsZWN0ZWRDb3VudHJ5IHx8ICF0aGlzLnNlbGVjdGVkQ291bnRyeS5jb3VudHJ5Q29kZSkpIHtcbiAgICAgICAgICAgIHRoaXMucGFyc2VQaG9uZU51bWJlcigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIG1ldGhvZHNcbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlIHx8ICcnO1xuICAgIH1cbiAgICBcbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuICAgIFxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuICAgIFxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB9XG4gICAgXG4gICAgLy8gRXZlbnQgaGFuZGxlcnNcbiAgICBvbklucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICd0ZWwnKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgcGhvbmUgaW5wdXRcbiAgICAgICAgICAgIHRoaXMucGhvbmVUZXh0ID0gdGFyZ2V0LnZhbHVlO1xuICAgICAgICAgICAgdGhpcy5vblBob25lQ2hhbmdlZCh0YXJnZXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gSGFuZGxlIHJlZ3VsYXIgaW5wdXRcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0YXJnZXQudmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIG9uSW5wdXRGb2N1cyhldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IHRydWU7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgICAgIHRoaXMuaW5wdXRGb2N1cy5lbWl0KGV2ZW50KTtcbiAgICB9XG4gICAgXG4gICAgb25JbnB1dEJsdXIoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5pbnB1dEJsdXIuZW1pdChldmVudCk7XG4gICAgfVxuICAgIFxuICAgIG9uS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0S2V5ZG93bi5lbWl0KGV2ZW50KTtcbiAgICB9XG4gICAgXG4gICAgb25LZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0S2V5dXAuZW1pdChldmVudCk7XG4gICAgfVxuICAgIFxuICAgIG9uTGVhZGluZ0Ryb3Bkb3duQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sZWFkaW5nRHJvcGRvd25WYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLmxlYWRpbmdEcm9wZG93bkNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5sZWFkaW5nRHJvcGRvd25WYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy5sZWFkaW5nRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIG9uVHJhaWxpbmdEcm9wZG93bkNoYW5nZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJhaWxpbmdEcm9wZG93blZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMudHJhaWxpbmdEcm9wZG93bkNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy50cmFpbGluZ0Ryb3Bkb3duVmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICAgIHRoaXMudHJhaWxpbmdEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgdG9nZ2xlTGVhZGluZ0Ryb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMubGVhZGluZ0Ryb3Bkb3duT3BlbiA9ICF0aGlzLmxlYWRpbmdEcm9wZG93bk9wZW47XG4gICAgICAgICAgICB0aGlzLnRyYWlsaW5nRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgdG9nZ2xlVHJhaWxpbmdEcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLnRyYWlsaW5nRHJvcGRvd25PcGVuID0gIXRoaXMudHJhaWxpbmdEcm9wZG93bk9wZW47XG4gICAgICAgICAgICB0aGlzLmxlYWRpbmdEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBvbkhlbHBJY29uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zaG93SGVscFRvb2x0aXAgPSAhdGhpcy5zaG93SGVscFRvb2x0aXA7XG4gICAgICAgIHRoaXMuaGVscEljb25DbGljay5lbWl0KGV2ZW50KTtcbiAgICB9XG4gICAgXG4gICAgY2xvc2VEcm9wZG93bnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGVhZGluZ0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnRyYWlsaW5nRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMudmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBcbiAgICBnZXQgc2hvd0xhYmVsKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmxhYmVsO1xuICAgIH1cbiAgICBcbiAgICBnZXQgc2hvd0hpbnRUZXh0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmhpbnRUZXh0IHx8ICh0aGlzLmRlc3RydWN0aXZlICYmICEhdGhpcy5lcnJvck1lc3NhZ2UpO1xuICAgIH1cbiAgICBcbiAgICBnZXQgZGlzcGxheUhpbnRUZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmRlc3RydWN0aXZlICYmIHRoaXMuZXJyb3JNZXNzYWdlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuaGludFRleHQ7XG4gICAgfVxuICAgIFxuICAgIGdldCBjaGFyYWN0ZXJDb3VudCgpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjdXJyZW50TGVuZ3RoID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUubGVuZ3RoIDogMDtcbiAgICAgICAgaWYgKHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7Y3VycmVudExlbmd0aH0vJHt0aGlzLm1heExlbmd0aH1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtjdXJyZW50TGVuZ3RofWA7XG4gICAgfVxuICAgIFxuICAgIGdldCBpbnB1dENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IFsnemVuLWlucHV0LWNvbnRhaW5lciddO1xuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuaXNGb2N1c2VkKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2ZvY3VzZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuaGFzVmFsdWUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZmlsbGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2Rpc2FibGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmRlc3RydWN0aXZlKSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ2Rlc3RydWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLnNpemUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaChgc2l6ZS0ke3RoaXMuc2l6ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMudmFyaWFudCkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGB2YXJpYW50LSR7dGhpcy52YXJpYW50fWApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XG4gICAgfVxuICAgIFxuICAgIGdldExlYWRpbmdEcm9wZG93bkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5sZWFkaW5nRHJvcGRvd25PcHRpb25zLmZpbmQob3B0ID0+IG9wdC52YWx1ZSA9PT0gdGhpcy5sZWFkaW5nRHJvcGRvd25WYWx1ZSk7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZCA/IHNlbGVjdGVkLmxhYmVsIDogdGhpcy5sZWFkaW5nRHJvcGRvd25QbGFjZWhvbGRlcjtcbiAgICB9XG4gICAgXG4gICAgZ2V0VHJhaWxpbmdEcm9wZG93bkxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy50cmFpbGluZ0Ryb3Bkb3duT3B0aW9ucy5maW5kKG9wdCA9PiBvcHQudmFsdWUgPT09IHRoaXMudHJhaWxpbmdEcm9wZG93blZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkID8gc2VsZWN0ZWQubGFiZWwgOiB0aGlzLnRyYWlsaW5nRHJvcGRvd25QbGFjZWhvbGRlcjtcbiAgICB9XG4gICAgXG4gICAgZm9jdXNJbnB1dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gUGhvbmUgaW5wdXQgbWV0aG9kc1xuICAgIHBhcnNlUGhvbmVOdW1iZXIoKTogdm9pZCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnBob25lVGV4dCA9IHRoaXMucGhvbmUgfHwgJyc7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnBob25lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY291bnRyeUZyb21MaXN0ID0gdGhpcy5jb3VudHJ5TGlzdC5maW5kKGNvdW50cnkgPT4gXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGhvbmUuc3RhcnRzV2l0aChjb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZSkgfHwgXG4gICAgICAgICAgICAgICAgICAgIGArJHt0aGlzLnBob25lfWAuc3RhcnRzV2l0aChjb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmIChjb3VudHJ5RnJvbUxpc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSBjb3VudHJ5RnJvbUxpc3QgfHwgdGhpcy5jdXN0b21Db3VudHJ5O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwaG9uZU51bWJlclV0aWwgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkUGhvbmUgPSBwaG9uZU51bWJlclV0aWwucGFyc2UodGhpcy5waG9uZSB8fCBcIlwiLCAnVVMnKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5waG9uZVRleHQuc3RhcnRzV2l0aCgnKycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5waG9uZVRleHQgPSB0aGlzLnBob25lVGV4dC5yZXBsYWNlKGArJHtwYXJzZWRQaG9uZS5nZXRDb3VudHJ5Q29kZSgpfWAsIFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnBob25lVGV4dC5zdGFydHNXaXRoKHBhcnNlZFBob25lLmdldENvdW50cnlDb2RlKCkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5waG9uZVRleHQgPSB0aGlzLnBob25lVGV4dC5yZXBsYWNlKHBhcnNlZFBob25lLmdldENvdW50cnlDb2RlKCksIFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vblBob25lQ2hhbmdlZCgpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY3VzdG9tQ291bnRyeTsgIFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENvdW50cnkgPSB0aGlzLmN1c3RvbUNvdW50cnk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBDYW4ndCBwYXJzZSBwaG9uZTogJHt0aGlzLnBob25lfWAsIGVycik7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY3VzdG9tQ291bnRyeTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBvbkNvdW50cnlDaGFuZ2VkKGNvdW50cnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Bob25lRHJvcGRvd25FeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGNvdW50cnk7XG4gICAgICAgIHRoaXMub25QaG9uZUNoYW5nZWQoKTtcbiAgICB9XG4gICAgXG4gICAgb25QaG9uZUNoYW5nZWQoaW5wdXQ/OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIC8vIGFsbG93ICsgaW4gY3VzdG9tIGNvdW50cnlcbiAgICAgICAgbGV0IGN1c3RvbSA9IGZhbHNlO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZENvdW50cnkgPT09IHRoaXMuY3VzdG9tQ291bnRyeSAmJiB0aGlzLnBob25lVGV4dC5pbmNsdWRlcygnKycpKSB7XG4gICAgICAgICAgICBjdXN0b20gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBjb25zdCBwaG9uZVRleHQgPSAodGhpcy5waG9uZVRleHQgfHwgJycpLnJlcGxhY2UoL1xcRC9nLCAnJyk7XG4gICAgICAgIHRoaXMucGhvbmVUZXh0ID0gY3VzdG9tID8gYCske3Bob25lVGV4dH1gIDogcGhvbmVUZXh0O1xuICAgICAgICBpZiAoaW5wdXQgJiYgaW5wdXQudmFsdWUgIT09IHRoaXMucGhvbmVUZXh0KSB7XG4gICAgICAgICAgICBpbnB1dC52YWx1ZSA9IHRoaXMucGhvbmVUZXh0O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZ1bGxOdW1iZXIgPSBgJHt0aGlzLnNlbGVjdGVkQ291bnRyeS5jb3VudHJ5Q2FsbGluZ0NvZGV9JHt0aGlzLnBob25lVGV4dH1gO1xuICAgICAgICBpZiAodGhpcy5waG9uZSAhPT0gZnVsbE51bWJlcikge1xuICAgICAgICAgICAgdGhpcy5waG9uZUNoYW5nZS5lbWl0KGZ1bGxOdW1iZXIpO1xuICAgICAgICAgICAgLy8gQWxzbyB1cGRhdGUgdGhlIG1haW4gdmFsdWUgZm9yIGZvcm0gaW50ZWdyYXRpb25cbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBmdWxsTnVtYmVyO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwaG9uZU51bWJlclV0aWwgPSBQaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID09PSB0aGlzLmN1c3RvbUNvdW50cnkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsaWRDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHBob25lTnVtYmVyVXRpbC5pc1ZhbGlkTnVtYmVyKHBob25lTnVtYmVyVXRpbC5wYXJzZUFuZEtlZXBSYXdJbnB1dChmdWxsTnVtYmVyKSkpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBoaWRlUGhvbmVEcm9wZG93bigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1Bob25lRHJvcGRvd25FeHBhbmRlZCA9IGZhbHNlO1xuICAgIH1cbiAgICBcbiAgICB0b2dnbGVQaG9uZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNQaG9uZURyb3Bkb3duRXhwYW5kZWQgPSAhdGhpcy5pc1Bob25lRHJvcGRvd25FeHBhbmRlZDtcbiAgICB9XG4gICAgXG4gICAgb25QaG9uZUlucHV0Q2hhbmdlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgdGhpcy5waG9uZVRleHQgPSB0YXJnZXQudmFsdWU7XG4gICAgICAgIHRoaXMub25QaG9uZUNoYW5nZWQodGFyZ2V0KTtcbiAgICB9XG4gICAgXG4gICAgb25MZWFkaW5nSWNvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmxlYWRpbmdJY29uQ2xpY2suZW1pdChldmVudCk7XG4gICAgICAgIFxuICAgICAgICAvLyBGb2N1cyB0aGUgaW5wdXQgd2hlbiBsZWFkaW5nIGljb24gaXMgY2xpY2tlZFxuICAgICAgICB0aGlzLmZvY3VzSW5wdXQoKTtcbiAgICB9XG59IiwiPGRpdiBjbGFzcz1cInplbi1pbnB1dC1jb250YWluZXJcIiBbbmdDbGFzc109XCJpbnB1dENsYXNzZXNcIj5cbiAgICA8IS0tIExhYmVsIC0tPlxuICAgIDxsYWJlbCAqbmdJZj1cInNob3dMYWJlbFwiIFxuICAgICAgICAgICBbZm9yXT1cImlkXCIgXG4gICAgICAgICAgIGNsYXNzPVwiemVuLWlucHV0LWxhYmVsIHRleHQgdGV4dC1zbSB0ZXh0LXdlaWdodC1tZWRpdW1cIlxuICAgICAgICAgICBbbmdDbGFzc109XCJ7J3JlcXVpcmVkJzogcmVxdWlyZWQsICdkaXNhYmxlZCc6IGRpc2FibGVkLCAnZGVzdHJ1Y3RpdmUnOiBkZXN0cnVjdGl2ZX1cIj5cbiAgICAgICAge3sgbGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJyZXF1aXJlZFwiIGNsYXNzPVwicmVxdWlyZWQtaW5kaWNhdG9yXCI+Kjwvc3Bhbj5cbiAgICA8L2xhYmVsPlxuICAgIFxuICAgIDwhLS0gSW5wdXQgd3JhcHBlciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiemVuLWlucHV0LWZpZWxkLXdyYXBwZXJcIiAoY2xpY2spPVwiZm9jdXNJbnB1dCgpXCI+XG4gICAgICAgIFxuICAgICAgICA8IS0tIExlYWRpbmcgaWNvbiAtLT5cbiAgICAgICAgPGkgKm5nSWY9XCJsZWFkaW5nSWNvbiAmJiB2YXJpYW50ID09PSAnZGVmYXVsdCdcIiBcbiAgICAgICAgICAgY2xhc3M9XCJtYXRlcmlhbC1pY29ucyB6ZW4taW5wdXQtbGVhZGluZy1pY29uXCJcbiAgICAgICAgICAgKGNsaWNrKT1cIm9uTGVhZGluZ0ljb25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICB7eyBsZWFkaW5nSWNvbiB9fVxuICAgICAgICA8L2k+XG4gICAgICAgIFxuICAgICAgICA8IS0tIExlYWRpbmcgZHJvcGRvd24gLS0+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ2YXJpYW50ID09PSAnbGVhZGluZy1kcm9wZG93bidcIiBcbiAgICAgICAgICAgICBjbGFzcz1cInplbi1pbnB1dC1sZWFkaW5nLWRyb3Bkb3duXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1kcm9wZG93bi10cmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUxlYWRpbmdEcm9wZG93bigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWxhYmVsXCI+e3sgZ2V0TGVhZGluZ0Ryb3Bkb3duTGFiZWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGRyb3Bkb3duLWljb25cIj5leHBhbmRfbW9yZTwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLWRyb3Bkb3duLW1lbnVcIiBcbiAgICAgICAgICAgICAgICAgKm5nSWY9XCJsZWFkaW5nRHJvcGRvd25PcGVuXCJcbiAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydvcGVuJzogbGVhZGluZ0Ryb3Bkb3duT3Blbn1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgbGVhZGluZ0Ryb3Bkb3duT3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiemVuLWRyb3Bkb3duLW9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJzogb3B0aW9uLnZhbHVlID09PSBsZWFkaW5nRHJvcGRvd25WYWx1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTGVhZGluZ0Ryb3Bkb3duQ2hhbmdlKG9wdGlvbi52YWx1ZSk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm9wdGlvbi5pY29uXCIgY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBvcHRpb24taWNvblwiPnt7IG9wdGlvbi5pY29uIH19PC9pPlxuICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gTGVhZGluZyB0ZXh0IC0tPlxuICAgICAgICA8c3BhbiAqbmdJZj1cInZhcmlhbnQgPT09ICdsZWFkaW5nLXRleHQnXCIgXG4gICAgICAgICAgICAgIGNsYXNzPVwiemVuLWlucHV0LWxlYWRpbmctdGV4dCB0ZXh0IHRleHQtbWQgdGV4dC13ZWlnaHQtcmVndWxhclwiPlxuICAgICAgICAgICAge3sgbGVhZGluZ1RleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBQYXltZW50IGNhcmQgaWNvbiAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZhcmlhbnQgPT09ICdwYXltZW50J1wiIFxuICAgICAgICAgICAgIGNsYXNzPVwiemVuLXBheW1lbnQtY2FyZC1pY29uXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGNhcmQtaWNvblwiPnBheW1lbnQ8L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPCEtLSBJbnB1dCBjb250ZW50IGJhc2VkIG9uIHR5cGUgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAndGVsJzsgZWxzZSBkZWZhdWx0SW5wdXRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBob25lSW5wdXRUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gRGVmYXVsdCBpbnB1dCB0ZW1wbGF0ZSAtLT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SW5wdXRUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxpbnB1dCAjaW5wdXRFbGVtZW50XG4gICAgICAgICAgICAgICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgICAgICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgIFthdHRyLm1pbmxlbmd0aF09XCJtaW5MZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxuICAgICAgICAgICAgICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1pbnB1dC1maWVsZCB0ZXh0IHRleHQtbWQgdGV4dC13ZWlnaHQtcmVndWxhclwiXG4gICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd6ZW4tcGF5bWVudC1maWVsZCc6IHZhcmlhbnQgPT09ICdwYXltZW50J31cIlxuICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgIChmb2N1cyk9XCJvbklucHV0Rm9jdXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgKGJsdXIpPVwib25JbnB1dEJsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJvbktleXVwKCRldmVudClcIiAvPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBUcmFpbGluZyBlbGVtZW50cyBjb250YWluZXIgLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4taW5wdXQtdHJhaWxpbmctY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8IS0tIENoYXJhY3RlciBjb3VudGVyIC0tPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzaG93Q2hhcmFjdGVyQ291bnQgJiYgIWhlbHBJY29uICYmIHZhcmlhbnQgPT09ICdkZWZhdWx0J1wiIFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ6ZW4tY2hhcmFjdGVyLWNvdW50IHRleHQgdGV4dC1zbSB0ZXh0LXdlaWdodC1yZWd1bGFyXCI+XG4gICAgICAgICAgICAgICAge3sgY2hhcmFjdGVyQ291bnQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBIZWxwIGljb24gLS0+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGVscEljb24gJiYgdmFyaWFudCAhPT0gJ3RyYWlsaW5nLWRyb3Bkb3duJ1wiIFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ6ZW4taGVscC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSGVscEljb25DbGljaygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+aGVscF9vdXRsaW5lPC9pPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gSGVscCB0b29sdGlwIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4taGVscC10b29sdGlwXCIgXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIZWxwVG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGhlbHBUb29sdGlwIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1hcnJvd1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gVHJhaWxpbmcgZHJvcGRvd24gLS0+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmFyaWFudCA9PT0gJ3RyYWlsaW5nLWRyb3Bkb3duJ1wiIFxuICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1pbnB1dC10cmFpbGluZy1kcm9wZG93blwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1kcm9wZG93bi10cmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVHJhaWxpbmdEcm9wZG93bigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGdldFRyYWlsaW5nRHJvcGRvd25MYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGRyb3Bkb3duLWljb25cIj5leHBhbmRfbW9yZTwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLWRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiIFxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0cmFpbGluZ0Ryb3Bkb3duT3BlblwiXG4gICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J29wZW4nOiB0cmFpbGluZ0Ryb3Bkb3duT3Blbn1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHRyYWlsaW5nRHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1kcm9wZG93bi1vcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBvcHRpb24udmFsdWUgPT09IHRyYWlsaW5nRHJvcGRvd25WYWx1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRyYWlsaW5nRHJvcGRvd25DaGFuZ2Uob3B0aW9uLnZhbHVlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm9wdGlvbi5pY29uXCIgY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBvcHRpb24taWNvblwiPnt7IG9wdGlvbi5pY29uIH19PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDwhLS0gSGludCB0ZXh0IC8gRXJyb3IgbWVzc2FnZSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0hpbnRUZXh0XCIgXG4gICAgICAgICBjbGFzcz1cInplbi1pbnB1dC1oaW50IHRleHQgdGV4dC1zbSB0ZXh0LXdlaWdodC1yZWd1bGFyXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGVzdHJ1Y3RpdmUnOiBkZXN0cnVjdGl2ZX1cIj5cbiAgICAgICAgPGkgKm5nSWY9XCJkZXN0cnVjdGl2ZVwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgaGludC1pY29uXCI+ZXJyb3Jfb3V0bGluZTwvaT5cbiAgICAgICAge3sgZGlzcGxheUhpbnRUZXh0IHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPCEtLSBQaG9uZSBDb3VudHJ5IERyb3Bkb3duIChmb3IgdGVsIHR5cGUpIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAndGVsJyAmJiBpc1Bob25lRHJvcGRvd25FeHBhbmRlZFwiIFxuICAgICAgICAgY2xhc3M9XCJ6ZW4tcGhvbmUtZHJvcGRvd24tbWVudVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXBob25lLWRyb3Bkb3duLWxpc3RcIj5cbiAgICAgICAgICAgIDwhLS0gQ291bnRyaWVzIExpc3QgLS0+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1waG9uZS1kcm9wZG93bi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvdW50cnkgb2YgY291bnRyeUxpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNlbGVjdGVkQ291bnRyeS5jb3VudHJ5TmFtZSA9PT0gY291bnRyeS5jb3VudHJ5TmFtZX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5Q2hhbmdlZChjb3VudHJ5KVwiPlxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY291bnRyeS5mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiY291bnRyeS5jb3VudHJ5TmFtZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiemVuLXBob25lLWNvdW50cnktbmFtZVwiPnt7IGNvdW50cnkuY291bnRyeU5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1jb2RlXCI+e3sgY291bnRyeS5jb3VudHJ5Q2FsbGluZ0NvZGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPCEtLSBDdXN0b20gQ291bnRyeSAtLT5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiemVuLXBob25lLWRyb3Bkb3duLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNlbGVjdGVkQ291bnRyeS5jb3VudHJ5TmFtZSA9PT0gY3VzdG9tQ291bnRyeS5jb3VudHJ5TmFtZX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5Q2hhbmdlZChjdXN0b21Db3VudHJ5KVwiPlxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY3VzdG9tQ291bnRyeS5mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiY3VzdG9tQ291bnRyeS5jb3VudHJ5TmFtZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiemVuLXBob25lLWNvdW50cnktbmFtZVwiPnt7IGN1c3RvbUNvdW50cnkuY291bnRyeU5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1jb2RlXCI+e3sgY3VzdG9tQ291bnRyeS5jb3VudHJ5Q2FsbGluZ0NvZGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBQaG9uZSBJbnB1dCBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjcGhvbmVJbnB1dFRlbXBsYXRlPlxuICAgIDwhLS0gUGhvbmUgY291bnRyeSBzZWxlY3RvciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiemVuLXBob25lLWNvdW50cnktc2VsZWN0XCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1mbGFnXCJcbiAgICAgICAgICAgICBbc3JjXT1cInNlbGVjdGVkQ291bnRyeS5mbGFnXCJcbiAgICAgICAgICAgICBbYWx0XT1cInNlbGVjdGVkQ291bnRyeS5jb3VudHJ5TmFtZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInplbi1waG9uZS1jb2RlXCI+e3sgc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZSB9fTwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1waG9uZS1kcm9wZG93bi1idG5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBob25lRHJvcGRvd24oKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHplbi1waG9uZS1leHBhbmQtaWNvblwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzUGhvbmVEcm9wZG93bkV4cGFuZGVkfVwiPmV4cGFuZF9tb3JlPC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIFBob25lIGlucHV0IGZpZWxkIC0tPlxuICAgIDxpbnB1dCAjaW5wdXRFbGVtZW50XG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgIFt2YWx1ZV09XCJwaG9uZVRleHRcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwicGhvbmVNYXhMZW5ndGhcIlxuICAgICAgICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoXCJcbiAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICAgICBjbGFzcz1cInplbi1pbnB1dC1maWVsZCB0ZXh0IHRleHQtbWQgdGV4dC13ZWlnaHQtcmVndWxhclwiXG4gICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAoa2V5dXApPVwib25LZXl1cCgkZXZlbnQpXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gQ2xpY2sgb3V0c2lkZSBoYW5kbGVyIGZvciBkcm9wZG93bnMgLS0+XG48ZGl2ICpuZ0lmPVwibGVhZGluZ0Ryb3Bkb3duT3BlbiB8fCB0cmFpbGluZ0Ryb3Bkb3duT3BlbiB8fCBpc1Bob25lRHJvcGRvd25FeHBhbmRlZFwiIFxuICAgICBjbGFzcz1cInplbi1kcm9wZG93bi1iYWNrZHJvcFwiIFxuICAgICAoY2xpY2spPVwiY2xvc2VEcm9wZG93bnMoKTsgaGlkZVBob25lRHJvcGRvd24oKVwiPjwvZGl2PiJdfQ==
|
|
563
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemVuZHUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctemVuZHVpdC9zcmMvbGliL2lucHV0L3plbmR1LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXplbmR1aXQvc3JjL2xpYi9pbnB1dC96ZW5kdS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLFVBQVUsRUFDVixTQUFTLEVBS1QsV0FBVyxFQUNkLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFvQnhELE1BQU0sT0FBTyxtQkFBbUI7SUFaaEM7UUFnQkk7O1dBRUc7UUFDTSxTQUFJLEdBQXdFLE1BQU0sQ0FBQztRQUU1Rjs7V0FFRztRQUNNLFlBQU8sR0FBd0gsU0FBUyxDQUFDO1FBRWxKOztXQUVHO1FBQ00sZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUI7O1dBRUc7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXBCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUV2Qjs7V0FFRztRQUNNLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRTFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7V0FFRztRQUNNLGdCQUFXLEdBQUcsbUJBQW1CLENBQUM7UUFFM0M7O1dBRUc7UUFDTSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUU3Qjs7V0FFRztRQUNNLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRTNCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUUxQjs7V0FF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c0JBQW5CLE1BQU07Z0JBS0csU0FBUztzQkFBbEIsTUFBTTtnQkFLRyxZQUFZO3NCQUFyQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU07Z0JBS0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUtHLDBCQUEwQjtzQkFBbkMsTUFBTTtnQkFLRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBS0csMkJBQTJCO3NCQUFwQyxNQUFNO2dCQUtHLGFBQWE7c0JBQXRCLE1BQU07Z0JBS0csV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLGdCQUFnQjtzQkFBekIsTUFBTTtnQkErQ0gsU0FBUztzQkFEWixXQUFXO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFxuICAgIENvbXBvbmVudCwgXG4gICAgSW5wdXQsIFxuICAgIE91dHB1dCwgXG4gICAgRXZlbnRFbWl0dGVyLCBcbiAgICBmb3J3YXJkUmVmLFxuICAgIFZpZXdDaGlsZCxcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBIb3N0QmluZGluZ1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBob25lTnVtYmVyVXRpbCB9IGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25PcHRpb24ge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgICBpY29uPzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3plbi1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3plbmR1LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi96ZW5kdS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFplbmR1SW5wdXRDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgWmVuZHVJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICAgIFxuICAgIC8qKlxuICAgICAqIElucHV0IHR5cGUgYXR0cmlidXRlXG4gICAgICovXG4gICAgQElucHV0KCkgdHlwZTogJ3RleHQnIHwgJ2VtYWlsJyB8ICdwYXNzd29yZCcgfCAndGVsJyB8ICdudW1iZXInIHwgJ3VybCcgfCAnc2VhcmNoJyA9ICd0ZXh0JztcbiAgICBcbiAgICAvKipcbiAgICAgKiBJbnB1dCB2YXJpYW50IHR5cGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSB2YXJpYW50OiAnZGVmYXVsdCcgfCAnaW5wdXQtZmllbGQnIHwgJ3BheW1lbnQnIHwgJ2xlYWRpbmctZHJvcGRvd24nIHwgJ2xlYWRpbmctdGV4dCcgfCAndHJhaWxpbmctZHJvcGRvd24nIHwgJ3RyYWlsaW5nLXRleHQnID0gJ2RlZmF1bHQnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFBsYWNlaG9sZGVyIHRleHRcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIExhYmVsIHRleHQgKHNob3duIGFib3ZlIGlucHV0KVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgXG4gICAgLyoqXG4gICAgICogSGludCB0ZXh0IChzaG93biBiZWxvdyBpbnB1dClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBoaW50VGV4dCA9ICcnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIExlYWRpbmcgaWNvbiBuYW1lIChNYXRlcmlhbCBJY29ucylcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsZWFkaW5nSWNvbiA9ICcnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFNob3cgaGVscCBpY29uIHdpdGggdG9vbHRpcFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGhlbHBJY29uID0gZmFsc2U7XG4gICAgXG4gICAgLyoqXG4gICAgICogVG9vbHRpcCB0ZXh0IGZvciBoZWxwIGljb25cbiAgICAgKi9cbiAgICBASW5wdXQoKSBoZWxwVG9vbHRpcCA9ICdUaGlzIGlzIGEgdG9vbHRpcCc7XG4gICAgXG4gICAgLyoqXG4gICAgICogRXJyb3IvZGVzdHJ1Y3RpdmUgc3RhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkZXN0cnVjdGl2ZSA9IGZhbHNlO1xuICAgIFxuICAgIC8qKlxuICAgICAqIEVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGVycm9yTWVzc2FnZSA9ICcnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIERpc2FibGVkIHN0YXRlXG4gICAgICovXG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBSZXF1aXJlZCBmaWVsZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gICAgXG4gICAgLyoqXG4gICAgICogTWF4aW11bSBjaGFyYWN0ZXIgbGVuZ3RoXG4gICAgICovXG4gICAgQElucHV0KCkgbWF4TGVuZ3RoOiBudW1iZXI7XG4gICAgXG4gICAgLyoqXG4gICAgICogTWluaW11bSBjaGFyYWN0ZXIgbGVuZ3RoXG4gICAgICovXG4gICAgQElucHV0KCkgbWluTGVuZ3RoOiBudW1iZXI7XG4gICAgXG4gICAgLyoqXG4gICAgICogUGF0dGVybiBmb3IgdmFsaWRhdGlvblxuICAgICAqL1xuICAgIEBJbnB1dCgpIHBhdHRlcm46IHN0cmluZztcbiAgICBcbiAgICAvKipcbiAgICAgKiBBdXRvY29tcGxldGUgYXR0cmlidXRlXG4gICAgICovXG4gICAgQElucHV0KCkgYXV0b2NvbXBsZXRlID0gJ29mZic7XG4gICAgXG4gICAgLyoqXG4gICAgICogTmFtZSBhdHRyaWJ1dGVcbiAgICAgKi9cbiAgICBASW5wdXQoKSBuYW1lID0gJyc7XG4gICAgXG4gICAgLyoqXG4gICAgICogSUQgYXR0cmlidXRlXG4gICAgICovXG4gICAgQElucHV0KCkgaWQgPSAnJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBMZWFkaW5nIGRyb3Bkb3duIG9wdGlvbnNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBsZWFkaW5nRHJvcGRvd25PcHRpb25zOiBEcm9wZG93bk9wdGlvbltdID0gW107XG4gICAgXG4gICAgLyoqXG4gICAgICogU2VsZWN0ZWQgbGVhZGluZyBkcm9wZG93biB2YWx1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIGxlYWRpbmdEcm9wZG93blZhbHVlOiBzdHJpbmcgfCBudW1iZXIgPSAnJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBMZWFkaW5nIGRyb3Bkb3duIHBsYWNlaG9sZGVyXG4gICAgICovXG4gICAgQElucHV0KCkgbGVhZGluZ0Ryb3Bkb3duUGxhY2Vob2xkZXIgPSAnU2VsZWN0JztcbiAgICBcbiAgICAvKipcbiAgICAgKiBUcmFpbGluZyBkcm9wZG93biBvcHRpb25zXG4gICAgICovXG4gICAgQElucHV0KCkgdHJhaWxpbmdEcm9wZG93bk9wdGlvbnM6IERyb3Bkb3duT3B0aW9uW10gPSBbXTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBTZWxlY3RlZCB0cmFpbGluZyBkcm9wZG93biB2YWx1ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHRyYWlsaW5nRHJvcGRvd25WYWx1ZTogc3RyaW5nIHwgbnVtYmVyID0gJyc7XG4gICAgXG4gICAgLyoqXG4gICAgICogVHJhaWxpbmcgZHJvcGRvd24gcGxhY2Vob2xkZXJcbiAgICAgKi9cbiAgICBASW5wdXQoKSB0cmFpbGluZ0Ryb3Bkb3duUGxhY2Vob2xkZXIgPSAnU2VsZWN0JztcbiAgICBcbiAgICAvKipcbiAgICAgKiBMZWFkaW5nIHN0YXRpYyB0ZXh0XG4gICAgICovXG4gICAgQElucHV0KCkgbGVhZGluZ1RleHQgPSAnJztcblxuICAgIC8qKlxuICAgICAqIFRyYWlsaW5nIHN0YXRpYyB0ZXh0XG4gICAgICovXG4gICAgQElucHV0KCkgdHJhaWxpbmdUZXh0ID0gJyc7XG4gICAgXG4gICAgLyoqXG4gICAgICogSW5wdXQgc2l6ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpIHNpemU6ICdzbScgfCAnbWQnID0gJ21kJztcbiAgICBcbiAgICAvKipcbiAgICAgKiBTaG93IGNoYXJhY3RlciBjb3VudGVyXG4gICAgICovXG4gICAgQElucHV0KCkgc2hvd0NoYXJhY3RlckNvdW50ID0gZmFsc2U7XG4gICAgXG4gICAgLyoqXG4gICAgICogUGhvbmUgaW5wdXQgbWF4aW11bSBsZW5ndGhcbiAgICAgKi9cbiAgICBASW5wdXQoKSBwaG9uZU1heExlbmd0aDogbnVtYmVyID0gMTM7XG4gICAgXG4gICAgLyoqXG4gICAgICogUGhvbmUgbnVtYmVyIHZhbHVlIChmb3IgdGVsIHR5cGUpXG4gICAgICovXG4gICAgQElucHV0KCkgcGhvbmU6IHN0cmluZyA9ICcnO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFdpZHRoIGZvciBwaG9uZSBpbnB1dFxuICAgICAqL1xuICAgIEBJbnB1dCgpIHdpZHRoOiBzdHJpbmc7XG4gICAgXG4gICAgLyoqXG4gICAgICogVmFsdWUgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogRm9jdXMgZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgaW5wdXRGb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBCbHVyIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIGlucHV0Qmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8Rm9jdXNFdmVudD4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBLZXlkb3duIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIGlucHV0S2V5ZG93biA9IG5ldyBFdmVudEVtaXR0ZXI8S2V5Ym9hcmRFdmVudD4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBLZXl1cCBldmVudFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBpbnB1dEtleXVwID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuICAgIFxuICAgIC8qKlxuICAgICAqIExlYWRpbmcgZHJvcGRvd24gY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIGxlYWRpbmdEcm9wZG93bkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVtYmVyPigpO1xuICAgIFxuICAgIC8qKlxuICAgICAqIExlYWRpbmcgZHJvcGRvd24gdmFsdWUgY2hhbmdlIGV2ZW50IChmb3IgdHdvLXdheSBiaW5kaW5nKVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSBsZWFkaW5nRHJvcGRvd25WYWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVtYmVyPigpO1xuICAgIFxuICAgIC8qKlxuICAgICAqIFRyYWlsaW5nIGRyb3Bkb3duIGNoYW5nZSBldmVudFxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0cmFpbGluZ0Ryb3Bkb3duQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudW1iZXI+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogVHJhaWxpbmcgZHJvcGRvd24gdmFsdWUgY2hhbmdlIGV2ZW50IChmb3IgdHdvLXdheSBiaW5kaW5nKVxuICAgICAqL1xuICAgIEBPdXRwdXQoKSB0cmFpbGluZ0Ryb3Bkb3duVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bWJlcj4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBIZWxwIGljb24gY2xpY2sgZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgaGVscEljb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBQaG9uZSBjaGFuZ2UgZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcGhvbmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgICBcbiAgICAvKipcbiAgICAgKiBQaG9uZSB2YWxpZCBjaGFuZ2UgZXZlbnRcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdmFsaWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgXG4gICAgLyoqXG4gICAgICogTGVhZGluZyBpY29uIGNsaWNrIGV2ZW50XG4gICAgICovXG4gICAgQE91dHB1dCgpIGxlYWRpbmdJY29uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG4gICAgXG4gICAgLy8gSW50ZXJuYWwgcHJvcGVydGllc1xuICAgIHB1YmxpYyB2YWx1ZSA9ICcnO1xuICAgIHB1YmxpYyBpc0ZvY3VzZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgc2hvd0hlbHBUb29sdGlwID0gZmFsc2U7XG4gICAgcHVibGljIGxlYWRpbmdEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICBwdWJsaWMgdHJhaWxpbmdEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICBcbiAgICAvLyBQaG9uZSBpbnB1dCBwcm9wZXJ0aWVzXG4gICAgcHVibGljIHBob25lVGV4dCA9ICcnO1xuICAgIHB1YmxpYyBjb3VudHJ5TGlzdDogeyBjb3VudHJ5Q29kZTogc3RyaW5nLCBjb3VudHJ5TmFtZTogc3RyaW5nLCBjb3VudHJ5Q2FsbGluZ0NvZGU6IHN0cmluZywgZmxhZzogc3RyaW5nIH1bXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgY291bnRyeUNvZGU6IFwiVVNcIixcbiAgICAgICAgICAgIGNvdW50cnlOYW1lOiBcIkFtZXJpY2FcIixcbiAgICAgICAgICAgIGNvdW50cnlDYWxsaW5nQ29kZTogXCIrMVwiLFxuICAgICAgICAgICAgZmxhZzogXCJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vemVuZHVpdC1pY29ucy9GbGFncy9VU0Euc3ZnXCJcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgY291bnRyeUNvZGU6IFwiQ0FcIixcbiAgICAgICAgICAgIGNvdW50cnlOYW1lOiBcIkNhbmFkYVwiLFxuICAgICAgICAgICAgY291bnRyeUNhbGxpbmdDb2RlOiBcIisxXCIsXG4gICAgICAgICAgICBmbGFnOiBcImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS96ZW5kdWl0LWljb25zL0ZsYWdzL0NhbmFkYS5zdmdcIlxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBjb3VudHJ5Q29kZTogXCJNWFwiLFxuICAgICAgICAgICAgY291bnRyeU5hbWU6IFwiTWV4aWNvXCIsXG4gICAgICAgICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiKzUyXCIsXG4gICAgICAgICAgICBmbGFnOiBcImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS96ZW5kdWl0LWljb25zL0ZsYWdzL01leGljby5zdmdcIlxuICAgICAgICB9XG4gICAgXTtcbiAgICBcbiAgICBwdWJsaWMgY3VzdG9tQ291bnRyeSA9IHtcbiAgICAgICAgY291bnRyeUNvZGU6IFwiXCIsXG4gICAgICAgIGNvdW50cnlOYW1lOiBcIkN1c3RvbVwiLFxuICAgICAgICBjb3VudHJ5Q2FsbGluZ0NvZGU6IFwiXCIsXG4gICAgICAgIGZsYWc6IFwiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbmR1aXQtaWNvbnMvRmxhZ3MvQ3VzdG9tLnN2Z1wiXG4gICAgfTtcbiAgICBcbiAgICBwdWJsaWMgc2VsZWN0ZWRDb3VudHJ5OiB7IGNvdW50cnlDb2RlOiBzdHJpbmcsIGNvdW50cnlOYW1lOiBzdHJpbmcsIGNvdW50cnlDYWxsaW5nQ29kZTogc3RyaW5nLCBmbGFnOiBzdHJpbmcgfTtcbiAgICBwdWJsaWMgaXNQaG9uZURyb3Bkb3duRXhwYW5kZWQgPSBmYWxzZTtcbiAgICBcbiAgICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvblxuICAgIHByaXZhdGUgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4ge307XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcbiAgICBcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLnplbi1pbnB1dC13cmFwcGVyJylcbiAgICBnZXQgaG9zdENsYXNzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIFNldCBkZWZhdWx0IElEIGlmIG5vdCBwcm92aWRlZFxuICAgICAgICBpZiAoIXRoaXMuaWQpIHtcbiAgICAgICAgICAgIHRoaXMuaWQgPSBgemVuLWlucHV0LSR7TWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc3Vic3RyKDIsIDkpfWA7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIC8vIEluaXRpYWxpemUgcGhvbmUgaW5wdXQgaWYgdHlwZSBpcyB0ZWxcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RlbCcpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jb3VudHJ5TGlzdFsxXTsgLy8gRGVmYXVsdCB0byBDYW5hZGFcbiAgICAgICAgICAgIHRoaXMucGFyc2VQaG9uZU51bWJlcigpO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoYW5nZXNbXCJwaG9uZVwiXSAmJiB0aGlzLnR5cGUgPT09ICd0ZWwnICYmICghdGhpcy5zZWxlY3RlZENvdW50cnkgfHwgIXRoaXMuc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlDb2RlKSkge1xuICAgICAgICAgICAgdGhpcy5wYXJzZVBob25lTnVtYmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgbWV0aG9kc1xuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWUgfHwgJyc7XG4gICAgfVxuICAgIFxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG4gICAgXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG4gICAgXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cbiAgICBcbiAgICAvLyBFdmVudCBoYW5kbGVyc1xuICAgIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RlbCcpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBwaG9uZSBpbnB1dFxuICAgICAgICAgICAgdGhpcy5waG9uZVRleHQgPSB0YXJnZXQudmFsdWU7XG4gICAgICAgICAgICB0aGlzLm9uUGhvbmVDaGFuZ2VkKHRhcmdldCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgcmVndWxhciBpbnB1dFxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRhcmdldC52YWx1ZTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgb25JbnB1dEZvY3VzKGV2ZW50OiBGb2N1c0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNGb2N1c2VkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5pbnB1dEZvY3VzLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgICBcbiAgICBvbklucHV0Qmx1cihldmVudDogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRm9jdXNlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlucHV0Qmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG4gICAgXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRLZXlkb3duLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgICBcbiAgICBvbktleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRLZXl1cC5lbWl0KGV2ZW50KTtcbiAgICB9XG4gICAgXG4gICAgb25MZWFkaW5nRHJvcGRvd25DaGFuZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLmxlYWRpbmdEcm9wZG93blZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMubGVhZGluZ0Ryb3Bkb3duQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB0aGlzLmxlYWRpbmdEcm9wZG93blZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB0aGlzLmxlYWRpbmdEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgb25UcmFpbGluZ0Ryb3Bkb3duQ2hhbmdlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy50cmFpbGluZ0Ryb3Bkb3duVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy50cmFpbGluZ0Ryb3Bkb3duQ2hhbmdlLmVtaXQodmFsdWUpO1xuICAgICAgICB0aGlzLnRyYWlsaW5nRHJvcGRvd25WYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICAgICAgdGhpcy50cmFpbGluZ0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIH1cbiAgICBcbiAgICB0b2dnbGVMZWFkaW5nRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5sZWFkaW5nRHJvcGRvd25PcGVuID0gIXRoaXMubGVhZGluZ0Ryb3Bkb3duT3BlbjtcbiAgICAgICAgICAgIHRoaXMudHJhaWxpbmdEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICB0b2dnbGVUcmFpbGluZ0Ryb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMudHJhaWxpbmdEcm9wZG93bk9wZW4gPSAhdGhpcy50cmFpbGluZ0Ryb3Bkb3duT3BlbjtcbiAgICAgICAgICAgIHRoaXMubGVhZGluZ0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIG9uSGVscEljb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dIZWxwVG9vbHRpcCA9ICF0aGlzLnNob3dIZWxwVG9vbHRpcDtcbiAgICAgICAgdGhpcy5oZWxwSWNvbkNsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgICBcbiAgICBjbG9zZURyb3Bkb3ducygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sZWFkaW5nRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMudHJhaWxpbmdEcm9wZG93bk9wZW4gPSBmYWxzZTtcbiAgICB9XG4gICAgXG4gICAgZ2V0IGhhc1ZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZSAhPT0gJycgJiYgdGhpcy52YWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIFxuICAgIGdldCBzaG93TGFiZWwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubGFiZWw7XG4gICAgfVxuICAgIFxuICAgIGdldCBzaG93SGludFRleHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuaGludFRleHQgfHwgKHRoaXMuZGVzdHJ1Y3RpdmUgJiYgISF0aGlzLmVycm9yTWVzc2FnZSk7XG4gICAgfVxuICAgIFxuICAgIGdldCBkaXNwbGF5SGludFRleHQoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMuZGVzdHJ1Y3RpdmUgJiYgdGhpcy5lcnJvck1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmVycm9yTWVzc2FnZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5oaW50VGV4dDtcbiAgICB9XG4gICAgXG4gICAgZ2V0IGNoYXJhY3RlckNvdW50KCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMZW5ndGggPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZS5sZW5ndGggOiAwO1xuICAgICAgICBpZiAodGhpcy5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtjdXJyZW50TGVuZ3RofS8ke3RoaXMubWF4TGVuZ3RofWA7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke2N1cnJlbnRMZW5ndGh9YDtcbiAgICB9XG4gICAgXG4gICAgZ2V0IGlucHV0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjbGFzc2VzID0gWyd6ZW4taW5wdXQtY29udGFpbmVyJ107XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy5pc0ZvY3VzZWQpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZm9jdXNlZCcpO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy5oYXNWYWx1ZSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdmaWxsZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZGlzYWJsZWQnKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuZGVzdHJ1Y3RpdmUpIHtcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnZGVzdHJ1Y3RpdmUnKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuc2l6ZSkge1xuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKGBzaXplLSR7dGhpcy5zaXplfWApO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAodGhpcy52YXJpYW50KSB7XG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goYHZhcmlhbnQtJHt0aGlzLnZhcmlhbnR9YCk7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIHJldHVybiBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgICB9XG4gICAgXG4gICAgZ2V0TGVhZGluZ0Ryb3Bkb3duTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLmxlYWRpbmdEcm9wZG93bk9wdGlvbnMuZmluZChvcHQgPT4gb3B0LnZhbHVlID09PSB0aGlzLmxlYWRpbmdEcm9wZG93blZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdGVkID8gc2VsZWN0ZWQubGFiZWwgOiB0aGlzLmxlYWRpbmdEcm9wZG93blBsYWNlaG9sZGVyO1xuICAgIH1cbiAgICBcbiAgICBnZXRUcmFpbGluZ0Ryb3Bkb3duTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSB0aGlzLnRyYWlsaW5nRHJvcGRvd25PcHRpb25zLmZpbmQob3B0ID0+IG9wdC52YWx1ZSA9PT0gdGhpcy50cmFpbGluZ0Ryb3Bkb3duVmFsdWUpO1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWQgPyBzZWxlY3RlZC5sYWJlbCA6IHRoaXMudHJhaWxpbmdEcm9wZG93blBsYWNlaG9sZGVyO1xuICAgIH1cbiAgICBcbiAgICBmb2N1c0lucHV0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbnB1dEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICAvLyBQaG9uZSBpbnB1dCBtZXRob2RzXG4gICAgcGFyc2VQaG9uZU51bWJlcigpOiB2b2lkIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMucGhvbmVUZXh0ID0gdGhpcy5waG9uZSB8fCAnJztcblxuICAgICAgICAgICAgaWYgKHRoaXMucGhvbmUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb3VudHJ5RnJvbUxpc3QgPSB0aGlzLmNvdW50cnlMaXN0LmZpbmQoY291bnRyeSA9PiBcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5waG9uZS5zdGFydHNXaXRoKGNvdW50cnkuY291bnRyeUNhbGxpbmdDb2RlKSB8fCBcbiAgICAgICAgICAgICAgICAgICAgYCske3RoaXMucGhvbmV9YC5zdGFydHNXaXRoKGNvdW50cnkuY291bnRyeUNhbGxpbmdDb2RlKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKGNvdW50cnlGcm9tTGlzdCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IGNvdW50cnlGcm9tTGlzdCB8fCB0aGlzLmN1c3RvbUNvdW50cnk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBob25lTnVtYmVyVXRpbCA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJzZWRQaG9uZSA9IHBob25lTnVtYmVyVXRpbC5wYXJzZSh0aGlzLnBob25lIHx8IFwiXCIsICdVUycpO1xuICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnBob25lVGV4dC5zdGFydHNXaXRoKCcrJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBob25lVGV4dCA9IHRoaXMucGhvbmVUZXh0LnJlcGxhY2UoYCske3BhcnNlZFBob25lLmdldENvdW50cnlDb2RlKCl9YCwgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGhvbmVUZXh0LnN0YXJ0c1dpdGgocGFyc2VkUGhvbmUuZ2V0Q291bnRyeUNvZGUoKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBob25lVGV4dCA9IHRoaXMucGhvbmVUZXh0LnJlcGxhY2UocGFyc2VkUGhvbmUuZ2V0Q291bnRyeUNvZGUoKSwgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uUGhvbmVDaGFuZ2VkKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jdXN0b21Db3VudHJ5OyAgXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ291bnRyeSA9IHRoaXMuY3VzdG9tQ291bnRyeTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYENhbid0IHBhcnNlIHBob25lOiAke3RoaXMucGhvbmV9YCwgZXJyKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gdGhpcy5jdXN0b21Db3VudHJ5O1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIG9uQ291bnRyeUNoYW5nZWQoY291bnRyeSk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGhvbmVEcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcbiAgICAgICAgdGhpcy5vblBob25lQ2hhbmdlZCgpO1xuICAgIH1cbiAgICBcbiAgICBvblBob25lQ2hhbmdlZChpbnB1dD86IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gYWxsb3cgKyBpbiBjdXN0b20gY291bnRyeVxuICAgICAgICBsZXQgY3VzdG9tID0gZmFsc2U7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ291bnRyeSA9PT0gdGhpcy5jdXN0b21Db3VudHJ5ICYmIHRoaXMucGhvbmVUZXh0LmluY2x1ZGVzKCcrJykpIHtcbiAgICAgICAgICAgIGN1c3RvbSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHBob25lVGV4dCA9ICh0aGlzLnBob25lVGV4dCB8fCAnJykucmVwbGFjZSgvXFxEL2csICcnKTtcbiAgICAgICAgdGhpcy5waG9uZVRleHQgPSBjdXN0b20gPyBgKyR7cGhvbmVUZXh0fWAgOiBwaG9uZVRleHQ7XG4gICAgICAgIGlmIChpbnB1dCAmJiBpbnB1dC52YWx1ZSAhPT0gdGhpcy5waG9uZVRleHQpIHtcbiAgICAgICAgICAgIGlucHV0LnZhbHVlID0gdGhpcy5waG9uZVRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZnVsbE51bWJlciA9IGAke3RoaXMuc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZX0ke3RoaXMucGhvbmVUZXh0fWA7XG4gICAgICAgIGlmICh0aGlzLnBob25lICE9PSBmdWxsTnVtYmVyKSB7XG4gICAgICAgICAgICB0aGlzLnBob25lQ2hhbmdlLmVtaXQoZnVsbE51bWJlcik7XG4gICAgICAgICAgICAvLyBBbHNvIHVwZGF0ZSB0aGUgbWFpbiB2YWx1ZSBmb3IgZm9ybSBpbnRlZ3JhdGlvblxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IGZ1bGxOdW1iZXI7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBob25lTnVtYmVyVXRpbCA9IFBob25lTnVtYmVyVXRpbC5nZXRJbnN0YW5jZSgpO1xuICAgICAgICBpZiAodGhpcy5zZWxlY3RlZENvdW50cnkgPT09IHRoaXMuY3VzdG9tQ291bnRyeSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZENoYW5nZS5lbWl0KHRydWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkQ2hhbmdlLmVtaXQocGhvbmVOdW1iZXJVdGlsLmlzVmFsaWROdW1iZXIocGhvbmVOdW1iZXJVdGlsLnBhcnNlQW5kS2VlcFJhd0lucHV0KGZ1bGxOdW1iZXIpKSk7XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbGlkQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIGhpZGVQaG9uZURyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzUGhvbmVEcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gICAgfVxuICAgIFxuICAgIHRvZ2dsZVBob25lRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1Bob25lRHJvcGRvd25FeHBhbmRlZCA9ICF0aGlzLmlzUGhvbmVEcm9wZG93bkV4cGFuZGVkO1xuICAgIH1cbiAgICBcbiAgICBvblBob25lSW5wdXRDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgICAgICB0aGlzLnBob25lVGV4dCA9IHRhcmdldC52YWx1ZTtcbiAgICAgICAgdGhpcy5vblBob25lQ2hhbmdlZCh0YXJnZXQpO1xuICAgIH1cbiAgICBcbiAgICBvbkxlYWRpbmdJY29uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMubGVhZGluZ0ljb25DbGljay5lbWl0KGV2ZW50KTtcbiAgICAgICAgXG4gICAgICAgIC8vIEZvY3VzIHRoZSBpbnB1dCB3aGVuIGxlYWRpbmcgaWNvbiBpcyBjbGlja2VkXG4gICAgICAgIHRoaXMuZm9jdXNJbnB1dCgpO1xuICAgIH1cbn0iLCI8ZGl2IGNsYXNzPVwiemVuLWlucHV0LWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImlucHV0Q2xhc3Nlc1wiPlxuICAgIDwhLS0gTGFiZWwgLS0+XG4gICAgPGxhYmVsICpuZ0lmPVwic2hvd0xhYmVsXCIgXG4gICAgICAgICAgIFtmb3JdPVwiaWRcIiBcbiAgICAgICAgICAgY2xhc3M9XCJ6ZW4taW5wdXQtbGFiZWwgdGV4dCB0ZXh0LXNtIHRleHQtd2VpZ2h0LW1lZGl1bVwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmVxdWlyZWQnOiByZXF1aXJlZCwgJ2Rpc2FibGVkJzogZGlzYWJsZWQsICdkZXN0cnVjdGl2ZSc6IGRlc3RydWN0aXZlfVwiPlxuICAgICAgICB7eyBsYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cInJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZC1pbmRpY2F0b3JcIj4qPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gICAgXG4gICAgPCEtLSBJbnB1dCB3cmFwcGVyIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJ6ZW4taW5wdXQtZmllbGQtd3JhcHBlclwiIChjbGljayk9XCJmb2N1c0lucHV0KClcIj5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gTGVhZGluZyBpY29uIC0tPlxuICAgICAgICA8aSAqbmdJZj1cImxlYWRpbmdJY29uICYmIHZhcmlhbnQgPT09ICdkZWZhdWx0J1wiIFxuICAgICAgICAgICBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHplbi1pbnB1dC1sZWFkaW5nLWljb25cIlxuICAgICAgICAgICAoY2xpY2spPVwib25MZWFkaW5nSWNvbkNsaWNrKCRldmVudClcIj5cbiAgICAgICAgICAgIHt7IGxlYWRpbmdJY29uIH19XG4gICAgICAgIDwvaT5cbiAgICAgICAgXG4gICAgICAgIDwhLS0gTGVhZGluZyBkcm9wZG93biAtLT5cbiAgICAgICAgPGRpdiAqbmdJZj1cInZhcmlhbnQgPT09ICdsZWFkaW5nLWRyb3Bkb3duJ1wiIFxuICAgICAgICAgICAgIGNsYXNzPVwiemVuLWlucHV0LWxlYWRpbmctZHJvcGRvd25cIj5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiemVuLWRyb3Bkb3duLXRyaWdnZXJcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTGVhZGluZ0Ryb3Bkb3duKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZHJvcGRvd24tbGFiZWxcIj57eyBnZXRMZWFkaW5nRHJvcGRvd25MYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgZHJvcGRvd24taWNvblwiPmV4cGFuZF9tb3JlPC9pPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4tZHJvcGRvd24tbWVudVwiIFxuICAgICAgICAgICAgICAgICAqbmdJZj1cImxlYWRpbmdEcm9wZG93bk9wZW5cIlxuICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J29wZW4nOiBsZWFkaW5nRHJvcGRvd25PcGVufVwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBsZWFkaW5nRHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ6ZW4tZHJvcGRvd24tb3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBvcHRpb24udmFsdWUgPT09IGxlYWRpbmdEcm9wZG93blZhbHVlfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25MZWFkaW5nRHJvcGRvd25DaGFuZ2Uob3B0aW9uLnZhbHVlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwib3B0aW9uLmljb25cIiBjbGFzcz1cIm1hdGVyaWFsLWljb25zIG9wdGlvbi1pY29uXCI+e3sgb3B0aW9uLmljb24gfX08L2k+XG4gICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBcbiAgICAgICAgPCEtLSBMZWFkaW5nIHRleHQgLS0+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwidmFyaWFudCA9PT0gJ2xlYWRpbmctdGV4dCdcIiBcbiAgICAgICAgICAgICAgY2xhc3M9XCJ6ZW4taW5wdXQtbGVhZGluZy10ZXh0IHRleHQgdGV4dC1tZCB0ZXh0LXdlaWdodC1yZWd1bGFyXCI+XG4gICAgICAgICAgICB7eyBsZWFkaW5nVGV4dCB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIFxuICAgICAgICA8IS0tIFBheW1lbnQgY2FyZCBpY29uIC0tPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwidmFyaWFudCA9PT0gJ3BheW1lbnQnXCIgXG4gICAgICAgICAgICAgY2xhc3M9XCJ6ZW4tcGF5bWVudC1jYXJkLWljb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMgY2FyZC1pY29uXCI+cGF5bWVudDwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIFxuICAgICAgICA8IS0tIElucHV0IGNvbnRlbnQgYmFzZWQgb24gdHlwZSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInR5cGUgPT09ICd0ZWwnOyBlbHNlIGRlZmF1bHRJbnB1dFRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGhvbmVJbnB1dFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICBcbiAgICAgICAgPCEtLSBEZWZhdWx0IGlucHV0IHRlbXBsYXRlIC0tPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRJbnB1dFRlbXBsYXRlPlxuICAgICAgICAgICAgPGlucHV0ICNpbnB1dEVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgICAgICAgICBbaWRdPVwiaWRcIlxuICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbkxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwicGF0dGVyblwiXG4gICAgICAgICAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiemVuLWlucHV0LWZpZWxkIHRleHQgdGV4dC1tZCB0ZXh0LXdlaWdodC1yZWd1bGFyXCJcbiAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3plbi1wYXltZW50LWZpZWxkJzogdmFyaWFudCA9PT0gJ3BheW1lbnQnfVwiXG4gICAgICAgICAgICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cIm9uSW5wdXRGb2N1cygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleWRvd24oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgKGtleXVwKT1cIm9uS2V5dXAoJGV2ZW50KVwiIC8+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIFxuICAgICAgICA8IS0tIFRyYWlsaW5nIGVsZW1lbnRzIGNvbnRhaW5lciAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInplbi1pbnB1dC10cmFpbGluZy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDwhLS0gVHJhaWxpbmcgdGV4dCAtLT5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidmFyaWFudCA9PT0gJ3RyYWlsaW5nLXRleHQnXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiemVuLWlucHV0LXRyYWlsaW5nLXRleHQgdGV4dCB0ZXh0LW1kIHRleHQtd2VpZ2h0LXJlZ3VsYXJcIj5cbiAgICAgICAgICAgICAgICB7eyB0cmFpbGluZ1RleHQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPCEtLSBDaGFyYWN0ZXIgY291bnRlciAtLT5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd0NoYXJhY3RlckNvdW50ICYmICFoZWxwSWNvbiAmJiB2YXJpYW50ID09PSAnZGVmYXVsdCdcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ6ZW4tY2hhcmFjdGVyLWNvdW50IHRleHQgdGV4dC1zbSB0ZXh0LXdlaWdodC1yZWd1bGFyXCI+XG4gICAgICAgICAgICAgICAge3sgY2hhcmFjdGVyQ291bnQgfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgPCEtLSBIZWxwIGljb24gLS0+XG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaGVscEljb24gJiYgdmFyaWFudCAhPT0gJ3RyYWlsaW5nLWRyb3Bkb3duJ1wiIFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ6ZW4taGVscC1pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uSGVscEljb25DbGljaygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zLW91dGxpbmVkXCI+aGVscF9vdXRsaW5lPC9pPlxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIDwhLS0gSGVscCB0b29sdGlwIC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ6ZW4taGVscC10b29sdGlwXCIgXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInNob3dIZWxwVG9vbHRpcFwiXG4gICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0b29sdGlwLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGhlbHBUb29sdGlwIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcC1hcnJvd1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIDwhLS0gVHJhaWxpbmcgZHJvcGRvd24gLS0+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidmFyaWFudCA9PT0gJ3RyYWlsaW5nLWRyb3Bkb3duJ1wiIFxuICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1pbnB1dC10cmFpbGluZy1kcm9wZG93blwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1kcm9wZG93bi10cmlnZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlVHJhaWxpbmdEcm9wZG93bigpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1sYWJlbFwiPnt7IGdldFRyYWlsaW5nRHJvcGRvd25MYWJlbCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zIGRyb3Bkb3duLWljb25cIj5leHBhbmRfbW9yZTwvaT5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLWRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1yaWdodFwiIFxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ0cmFpbGluZ0Ryb3Bkb3duT3BlblwiXG4gICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J29wZW4nOiB0cmFpbGluZ0Ryb3Bkb3duT3Blbn1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIHRyYWlsaW5nRHJvcGRvd25PcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1kcm9wZG93bi1vcHRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWQnOiBvcHRpb24udmFsdWUgPT09IHRyYWlsaW5nRHJvcGRvd25WYWx1ZX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblRyYWlsaW5nRHJvcGRvd25DaGFuZ2Uob3B0aW9uLnZhbHVlKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIm9wdGlvbi5pY29uXCIgY2xhc3M9XCJtYXRlcmlhbC1pY29ucyBvcHRpb24taWNvblwiPnt7IG9wdGlvbi5pY29uIH19PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIFxuICAgIDwhLS0gSGludCB0ZXh0IC8gRXJyb3IgbWVzc2FnZSAtLT5cbiAgICA8ZGl2ICpuZ0lmPVwic2hvd0hpbnRUZXh0XCIgXG4gICAgICAgICBjbGFzcz1cInplbi1pbnB1dC1oaW50IHRleHQgdGV4dC1zbSB0ZXh0LXdlaWdodC1yZWd1bGFyXCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnZGVzdHJ1Y3RpdmUnOiBkZXN0cnVjdGl2ZX1cIj5cbiAgICAgICAgPGkgKm5nSWY9XCJkZXN0cnVjdGl2ZVwiIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnMtb3V0bGluZWQgaGludC1pY29uXCI+ZXJyb3Jfb3V0bGluZTwvaT5cbiAgICAgICAge3sgZGlzcGxheUhpbnRUZXh0IHwgdHJhbnNsYXRlIH19XG4gICAgPC9kaXY+XG4gICAgXG4gICAgPCEtLSBQaG9uZSBDb3VudHJ5IERyb3Bkb3duIChmb3IgdGVsIHR5cGUpIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJ0eXBlID09PSAndGVsJyAmJiBpc1Bob25lRHJvcGRvd25FeHBhbmRlZFwiIFxuICAgICAgICAgY2xhc3M9XCJ6ZW4tcGhvbmUtZHJvcGRvd24tbWVudVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiemVuLXBob25lLWRyb3Bkb3duLWxpc3RcIj5cbiAgICAgICAgICAgIDwhLS0gQ291bnRyaWVzIExpc3QgLS0+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1waG9uZS1kcm9wZG93bi1pdGVtXCJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvdW50cnkgb2YgY291bnRyeUxpc3RcIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNlbGVjdGVkQ291bnRyeS5jb3VudHJ5TmFtZSA9PT0gY291bnRyeS5jb3VudHJ5TmFtZX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5Q2hhbmdlZChjb3VudHJ5KVwiPlxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY291bnRyeS5mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiY291bnRyeS5jb3VudHJ5TmFtZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiemVuLXBob25lLWNvdW50cnktbmFtZVwiPnt7IGNvdW50cnkuY291bnRyeU5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1jb2RlXCI+e3sgY291bnRyeS5jb3VudHJ5Q2FsbGluZ0NvZGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPCEtLSBDdXN0b20gQ291bnRyeSAtLT5cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiemVuLXBob25lLWRyb3Bkb3duLWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IHNlbGVjdGVkQ291bnRyeS5jb3VudHJ5TmFtZSA9PT0gY3VzdG9tQ291bnRyeS5jb3VudHJ5TmFtZX1cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Db3VudHJ5Q2hhbmdlZChjdXN0b21Db3VudHJ5KVwiPlxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiY3VzdG9tQ291bnRyeS5mbGFnXCJcbiAgICAgICAgICAgICAgICAgICAgIFthbHRdPVwiY3VzdG9tQ291bnRyeS5jb3VudHJ5TmFtZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiemVuLXBob25lLWNvdW50cnktbmFtZVwiPnt7IGN1c3RvbUNvdW50cnkuY291bnRyeU5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1jb2RlXCI+e3sgY3VzdG9tQ291bnRyeS5jb3VudHJ5Q2FsbGluZ0NvZGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPCEtLSBQaG9uZSBJbnB1dCBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjcGhvbmVJbnB1dFRlbXBsYXRlPlxuICAgIDwhLS0gUGhvbmUgY291bnRyeSBzZWxlY3RvciAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiemVuLXBob25lLWNvdW50cnktc2VsZWN0XCI+XG4gICAgICAgIDxpbWcgY2xhc3M9XCJ6ZW4tcGhvbmUtY291bnRyeS1mbGFnXCJcbiAgICAgICAgICAgICBbc3JjXT1cInNlbGVjdGVkQ291bnRyeS5mbGFnXCJcbiAgICAgICAgICAgICBbYWx0XT1cInNlbGVjdGVkQ291bnRyeS5jb3VudHJ5TmFtZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInplbi1waG9uZS1jb2RlXCI+e3sgc2VsZWN0ZWRDb3VudHJ5LmNvdW50cnlDYWxsaW5nQ29kZSB9fTwvc3Bhbj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInplbi1waG9uZS1kcm9wZG93bi1idG5cIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVBob25lRHJvcGRvd24oKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cIm1hdGVyaWFsLWljb25zIHplbi1waG9uZS1leHBhbmQtaWNvblwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2FjdGl2ZSc6IGlzUGhvbmVEcm9wZG93bkV4cGFuZGVkfVwiPmV4cGFuZF9tb3JlPC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICBcbiAgICA8IS0tIFBob25lIGlucHV0IGZpZWxkIC0tPlxuICAgIDxpbnB1dCAjaW5wdXRFbGVtZW50XG4gICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgICAgIFt2YWx1ZV09XCJwaG9uZVRleHRcIlxuICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICAgICBbYXR0ci5tYXhsZW5ndGhdPVwicGhvbmVNYXhMZW5ndGhcIlxuICAgICAgICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoXCJcbiAgICAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGVcIlxuICAgICAgICAgICBjbGFzcz1cInplbi1pbnB1dC1maWVsZCB0ZXh0IHRleHQtbWQgdGV4dC13ZWlnaHQtcmVndWxhclwiXG4gICAgICAgICAgIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAoZm9jdXMpPVwib25JbnB1dEZvY3VzKCRldmVudClcIlxuICAgICAgICAgICAoYmx1cik9XCJvbklucHV0Qmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgKGtleWRvd24pPVwib25LZXlkb3duKCRldmVudClcIlxuICAgICAgICAgICAoa2V5dXApPVwib25LZXl1cCgkZXZlbnQpXCIgLz5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gQ2xpY2sgb3V0c2lkZSBoYW5kbGVyIGZvciBkcm9wZG93bnMgLS0+XG48ZGl2ICpuZ0lmPVwibGVhZGluZ0Ryb3Bkb3duT3BlbiB8fCB0cmFpbGluZ0Ryb3Bkb3duT3BlbiB8fCBpc1Bob25lRHJvcGRvd25FeHBhbmRlZFwiIFxuICAgICBjbGFzcz1cInplbi1kcm9wZG93bi1iYWNrZHJvcFwiIFxuICAgICAoY2xpY2spPVwiY2xvc2VEcm9wZG93bnMoKTsgaGlkZVBob25lRHJvcGRvd24oKVwiPjwvZGl2PiJdfQ==
|
|
@@ -103,7 +103,7 @@ export class ZenduSearchBoxComponent {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
ZenduSearchBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ZenduSearchBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
-
ZenduSearchBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ZenduSearchBoxComponent, selector: "zen-search-box", inputs: { text: "text", delay: "delay", autoFocus: "autoFocus", disabled: "disabled", placeholder: "placeholder" }, outputs: { textChange: "textChange" }, ngImport: i0, template: "<div class=\"search-box-component\"\n [class.has-text]=\"text\">\n <zen-input [(ngModel)]=\"text\"\n [placeholder]=\"placeholder | translate\"\n [disabled]=\"disabled\"\n leadingIcon=\"search\"\n autocomplete=\"off\"\n (ngModelChange)=\"onChange()\">\n </zen-input>\n <i class=\"material-icons close-icon\"\n *ngIf=\"text\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"clear(); $event.stopPropagation()\">close</i>\n</div>\n", styles: [".search-box-component{position:relative;width:100%}.search-box-component ::ng-deep .zen-input-field-wrapper{height:40px!important;min-height:auto!important;padding:8px 14px!important}.search-box-component.has-text ::ng-deep .zen-input-field{padding-right:24px}.search-box-component .close-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%);color:#828282;font-size:20px;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ZenduInputComponent, selector: "zen-input", inputs: ["type", "variant", "placeholder", "label", "hintText", "leadingIcon", "helpIcon", "helpTooltip", "destructive", "errorMessage", "disabled", "required", "maxLength", "minLength", "pattern", "autocomplete", "name", "id", "leadingDropdownOptions", "leadingDropdownValue", "leadingDropdownPlaceholder", "trailingDropdownOptions", "trailingDropdownValue", "trailingDropdownPlaceholder", "leadingText", "size", "showCharacterCount", "phoneMaxLength", "phone", "width"], outputs: ["valueChange", "inputFocus", "inputBlur", "inputKeydown", "inputKeyup", "leadingDropdownChange", "leadingDropdownValueChange", "trailingDropdownChange", "trailingDropdownValueChange", "helpIconClick", "phoneChange", "validChange", "leadingIconClick"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
106
|
+
ZenduSearchBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ZenduSearchBoxComponent, selector: "zen-search-box", inputs: { text: "text", delay: "delay", autoFocus: "autoFocus", disabled: "disabled", placeholder: "placeholder" }, outputs: { textChange: "textChange" }, ngImport: i0, template: "<div class=\"search-box-component\"\n [class.has-text]=\"text\">\n <zen-input [(ngModel)]=\"text\"\n [placeholder]=\"placeholder | translate\"\n [disabled]=\"disabled\"\n leadingIcon=\"search\"\n autocomplete=\"off\"\n (ngModelChange)=\"onChange()\">\n </zen-input>\n <i class=\"material-icons close-icon\"\n *ngIf=\"text\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"clear(); $event.stopPropagation()\">close</i>\n</div>\n", styles: [".search-box-component{position:relative;width:100%}.search-box-component ::ng-deep .zen-input-field-wrapper{height:40px!important;min-height:auto!important;padding:8px 14px!important}.search-box-component.has-text ::ng-deep .zen-input-field{padding-right:24px}.search-box-component .close-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%);color:#828282;font-size:20px;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.ZenduInputComponent, selector: "zen-input", inputs: ["type", "variant", "placeholder", "label", "hintText", "leadingIcon", "helpIcon", "helpTooltip", "destructive", "errorMessage", "disabled", "required", "maxLength", "minLength", "pattern", "autocomplete", "name", "id", "leadingDropdownOptions", "leadingDropdownValue", "leadingDropdownPlaceholder", "trailingDropdownOptions", "trailingDropdownValue", "trailingDropdownPlaceholder", "leadingText", "trailingText", "size", "showCharacterCount", "phoneMaxLength", "phone", "width"], outputs: ["valueChange", "inputFocus", "inputBlur", "inputKeydown", "inputKeyup", "leadingDropdownChange", "leadingDropdownValueChange", "trailingDropdownChange", "trailingDropdownValueChange", "helpIconClick", "phoneChange", "validChange", "leadingIconClick"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
|
|
107
107
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ZenduSearchBoxComponent, decorators: [{
|
|
108
108
|
type: Component,
|
|
109
109
|
args: [{ selector: 'zen-search-box', template: "<div class=\"search-box-component\"\n [class.has-text]=\"text\">\n <zen-input [(ngModel)]=\"text\"\n [placeholder]=\"placeholder | translate\"\n [disabled]=\"disabled\"\n leadingIcon=\"search\"\n autocomplete=\"off\"\n (ngModelChange)=\"onChange()\">\n </zen-input>\n <i class=\"material-icons close-icon\"\n *ngIf=\"text\"\n (mousedown)=\"$event.stopPropagation()\"\n (click)=\"clear(); $event.stopPropagation()\">close</i>\n</div>\n", styles: [".search-box-component{position:relative;width:100%}.search-box-component ::ng-deep .zen-input-field-wrapper{height:40px!important;min-height:auto!important;padding:8px 14px!important}.search-box-component.has-text ::ng-deep .zen-input-field{padding-right:24px}.search-box-component .close-icon{position:absolute;top:50%;right:12px;transform:translateY(-50%);color:#828282;font-size:20px;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:1}\n"] }]
|