@energycap/components 0.39.16-ECAP-23123-Help-Popover-On-Controls.20240513-1515 → 0.39.16-ECAP-23123-Help-Popover-On-Controls.20240513-1533

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.
@@ -123,10 +123,10 @@ export class CheckboxComponent extends FormControlBase {
123
123
  }
124
124
  }
125
125
  CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.FormGroupHelper }], target: i0.ɵɵFactoryTarget.Component });
126
- CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CheckboxComponent, selector: "ec-checkbox", inputs: { name: "name", dependentCheckboxesGroup: "dependentCheckboxesGroup", ignoreDisabledDependents: "ignoreDisabledDependents" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["checkboxInput"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"control\">\r\n <label class=\"checkbox\"\r\n [ngClass]=\"{'is-disabled': formModel.disabled, 'no-label': !label, 'is-readonly': readonly}\">\r\n <input id=\"{{id}}_input\"\r\n #checkboxInput\r\n class='input'\r\n [class.indeterminate]=\"indeterminate\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n type=\"checkbox\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <i class=\"ec-icon icon-check\"></i>\r\n\r\n <ng-container *ngIf=\"label && !helpPopover\">\r\n <ng-container *ngTemplateOutlet=\"sharedLabel\"></ng-container>\r\n </ng-container>\r\n\r\n <div *ngIf=\"label && helpPopover\"\r\n class=\"d-flex align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"sharedLabel\"></ng-container>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n class=\"my-n2 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"helpPopoverPosition\">\r\n </ec-help-popover>\r\n </div>\r\n\r\n <ng-template #sharedLabel>\r\n <span *ngIf=\"label\"\r\n id=\"{{id}}_label\"\r\n class=\"label\"\r\n [innerHtml]=\"label | translate\">\r\n </span>\r\n </ng-template>\r\n </label>\r\n\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.checkbox{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.checkbox.is-disabled{cursor:default}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.ec-icon{color:var(--ec-form-control-border-color)}.input:not(:checked)+.ec-icon:before{display:none}.input.indeterminate+.ec-icon,.input:indeterminate+.ec-icon{color:var(--ec-color-interactive)}.input.indeterminate+.ec-icon:before,.input:indeterminate+.ec-icon:before{content:\"\";background-color:currentColor;display:block;width:10px;height:3px}.input:focus+.ec-icon{color:var(--ec-color-interactive);box-shadow:var(--ec-form-control-box-shadow-focus);border-color:var(--ec-form-control-border-color-focus)}.input:disabled+.ec-icon{color:var(--ec-form-control-color-disabled);background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.input:disabled~.label{color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.ec-icon{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid currentColor;color:var(--ec-color-interactive);margin-top:.5rem;flex:none;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;height:1em;width:1em;border-radius:.125rem}.ec-icon:before{font-size:.6875em}.label{line-height:1.25rem;padding:.375rem 0;margin-left:.5rem;min-height:2rem;height:auto}.checkbox.is-readonly{pointer-events:none}.checkbox.is-readonly .input{opacity:0}.checkbox.is-readonly .ec-icon{background-color:var(--ec-form-control-background-color-readonly);border-color:var(--ec-form-control-border-color-readonly)}.checkbox.is-readonly .label,.checkbox.is-readonly .ec-icon{opacity:1;color:var(--ec-form-control-color)}.no-label .input,.no-label .icon-check{margin-top:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.HelpPopoverComponent, selector: "ec-help-popover", inputs: ["id", "text", "contentPosition", "maxWidth"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
126
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CheckboxComponent, selector: "ec-checkbox", inputs: { name: "name", dependentCheckboxesGroup: "dependentCheckboxesGroup", ignoreDisabledDependents: "ignoreDisabledDependents" }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["checkboxInput"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"control\">\r\n <label class=\"checkbox\"\r\n [ngClass]=\"{'is-disabled': formModel.disabled, 'no-label': !label, 'is-readonly': readonly}\">\r\n <input id=\"{{id}}_input\"\r\n #checkboxInput\r\n class='input'\r\n [class.indeterminate]=\"indeterminate\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n type=\"checkbox\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <i class=\"ec-icon icon-check\"></i>\r\n\r\n <ng-container *ngIf=\"label && !helpPopover\">\r\n <ng-container *ngTemplateOutlet=\"sharedLabel\"></ng-container>\r\n </ng-container>\r\n\r\n <div *ngIf=\"label && helpPopover\"\r\n class=\"d-flex align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"sharedLabel\"></ng-container>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n class=\"my-n2 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"{{helpPopoverPosition}}\">\r\n </ec-help-popover>\r\n </div>\r\n\r\n <ng-template #sharedLabel>\r\n <span *ngIf=\"label\"\r\n id=\"{{id}}_label\"\r\n class=\"label\"\r\n [innerHtml]=\"label | translate\">\r\n </span>\r\n </ng-template>\r\n </label>\r\n\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.checkbox{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.checkbox.is-disabled{cursor:default}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.ec-icon{color:var(--ec-form-control-border-color)}.input:not(:checked)+.ec-icon:before{display:none}.input.indeterminate+.ec-icon,.input:indeterminate+.ec-icon{color:var(--ec-color-interactive)}.input.indeterminate+.ec-icon:before,.input:indeterminate+.ec-icon:before{content:\"\";background-color:currentColor;display:block;width:10px;height:3px}.input:focus+.ec-icon{color:var(--ec-color-interactive);box-shadow:var(--ec-form-control-box-shadow-focus);border-color:var(--ec-form-control-border-color-focus)}.input:disabled+.ec-icon{color:var(--ec-form-control-color-disabled);background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.input:disabled~.label{color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.ec-icon{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid currentColor;color:var(--ec-color-interactive);margin-top:.5rem;flex:none;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;height:1em;width:1em;border-radius:.125rem}.ec-icon:before{font-size:.6875em}.label{line-height:1.25rem;padding:.375rem 0;margin-left:.5rem;min-height:2rem;height:auto}.checkbox.is-readonly{pointer-events:none}.checkbox.is-readonly .input{opacity:0}.checkbox.is-readonly .ec-icon{background-color:var(--ec-form-control-background-color-readonly);border-color:var(--ec-form-control-border-color-readonly)}.checkbox.is-readonly .label,.checkbox.is-readonly .ec-icon{opacity:1;color:var(--ec-form-control-color)}.no-label .input,.no-label .icon-check{margin-top:0}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.HelpPopoverComponent, selector: "ec-help-popover", inputs: ["id", "text", "contentPosition", "maxWidth"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
127
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CheckboxComponent, decorators: [{
128
128
  type: Component,
129
- args: [{ selector: 'ec-checkbox', template: "<div class=\"control\">\r\n <label class=\"checkbox\"\r\n [ngClass]=\"{'is-disabled': formModel.disabled, 'no-label': !label, 'is-readonly': readonly}\">\r\n <input id=\"{{id}}_input\"\r\n #checkboxInput\r\n class='input'\r\n [class.indeterminate]=\"indeterminate\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n type=\"checkbox\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <i class=\"ec-icon icon-check\"></i>\r\n\r\n <ng-container *ngIf=\"label && !helpPopover\">\r\n <ng-container *ngTemplateOutlet=\"sharedLabel\"></ng-container>\r\n </ng-container>\r\n\r\n <div *ngIf=\"label && helpPopover\"\r\n class=\"d-flex align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"sharedLabel\"></ng-container>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n class=\"my-n2 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"helpPopoverPosition\">\r\n </ec-help-popover>\r\n </div>\r\n\r\n <ng-template #sharedLabel>\r\n <span *ngIf=\"label\"\r\n id=\"{{id}}_label\"\r\n class=\"label\"\r\n [innerHtml]=\"label | translate\">\r\n </span>\r\n </ng-template>\r\n </label>\r\n\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.checkbox{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.checkbox.is-disabled{cursor:default}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.ec-icon{color:var(--ec-form-control-border-color)}.input:not(:checked)+.ec-icon:before{display:none}.input.indeterminate+.ec-icon,.input:indeterminate+.ec-icon{color:var(--ec-color-interactive)}.input.indeterminate+.ec-icon:before,.input:indeterminate+.ec-icon:before{content:\"\";background-color:currentColor;display:block;width:10px;height:3px}.input:focus+.ec-icon{color:var(--ec-color-interactive);box-shadow:var(--ec-form-control-box-shadow-focus);border-color:var(--ec-form-control-border-color-focus)}.input:disabled+.ec-icon{color:var(--ec-form-control-color-disabled);background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.input:disabled~.label{color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.ec-icon{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid currentColor;color:var(--ec-color-interactive);margin-top:.5rem;flex:none;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;height:1em;width:1em;border-radius:.125rem}.ec-icon:before{font-size:.6875em}.label{line-height:1.25rem;padding:.375rem 0;margin-left:.5rem;min-height:2rem;height:auto}.checkbox.is-readonly{pointer-events:none}.checkbox.is-readonly .input{opacity:0}.checkbox.is-readonly .ec-icon{background-color:var(--ec-form-control-background-color-readonly);border-color:var(--ec-form-control-border-color-readonly)}.checkbox.is-readonly .label,.checkbox.is-readonly .ec-icon{opacity:1;color:var(--ec-form-control-color)}.no-label .input,.no-label .icon-check{margin-top:0}\n"] }]
129
+ args: [{ selector: 'ec-checkbox', template: "<div class=\"control\">\r\n <label class=\"checkbox\"\r\n [ngClass]=\"{'is-disabled': formModel.disabled, 'no-label': !label, 'is-readonly': readonly}\">\r\n <input id=\"{{id}}_input\"\r\n #checkboxInput\r\n class='input'\r\n [class.indeterminate]=\"indeterminate\"\r\n [attr.id]=\"inputId\"\r\n [attr.name]=\"name\"\r\n type=\"checkbox\"\r\n tabindex=\"{{tabindex}}\"\r\n [formControl]=\"formModel\"\r\n [attr.cdkFocusInitial]=\"autofocus || null\">\r\n <i class=\"ec-icon icon-check\"></i>\r\n\r\n <ng-container *ngIf=\"label && !helpPopover\">\r\n <ng-container *ngTemplateOutlet=\"sharedLabel\"></ng-container>\r\n </ng-container>\r\n\r\n <div *ngIf=\"label && helpPopover\"\r\n class=\"d-flex align-items-center\">\r\n <ng-container *ngTemplateOutlet=\"sharedLabel\"></ng-container>\r\n <ec-help-popover id=\"{{id}}_helpPopover\"\r\n class=\"my-n2 mx-n1\"\r\n text=\"{{helpPopover | translate}}\"\r\n contentPosition=\"{{helpPopoverPosition}}\">\r\n </ec-help-popover>\r\n </div>\r\n\r\n <ng-template #sharedLabel>\r\n <span *ngIf=\"label\"\r\n id=\"{{id}}_label\"\r\n class=\"label\"\r\n [innerHtml]=\"label | translate\">\r\n </span>\r\n </ng-template>\r\n </label>\r\n\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}:host(.w-auto){width:auto}.checkbox{cursor:pointer;display:inline-flex;margin-bottom:0;position:relative}.checkbox.is-disabled{cursor:default}.input{margin-top:.5rem;opacity:0;position:absolute;z-index:-1}.input:not(:checked)+.ec-icon{color:var(--ec-form-control-border-color)}.input:not(:checked)+.ec-icon:before{display:none}.input.indeterminate+.ec-icon,.input:indeterminate+.ec-icon{color:var(--ec-color-interactive)}.input.indeterminate+.ec-icon:before,.input:indeterminate+.ec-icon:before{content:\"\";background-color:currentColor;display:block;width:10px;height:3px}.input:focus+.ec-icon{color:var(--ec-color-interactive);box-shadow:var(--ec-form-control-box-shadow-focus);border-color:var(--ec-form-control-border-color-focus)}.input:disabled+.ec-icon{color:var(--ec-form-control-color-disabled);background-color:var(--ec-form-control-background-color-disabled);border-color:var(--ec-form-control-border-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.input:disabled~.label{color:var(--ec-form-control-color-disabled);opacity:var(--ec-form-control-opacity-disabled)}.ec-icon{background-color:var(--ec-form-control-background-color);background-clip:padding-box;border:1px solid currentColor;color:var(--ec-color-interactive);margin-top:.5rem;flex:none;pointer-events:none;display:inline-flex;align-items:center;justify-content:center;height:1em;width:1em;border-radius:.125rem}.ec-icon:before{font-size:.6875em}.label{line-height:1.25rem;padding:.375rem 0;margin-left:.5rem;min-height:2rem;height:auto}.checkbox.is-readonly{pointer-events:none}.checkbox.is-readonly .input{opacity:0}.checkbox.is-readonly .ec-icon{background-color:var(--ec-form-control-background-color-readonly);border-color:var(--ec-form-control-border-color-readonly)}.checkbox.is-readonly .label,.checkbox.is-readonly .ec-icon{opacity:1;color:var(--ec-form-control-color)}.no-label .input,.no-label .icon-check{margin-top:0}\n"] }]
130
130
  }], ctorParameters: function () { return [{ type: i1.ValidationMessageService }, { type: i2.FormGroupHelper }]; }, propDecorators: { name: [{
131
131
  type: Input
132
132
  }], dependentCheckboxesGroup: [{
@@ -137,4 +137,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
137
137
  type: ViewChild,
138
138
  args: ['checkboxInput', { static: true }]
139
139
  }] } });
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUd6SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVV0QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQXdDcEQsWUFDWSx3QkFBa0QsRUFDbEQsZUFBZ0M7UUFFMUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSHZDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBeEM1Qzs7V0FFRztRQUNhLFNBQUksR0FBVyxFQUFFLENBQUM7UUFhbEM7O1dBRUc7UUFDYSw2QkFBd0IsR0FBWSxJQUFJLENBQUM7UUFPekQ7OztXQUdHO1FBQ0ksa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEMsbUdBQW1HO1FBQzNGLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFcEMsZ0hBQWdIO1FBQ3hHLGdDQUEyQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFPcEQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUks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QkFBbkUsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3ZhbGlkYXRpb24tbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwSGVscGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Zvcm0tZ3JvdXAuaGVscGVyJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xCYXNlIH0gZnJvbSBcIi4uL2Zvcm0tY29udHJvbC1iYXNlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDbGlja2FibGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2RpcmVjdGl2ZXMvY2xpY2stYXJlYS1mb3IvY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCB0eXBlIENoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJyB8ICdpbmRldGVybWluYXRlJyB8ICdjaGVja2VkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtY2hlY2tib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ2xpY2thYmxlRWxlbWVudCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNoZWNrYm94IGlucHV0IGVsZW1lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuIG9iamVjdCB3aXRoIGEgY29sbGVjdGlvbiBvZiBGb3JtQ29udHJvbHMgd2hvIGNhbiBvbmx5IGhhdmUgYSB2YWx1ZSBvZiB0cnVlIG9yIGZhbHNlLlxyXG4gICAqIEEgRm9ybUdyb3VwIG9yIEZvcm1BcnJheSB3b3JrIGZpbmUsIG9yIGEgY3VzdG9tIG9iamVjdCByZWZlcmVuY2UgaXMgcG9zc2libGUgdG9vXHJcbiAgICogVGhlIG1hc3RlciBjaGVja2JveCB3aWxsIHJlYXR0YWNoIHRvIGRlcGVuZGVudCBjb250cm9scyBhbnkgdGltZSB0aGlzIHJlZmVyZW5jZSBjaGFuZ2VzXHJcbiAgICogVGhlIGNvbnRyb2xzIHNob3VsZCBiZSBmbGF0IChpLmUuIGlmIHVzaW5nIGEgRm9ybUdyb3VwIHRoZW4gaXQgY2Fubm90IGhhdmUgbmVzdGVkIEZvcm1Hcm91cHMgd2l0aGluIGl0KS5cclxuICAgKiBcclxuICAgKiBGb3IgZXhhbXBsZTogXHJcbiAgICogZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwID0gbmV3IEZvcm1Hcm91cCh7Y2hpbGQxOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLCBjaGlsZDI6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksIGNoaWxkMzogbmV3IEZvcm1Db250cm9sKGZhbHNlKX0pXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGRlcGVuZGVudENoZWNrYm94ZXNHcm91cD86IHtjb250cm9sczogQWJzdHJhY3RDb250cm9sW10gfCB7W2tleTogc3RyaW5nXTogQWJzdHJhY3RDb250cm9sfX07XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgd2hldGhlciB0byBpZ25vcmUgb3IgaW5jbHVkZSBkaXNhYmxlZCBkZXBlbmRlbnQgY2hlY2tib3hlcyBpbiB0aGUgY2hlY2sgdG8gZGV0ZXJtaW5lIHRoZSBjaGVja2JveCBzdGF0ZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWdub3JlRGlzYWJsZWREZXBlbmRlbnRzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBjaGVja2JveCBpbnB1dCBjb250cm9sXHJcbiAgKi9cclxuICBAVmlld0NoaWxkKCdjaGVja2JveElucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgcHJvdGVjdGVkIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZSBjaGVja2JveCBpcyBhIG1hc3RlciBjaGVja2JveCAoaS5lLiBpdCBoYXMgYSBkZXBlbmRlbnRDaGVja2JveGVzR3JvdXApLFxyXG4gICAqIGluZGV0ZXJtaW5hdGUgaXMgdHJ1ZSBpZiB0aGVyZSBhcmUgc29tZSBjaGVja2VkIGRlcGVuZGVudHMgYW5kIHNvbWUgdW5jaGVja2VkIGRlcGVuZGVudHMuXHJcbiAgICovXHJcbiAgcHVibGljIGluZGV0ZXJtaW5hdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9Vc2VkIHRvIHByZXZlbnQgdmFsdWVDaGFuZ2VzIGxvb3BzIGluIHRoZSBtYXN0ZXIgY2hlY2tib3ggYW5kIGRlcGVuZGVudCBjaGVja2JveGVzIHZhbHVlIGNoYW5nZXMuXHJcbiAgcHJpdmF0ZSBpZ25vcmVDYWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBGaXJlZCB3aGVuZXZlciB0aGUgZGVwZW5kZW50IGNoZWNrYm94ZXMgYXJlIGNoYW5nZWQgdG8gY2xlYXIgb3V0IHN1YnNjcmlwdGlvbnMgdG8gdGhlIHByZXZpb3VzIGRlcGVuZGVudHMgKi9cclxuICBwcml2YXRlIHJlc2V0RGVwZW5kZW50U3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRpb25NZXNzYWdlU2VydmljZTogVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGZvcm1Hcm91cEhlbHBlcjogRm9ybUdyb3VwSGVscGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcih2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsIGZvcm1Hcm91cEhlbHBlcik7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMuZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBEZXBlbmRlbnRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzcGF0Y2hFdmVudChldmVudDogRXZlbnQpIHtcclxuICAgIGlmIChldmVudC50eXBlID09PSAnY2xpY2snICYmICF0aGlzLmZvcm1Nb2RlbC5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Nb2RlbC5wYXRjaFZhbHVlKCF0aGlzLmZvcm1Nb2RlbC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgd2F0Y2hlcnMgdGhhdCBhbGxvdyB0aGUgbWFzdGVyIGFuZCBkZXBlbmRlbnQgY2hlY2tib3ggc3RhdGVzIHRvIHN0YXkgaW4gc3luYyBhcyB0aGUgdXNlciBpbnRlcmFjdHMgd2l0aCB0aGVtLiBcclxuICAgKiBEZXBlbmRlbnRzIGNhbiB1cGRhdGUgdGhlIG1hc3RlciB3aGVuIHRoZWlyIHZhbHVlcyBjaGFuZ2UgYW5kIHRoZSBtYXN0ZXIgdXBkYXRlcyBkZXBlbmRlbnRzIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0dXBEZXBlbmRlbnRzKCkge1xyXG4gICAgICBpZighdGhpcy5kZXBlbmRlbnRDaGVja2JveGVzR3JvdXApIHtyZXR1cm59XHJcblxyXG4gICAgICAvLyBSZW1vdmUgYW55IHN1YnNjcmlwdGlvbnMgdG8gcHJldmlvdXMgZGVwZW5kZW50c1xyXG4gICAgICB0aGlzLnJlc2V0RGVwZW5kZW50U3Vic2NyaXB0aW9ucy5uZXh0KCk7XHJcblxyXG4gICAgICAvL0V4dHJhY3QgdGhlIHZhbHVlcyAoaS5lLiB0aGUgY2hlY2tib3hlcykgZnJvbSB0aGUgRm9ybUdyb3VwIGNvbnRyb2xzIGtleS12YWx1ZSBtYXAgYW5kIHJldHVybiB0aGVtLiBcclxuICAgICAgbGV0IGRlcGVuZGVudENoZWNrYm94ZXM6IEFic3RyYWN0Q29udHJvbFtdID0gT2JqZWN0LnZhbHVlcyh0aGlzLmRlcGVuZGVudENoZWNrYm94ZXNHcm91cC5jb250cm9scyk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZU1hc3RlclN0YXRlKGRlcGVuZGVudENoZWNrYm94ZXMpO1xyXG5cclxuICAgICAgLy9XaGVuIHRoZSBtYXN0ZXIgdmFsdWUgY2hhbmdlcywgd2Ugc2V0IGFsbCBpdHMgZGVwZW5kZW50cyB0byB0aGF0IHZhbHVlLlxyXG4gICAgICAvL1dlIGFsc28gc2V0IGluZGV0ZXJtaW5hdGUgdG8gZmFsc2Ugc2luY2Ugd2Uga25vdyB0aGF0IGFsbCBkZXBlbmRlbnRzIHdpbGwgZWl0aGVyIGJlIGNoZWNrZWQgb3IgdW5jaGVja2VkLlxyXG4gICAgICB0aGlzLmZvcm1Nb2RlbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgIHRha2VVbnRpbChtZXJnZSh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCwgdGhpcy5yZXNldERlcGVuZGVudFN1YnNjcmlwdGlvbnMpKVxyXG4gICAgICApLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZighdGhpcy5pZ25vcmVDYWxsKSB7XHJcbiAgICAgICAgICB0aGlzLmlnbm9yZUNhbGwgPSB0cnVlOyAvL0lnbm9yZSBhbnkgdmFsdWUgY2hhbmdlcyBjYWxscyBvbiB0aGUgZGVwZW5kZW50cyB0byBwcmV2ZW50IGEgbG9vcC5cclxuICAgICAgICAgIGRlcGVuZGVudENoZWNrYm94ZXMuZm9yRWFjaChjaGVja2JveCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghY2hlY2tib3guZGlzYWJsZWQgfHwgIXRoaXMuaWdub3JlRGlzYWJsZWREZXBlbmRlbnRzKSB7XHJcbiAgICAgICAgICAgICAgY2hlY2tib3guc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlnbm9yZUNhbGwgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG4gICAgICAvL1doZW4gYSBkZXBlbmRlbnQgdmFsdWUgY2hhbmdlcywgd2UgbmVlZCB0byByZWV2YWx1YXRlIHRoZSBtYXN0ZXIgc3RhdGUuXHJcbiAgICAgIC8vV2UgYXJlIHN1YnNjcmliaW5nIHRvIHRoZSBmb3JtIG1vZGVscyBkaXJlY3RseSBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgZ3JvdXAgYmVjYXVzZSB3ZSBmb3VuZCB0aGF0IGFkZGluZyBjaGVja2JveGVzIHRvIFxyXG4gICAgICAvLyAgbW9yZSB0aGFuIG9uZSBmb3JtIGdyb3VwIGNhdXNlcyBvbmx5IHRoZSBsYXN0IGdyb3VwIHRvIGVtaXQgdmFsdWVDaGFuZ2VzIGV2ZW50cy4gXHJcbiAgICAgIC8vVGhhdCBwcmV2ZW50ZWQgY29tYmluZWQgcm93LW1hc3RlciBhbmQgdGFibGUtbWFzdGVyIHNldHVwcyBmcm9tIHdvcmtpbmcgcHJvcGVybHkuXHJcbiAgICAgIGRlcGVuZGVudENoZWNrYm94ZXMuZm9yRWFjaChjaGVja2JveCA9PiB7XHJcbiAgICAgICAgICBjaGVja2JveC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKG1lcmdlKHRoaXMuY29tcG9uZW50RGVzdHJveWVkLCB0aGlzLnJlc2V0RGVwZW5kZW50U3Vic2NyaXB0aW9ucykpXHJcbiAgICAgICAgICApLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYodmFsdWUgIT09IHRydWUgJiYgdmFsdWUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBUaGUgdmFsdWUgJHt2YWx1ZX0gaXMgbm90IHRydWUgb3IgZmFsc2UsIHdoaWNoIGFyZSB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWVzIGZvciBGb3JtQ29udHJvbHMgaW4gdGhlIGRlcGVuZGVudENoZWNrYm94ZXNHcm91cGApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLmlnbm9yZUNhbGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLmlnbm9yZUNhbGwgPSB0cnVlOyAvL0lnbm9yZSBhbnkgdmFsdWUgY2hhbmdlcyBjYWxscyBvbiB0aGUgbWFzdGVyIHRvIHByZXZlbnQgYSBsb29wLlxyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlTWFzdGVyU3RhdGUoZGVwZW5kZW50Q2hlY2tib3hlcyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pZ25vcmVDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogSWYgYWxsIGRlcGVuZGVudHMgYXJlIHRydWUsIHRoZSBtYXN0ZXIgc2hvdWxkIGJlIHRydWUgYW5kIGRldGVybWluYXRlLlxyXG4gICAqIElmIGFsbCBkZXBlbmRlbnRzIGFyZSBmYWxzZSwgdGhlIG1hc3RlciBzaG91bGQgYmUgZmFsc2UgYW5kIGRldGVybWluYXRlLlxyXG4gICAqIElmIHNvbWUgZGVwZW5kZW50cyBhcmUgdHJ1ZSBhbmQgc29tZSBkZXBlbmRlbnRzIGFyZSBmYWxzZSwgdGhlIG1hc3RlciBzaG91bGQgYmUgZmFsc2UgYW5kIGluZGV0ZXJtaW5hdGUuXHJcbiAgICogXHJcbiAgICogSWYgaWdub3JlRGlzYWJsZWREZXBlbmRlbnRzIGlzIHRydWUsIGRvZXMgbm90IGluY2x1ZGUgdGhlIGRpc2FibGVkIGRlcGVuZGVudHMgd2hlbiBjaGVja2luZyB2YWx1ZXNcclxuICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlTWFzdGVyU3RhdGUoZGVwZW5kZW50Q2hlY2tib3hlczogQWJzdHJhY3RDb250cm9sW10pIHtcclxuICAgIGxldCBkZXBlbmRlbnRzVG9DaGVjayA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaWdub3JlRGlzYWJsZWREZXBlbmRlbnRzKSB7XHJcbiAgICAgIGRlcGVuZGVudHNUb0NoZWNrID0gZGVwZW5kZW50Q2hlY2tib3hlcy5maWx0ZXIoY2hlY2tib3ggPT4gY2hlY2tib3guZW5hYmxlZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXBlbmRlbnRzVG9DaGVjayA9IGRlcGVuZGVudENoZWNrYm94ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGlzVHJ1ZSA9IChjaGVja2JveDogQWJzdHJhY3RDb250cm9sKSA9PiB7cmV0dXJuIGNoZWNrYm94LnZhbHVlID09PSB0cnVlfTtcclxuICAgIGlmKGRlcGVuZGVudHNUb0NoZWNrLmV2ZXJ5KGlzVHJ1ZSkpIHtcclxuICAgICAgICB0aGlzLmZvcm1Nb2RlbC5zZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZihkZXBlbmRlbnRzVG9DaGVjay5zb21lKGlzVHJ1ZSkpIHtcclxuICAgICAgICB0aGlzLmZvcm1Nb2RlbC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JtTW9kZWwuc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iLCI8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxyXG4gICAgICAgPGxhYmVsIGNsYXNzPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtZGlzYWJsZWQnOiBmb3JtTW9kZWwuZGlzYWJsZWQsICduby1sYWJlbCc6ICFsYWJlbCwgJ2lzLXJlYWRvbmx5JzogcmVhZG9ubHl9XCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwie3tpZH19X2lucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgI2NoZWNrYm94SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9J2lucHV0J1xyXG4gICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwie3t0YWJpbmRleH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Nb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNka0ZvY3VzSW5pdGlhbF09XCJhdXRvZm9jdXMgfHwgbnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZWMtaWNvbiBpY29uLWNoZWNrXCI+PC9pPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWwgJiYgIWhlbHBQb3BvdmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaGFyZWRMYWJlbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibGFiZWwgJiYgaGVscFBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaGFyZWRMYWJlbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICA8ZWMtaGVscC1wb3BvdmVyIGlkPVwie3tpZH19X2hlbHBQb3BvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm15LW4yIG14LW4xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PVwie3toZWxwUG9wb3ZlciB8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50UG9zaXRpb249XCJoZWxwUG9wb3ZlclBvc2l0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDwvZWMtaGVscC1wb3BvdmVyPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3NoYXJlZExhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ7e2lkfX1fbGFiZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySHRtbF09XCJsYWJlbCB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgIDwvbGFiZWw+XHJcblxyXG48L2Rpdj4iXX0=
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxLQUFLLEVBQUUsU0FBUyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUd6SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVV0QyxNQUFNLE9BQU8saUJBQWtCLFNBQVEsZUFBZTtJQXdDcEQsWUFDWSx3QkFBa0QsRUFDbEQsZUFBZ0M7UUFFMUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSHZDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDbEQsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBeEM1Qzs7V0FFRztRQUNhLFNBQUksR0FBVyxFQUFFLENBQUM7UUFhbEM7O1dBRUc7UUFDYSw2QkFBd0IsR0FBWSxJQUFJLENBQUM7UUFPekQ7OztXQUdHO1FBQ0ksa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEMsbUdBQW1HO1FBQzNGLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFFcEMsZ0hBQWdIO1FBQ3hHLGdDQUEyQixHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFPcEQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUks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QkFBbkUsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkLCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3ZhbGlkYXRpb24tbWVzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwSGVscGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Zvcm0tZ3JvdXAuaGVscGVyJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2xCYXNlIH0gZnJvbSBcIi4uL2Zvcm0tY29udHJvbC1iYXNlXCI7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRpc3RpbmN0VW50aWxDaGFuZ2VkIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDbGlja2FibGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2RpcmVjdGl2ZXMvY2xpY2stYXJlYS1mb3IvY2xpY2stYXJlYS1mb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcclxuXHJcbmV4cG9ydCB0eXBlIENoZWNrYm94U3RhdGUgPSAndW5jaGVja2VkJyB8ICdpbmRldGVybWluYXRlJyB8ICdjaGVja2VkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtY2hlY2tib3gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2tib3guY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIENoZWNrYm94Q29tcG9uZW50IGV4dGVuZHMgRm9ybUNvbnRyb2xCYXNlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQ2xpY2thYmxlRWxlbWVudCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIG5hbWUgb2YgdGhlIGNoZWNrYm94IGlucHV0IGVsZW1lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbmFtZTogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuIG9iamVjdCB3aXRoIGEgY29sbGVjdGlvbiBvZiBGb3JtQ29udHJvbHMgd2hvIGNhbiBvbmx5IGhhdmUgYSB2YWx1ZSBvZiB0cnVlIG9yIGZhbHNlLlxyXG4gICAqIEEgRm9ybUdyb3VwIG9yIEZvcm1BcnJheSB3b3JrIGZpbmUsIG9yIGEgY3VzdG9tIG9iamVjdCByZWZlcmVuY2UgaXMgcG9zc2libGUgdG9vXHJcbiAgICogVGhlIG1hc3RlciBjaGVja2JveCB3aWxsIHJlYXR0YWNoIHRvIGRlcGVuZGVudCBjb250cm9scyBhbnkgdGltZSB0aGlzIHJlZmVyZW5jZSBjaGFuZ2VzXHJcbiAgICogVGhlIGNvbnRyb2xzIHNob3VsZCBiZSBmbGF0IChpLmUuIGlmIHVzaW5nIGEgRm9ybUdyb3VwIHRoZW4gaXQgY2Fubm90IGhhdmUgbmVzdGVkIEZvcm1Hcm91cHMgd2l0aGluIGl0KS5cclxuICAgKiBcclxuICAgKiBGb3IgZXhhbXBsZTogXHJcbiAgICogZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwID0gbmV3IEZvcm1Hcm91cCh7Y2hpbGQxOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLCBjaGlsZDI6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksIGNoaWxkMzogbmV3IEZvcm1Db250cm9sKGZhbHNlKX0pXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGRlcGVuZGVudENoZWNrYm94ZXNHcm91cD86IHtjb250cm9sczogQWJzdHJhY3RDb250cm9sW10gfCB7W2tleTogc3RyaW5nXTogQWJzdHJhY3RDb250cm9sfX07XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgd2hldGhlciB0byBpZ25vcmUgb3IgaW5jbHVkZSBkaXNhYmxlZCBkZXBlbmRlbnQgY2hlY2tib3hlcyBpbiB0aGUgY2hlY2sgdG8gZGV0ZXJtaW5lIHRoZSBjaGVja2JveCBzdGF0ZS5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWdub3JlRGlzYWJsZWREZXBlbmRlbnRzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqXHJcbiAgICogUmVmZXJlbmNlIHRvIHRoZSBjaGVja2JveCBpbnB1dCBjb250cm9sXHJcbiAgKi9cclxuICBAVmlld0NoaWxkKCdjaGVja2JveElucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgcHJvdGVjdGVkIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIC8qKlxyXG4gICAqIElmIHRoZSBjaGVja2JveCBpcyBhIG1hc3RlciBjaGVja2JveCAoaS5lLiBpdCBoYXMgYSBkZXBlbmRlbnRDaGVja2JveGVzR3JvdXApLFxyXG4gICAqIGluZGV0ZXJtaW5hdGUgaXMgdHJ1ZSBpZiB0aGVyZSBhcmUgc29tZSBjaGVja2VkIGRlcGVuZGVudHMgYW5kIHNvbWUgdW5jaGVja2VkIGRlcGVuZGVudHMuXHJcbiAgICovXHJcbiAgcHVibGljIGluZGV0ZXJtaW5hdGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLy9Vc2VkIHRvIHByZXZlbnQgdmFsdWVDaGFuZ2VzIGxvb3BzIGluIHRoZSBtYXN0ZXIgY2hlY2tib3ggYW5kIGRlcGVuZGVudCBjaGVja2JveGVzIHZhbHVlIGNoYW5nZXMuXHJcbiAgcHJpdmF0ZSBpZ25vcmVDYWxsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKiBGaXJlZCB3aGVuZXZlciB0aGUgZGVwZW5kZW50IGNoZWNrYm94ZXMgYXJlIGNoYW5nZWQgdG8gY2xlYXIgb3V0IHN1YnNjcmlwdGlvbnMgdG8gdGhlIHByZXZpb3VzIGRlcGVuZGVudHMgKi9cclxuICBwcml2YXRlIHJlc2V0RGVwZW5kZW50U3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIHZhbGlkYXRpb25NZXNzYWdlU2VydmljZTogVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGZvcm1Hcm91cEhlbHBlcjogRm9ybUdyb3VwSGVscGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcih2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsIGZvcm1Hcm91cEhlbHBlcik7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMuZGVwZW5kZW50Q2hlY2tib3hlc0dyb3VwKSB7XHJcbiAgICAgIHRoaXMuc2V0dXBEZXBlbmRlbnRzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGlzcGF0Y2hFdmVudChldmVudDogRXZlbnQpIHtcclxuICAgIGlmIChldmVudC50eXBlID09PSAnY2xpY2snICYmICF0aGlzLmZvcm1Nb2RlbC5kaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmZvcm1Nb2RlbC5wYXRjaFZhbHVlKCF0aGlzLmZvcm1Nb2RlbC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgd2F0Y2hlcnMgdGhhdCBhbGxvdyB0aGUgbWFzdGVyIGFuZCBkZXBlbmRlbnQgY2hlY2tib3ggc3RhdGVzIHRvIHN0YXkgaW4gc3luYyBhcyB0aGUgdXNlciBpbnRlcmFjdHMgd2l0aCB0aGVtLiBcclxuICAgKiBEZXBlbmRlbnRzIGNhbiB1cGRhdGUgdGhlIG1hc3RlciB3aGVuIHRoZWlyIHZhbHVlcyBjaGFuZ2UgYW5kIHRoZSBtYXN0ZXIgdXBkYXRlcyBkZXBlbmRlbnRzIHdoZW4gdGhlIHZhbHVlIGNoYW5nZXMuIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgc2V0dXBEZXBlbmRlbnRzKCkge1xyXG4gICAgICBpZighdGhpcy5kZXBlbmRlbnRDaGVja2JveGVzR3JvdXApIHtyZXR1cm59XHJcblxyXG4gICAgICAvLyBSZW1vdmUgYW55IHN1YnNjcmlwdGlvbnMgdG8gcHJldmlvdXMgZGVwZW5kZW50c1xyXG4gICAgICB0aGlzLnJlc2V0RGVwZW5kZW50U3Vic2NyaXB0aW9ucy5uZXh0KCk7XHJcblxyXG4gICAgICAvL0V4dHJhY3QgdGhlIHZhbHVlcyAoaS5lLiB0aGUgY2hlY2tib3hlcykgZnJvbSB0aGUgRm9ybUdyb3VwIGNvbnRyb2xzIGtleS12YWx1ZSBtYXAgYW5kIHJldHVybiB0aGVtLiBcclxuICAgICAgbGV0IGRlcGVuZGVudENoZWNrYm94ZXM6IEFic3RyYWN0Q29udHJvbFtdID0gT2JqZWN0LnZhbHVlcyh0aGlzLmRlcGVuZGVudENoZWNrYm94ZXNHcm91cC5jb250cm9scyk7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZU1hc3RlclN0YXRlKGRlcGVuZGVudENoZWNrYm94ZXMpO1xyXG5cclxuICAgICAgLy9XaGVuIHRoZSBtYXN0ZXIgdmFsdWUgY2hhbmdlcywgd2Ugc2V0IGFsbCBpdHMgZGVwZW5kZW50cyB0byB0aGF0IHZhbHVlLlxyXG4gICAgICAvL1dlIGFsc28gc2V0IGluZGV0ZXJtaW5hdGUgdG8gZmFsc2Ugc2luY2Ugd2Uga25vdyB0aGF0IGFsbCBkZXBlbmRlbnRzIHdpbGwgZWl0aGVyIGJlIGNoZWNrZWQgb3IgdW5jaGVja2VkLlxyXG4gICAgICB0aGlzLmZvcm1Nb2RlbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICAgIHRha2VVbnRpbChtZXJnZSh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCwgdGhpcy5yZXNldERlcGVuZGVudFN1YnNjcmlwdGlvbnMpKVxyXG4gICAgICApLnN1YnNjcmliZSgodmFsdWU6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZighdGhpcy5pZ25vcmVDYWxsKSB7XHJcbiAgICAgICAgICB0aGlzLmlnbm9yZUNhbGwgPSB0cnVlOyAvL0lnbm9yZSBhbnkgdmFsdWUgY2hhbmdlcyBjYWxscyBvbiB0aGUgZGVwZW5kZW50cyB0byBwcmV2ZW50IGEgbG9vcC5cclxuICAgICAgICAgIGRlcGVuZGVudENoZWNrYm94ZXMuZm9yRWFjaChjaGVja2JveCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghY2hlY2tib3guZGlzYWJsZWQgfHwgIXRoaXMuaWdub3JlRGlzYWJsZWREZXBlbmRlbnRzKSB7XHJcbiAgICAgICAgICAgICAgY2hlY2tib3guc2V0VmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmlnbm9yZUNhbGwgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG4gICAgICAvL1doZW4gYSBkZXBlbmRlbnQgdmFsdWUgY2hhbmdlcywgd2UgbmVlZCB0byByZWV2YWx1YXRlIHRoZSBtYXN0ZXIgc3RhdGUuXHJcbiAgICAgIC8vV2UgYXJlIHN1YnNjcmliaW5nIHRvIHRoZSBmb3JtIG1vZGVscyBkaXJlY3RseSBpbnN0ZWFkIG9mIHRoZSBlbnRpcmUgZ3JvdXAgYmVjYXVzZSB3ZSBmb3VuZCB0aGF0IGFkZGluZyBjaGVja2JveGVzIHRvIFxyXG4gICAgICAvLyAgbW9yZSB0aGFuIG9uZSBmb3JtIGdyb3VwIGNhdXNlcyBvbmx5IHRoZSBsYXN0IGdyb3VwIHRvIGVtaXQgdmFsdWVDaGFuZ2VzIGV2ZW50cy4gXHJcbiAgICAgIC8vVGhhdCBwcmV2ZW50ZWQgY29tYmluZWQgcm93LW1hc3RlciBhbmQgdGFibGUtbWFzdGVyIHNldHVwcyBmcm9tIHdvcmtpbmcgcHJvcGVybHkuXHJcbiAgICAgIGRlcGVuZGVudENoZWNrYm94ZXMuZm9yRWFjaChjaGVja2JveCA9PiB7XHJcbiAgICAgICAgICBjaGVja2JveC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKG1lcmdlKHRoaXMuY29tcG9uZW50RGVzdHJveWVkLCB0aGlzLnJlc2V0RGVwZW5kZW50U3Vic2NyaXB0aW9ucykpXHJcbiAgICAgICAgICApLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgaWYodmFsdWUgIT09IHRydWUgJiYgdmFsdWUgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBUaGUgdmFsdWUgJHt2YWx1ZX0gaXMgbm90IHRydWUgb3IgZmFsc2UsIHdoaWNoIGFyZSB0aGUgb25seSBzdXBwb3J0ZWQgdmFsdWVzIGZvciBGb3JtQ29udHJvbHMgaW4gdGhlIGRlcGVuZGVudENoZWNrYm94ZXNHcm91cGApO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmKCF0aGlzLmlnbm9yZUNhbGwpIHtcclxuICAgICAgICAgICAgICB0aGlzLmlnbm9yZUNhbGwgPSB0cnVlOyAvL0lnbm9yZSBhbnkgdmFsdWUgY2hhbmdlcyBjYWxscyBvbiB0aGUgbWFzdGVyIHRvIHByZXZlbnQgYSBsb29wLlxyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlTWFzdGVyU3RhdGUoZGVwZW5kZW50Q2hlY2tib3hlcyk7XHJcbiAgICAgICAgICAgICAgdGhpcy5pZ25vcmVDYWxsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogSWYgYWxsIGRlcGVuZGVudHMgYXJlIHRydWUsIHRoZSBtYXN0ZXIgc2hvdWxkIGJlIHRydWUgYW5kIGRldGVybWluYXRlLlxyXG4gICAqIElmIGFsbCBkZXBlbmRlbnRzIGFyZSBmYWxzZSwgdGhlIG1hc3RlciBzaG91bGQgYmUgZmFsc2UgYW5kIGRldGVybWluYXRlLlxyXG4gICAqIElmIHNvbWUgZGVwZW5kZW50cyBhcmUgdHJ1ZSBhbmQgc29tZSBkZXBlbmRlbnRzIGFyZSBmYWxzZSwgdGhlIG1hc3RlciBzaG91bGQgYmUgZmFsc2UgYW5kIGluZGV0ZXJtaW5hdGUuXHJcbiAgICogXHJcbiAgICogSWYgaWdub3JlRGlzYWJsZWREZXBlbmRlbnRzIGlzIHRydWUsIGRvZXMgbm90IGluY2x1ZGUgdGhlIGRpc2FibGVkIGRlcGVuZGVudHMgd2hlbiBjaGVja2luZyB2YWx1ZXNcclxuICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlTWFzdGVyU3RhdGUoZGVwZW5kZW50Q2hlY2tib3hlczogQWJzdHJhY3RDb250cm9sW10pIHtcclxuICAgIGxldCBkZXBlbmRlbnRzVG9DaGVjayA9IFtdO1xyXG4gICAgaWYgKHRoaXMuaWdub3JlRGlzYWJsZWREZXBlbmRlbnRzKSB7XHJcbiAgICAgIGRlcGVuZGVudHNUb0NoZWNrID0gZGVwZW5kZW50Q2hlY2tib3hlcy5maWx0ZXIoY2hlY2tib3ggPT4gY2hlY2tib3guZW5hYmxlZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXBlbmRlbnRzVG9DaGVjayA9IGRlcGVuZGVudENoZWNrYm94ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGlzVHJ1ZSA9IChjaGVja2JveDogQWJzdHJhY3RDb250cm9sKSA9PiB7cmV0dXJuIGNoZWNrYm94LnZhbHVlID09PSB0cnVlfTtcclxuICAgIGlmKGRlcGVuZGVudHNUb0NoZWNrLmV2ZXJ5KGlzVHJ1ZSkpIHtcclxuICAgICAgICB0aGlzLmZvcm1Nb2RlbC5zZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB0aGlzLmluZGV0ZXJtaW5hdGUgPSBmYWxzZTtcclxuICAgIH0gZWxzZSBpZihkZXBlbmRlbnRzVG9DaGVjay5zb21lKGlzVHJ1ZSkpIHtcclxuICAgICAgICB0aGlzLmZvcm1Nb2RlbC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5pbmRldGVybWluYXRlID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5mb3JtTW9kZWwuc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn0iLCI8ZGl2IGNsYXNzPVwiY29udHJvbFwiPlxyXG4gICAgICAgPGxhYmVsIGNsYXNzPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtZGlzYWJsZWQnOiBmb3JtTW9kZWwuZGlzYWJsZWQsICduby1sYWJlbCc6ICFsYWJlbCwgJ2lzLXJlYWRvbmx5JzogcmVhZG9ubHl9XCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwie3tpZH19X2lucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgI2NoZWNrYm94SW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgY2xhc3M9J2lucHV0J1xyXG4gICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaW5kZXRlcm1pbmF0ZV09XCJpbmRldGVybWluYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiaW5wdXRJZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwie3t0YWJpbmRleH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Nb2RlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgIFthdHRyLmNka0ZvY3VzSW5pdGlhbF09XCJhdXRvZm9jdXMgfHwgbnVsbFwiPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZWMtaWNvbiBpY29uLWNoZWNrXCI+PC9pPlxyXG5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWwgJiYgIWhlbHBQb3BvdmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaGFyZWRMYWJlbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibGFiZWwgJiYgaGVscFBvcG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzaGFyZWRMYWJlbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICA8ZWMtaGVscC1wb3BvdmVyIGlkPVwie3tpZH19X2hlbHBQb3BvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm15LW4yIG14LW4xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PVwie3toZWxwUG9wb3ZlciB8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50UG9zaXRpb249XCJ7e2hlbHBQb3BvdmVyUG9zaXRpb259fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICA8L2VjLWhlbHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzaGFyZWRMYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwie3tpZH19X2xhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwibGFiZWwgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICA8L2xhYmVsPlxyXG5cclxuPC9kaXY+Il19