@libs-ui/components-inputs-valid 0.2.9 → 0.2.11

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.
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3ZhbGlkL3NyYy9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSW5wdXRGdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy1pbnB1dFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sRXZlbnQgZXh0ZW5kcyBJSW5wdXRGdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gIGNoZWNrSXNWYWxpZDogKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgZGV0ZWN0Q2hhbmdlczogKCkgPT4gdm9pZDtcbiAgc2V0TWVzc2FnZUVycm9yOiAobWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuICBjdXJyZW50U3RhdGVJc1ZhbGlkPzogKCkgPT4gYm9vbGVhbiB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL3ZhbGlkL3NyYy9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSW5wdXRGdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy1pbnB1dFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sRXZlbnQgZXh0ZW5kcyBJSW5wdXRGdW5jdGlvbkNvbnRyb2xFdmVudCB7XG4gIGNoZWNrSXNWYWxpZDogKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgc2V0TWVzc2FnZUVycm9yOiAobWVzc2FnZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBjdXJyZW50U3RhdGVJc1ZhbGlkPzogKCkgPT4gUHJvbWlzZTxib29sZWFuPjtcbn0iXX0=
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, effect, input, model, output, signal, viewChild } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, effect, input, model, output, signal, viewChild } from '@angular/core';
3
3
  import { LibsUiComponentsCheckboxSingleComponent } from '@libs-ui/components-checkbox-single';
4
4
  import { LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';
5
5
  import { LibsUiComponentsLabelComponent } from '@libs-ui/components-label';
@@ -10,7 +10,6 @@ import { TranslateModule } from '@ngx-translate/core';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@ngx-translate/core";
12
12
  export class LibsUiComponentsInputsValidComponent {
13
- cdr;
14
13
  /* PROPERTY */
15
14
  singleError = signal({ message: undefined, interpolateParams: undefined });
16
15
  rectLeft = signal(undefined);
@@ -102,7 +101,7 @@ export class LibsUiComponentsInputsValidComponent {
102
101
  outIconLeft = output();
103
102
  outIconRight = output();
104
103
  outClickButtonLabel = output();
105
- outToggleEventLabel = output();
104
+ outSwitchEventLabel = output();
106
105
  outLabelRightClick = output();
107
106
  outEnterInputEvent = output();
108
107
  outHeightAreaChange = output();
@@ -111,8 +110,7 @@ export class LibsUiComponentsInputsValidComponent {
111
110
  outChangeValueByButtonUpDown = output();
112
111
  /* VIEW CHILD */
113
112
  elementLeftRef = viewChild('elementLeftRef');
114
- constructor(cdr) {
115
- this.cdr = cdr;
113
+ constructor() {
116
114
  effect(() => {
117
115
  if (!this.item() || typeof this.item() !== 'object' || this.item() instanceof Array || this.item() instanceof Map && this.item() instanceof WeakMap || this.item() instanceof Set || this.item() instanceof WeakSet) {
118
116
  return;
@@ -123,7 +121,6 @@ export class LibsUiComponentsInputsValidComponent {
123
121
  ngOnInit() {
124
122
  this.outFunctionsControl.emit({
125
123
  checkIsValid: this.checkIsValid.bind(this),
126
- detectChanges: this.detectChanges.bind(this),
127
124
  setMessageError: this.setMessageError.bind(this),
128
125
  blur: async () => await this.functionControlInput?.blur(),
129
126
  focus: async () => await this.functionControlInput?.focus(),
@@ -135,15 +132,12 @@ export class LibsUiComponentsInputsValidComponent {
135
132
  });
136
133
  }
137
134
  /* FUNCTIONS */
138
- currentStateIsValid() {
135
+ async currentStateIsValid() {
139
136
  return this.singleError().message ? false : true;
140
137
  }
141
138
  getElementValue() {
142
139
  return this.functionControlInput?.getElementValue();
143
140
  }
144
- detectChanges() {
145
- this.cdr.detectChanges();
146
- }
147
141
  handlerSelect(value) {
148
142
  this.outSelect.emit(value);
149
143
  }
@@ -154,7 +148,6 @@ export class LibsUiComponentsInputsValidComponent {
154
148
  if (!this.functionValid()) {
155
149
  this.validate(value);
156
150
  this.outValueChange.emit(value);
157
- this.cdr.detectChanges();
158
151
  return;
159
152
  }
160
153
  clearTimeout(this.timerValueChange());
@@ -172,8 +165,8 @@ export class LibsUiComponentsInputsValidComponent {
172
165
  handlerClickButtonLabel(button) {
173
166
  this.outClickButtonLabel.emit(button);
174
167
  }
175
- handlerSwitchToggleLabel(toggleEvent) {
176
- this.outToggleEventLabel.emit(toggleEvent);
168
+ handlerSwitchLabel(toggleEvent) {
169
+ this.outSwitchEventLabel.emit(toggleEvent);
177
170
  }
178
171
  handlerEventLabelRightLabel() {
179
172
  this.outLabelRightClick.emit(true);
@@ -260,7 +253,7 @@ export class LibsUiComponentsInputsValidComponent {
260
253
  await this.validate(this.item()[this.fieldNameBind()]);
261
254
  return this.singleError().message ? false : true;
262
255
  }
263
- setMessageError(message) {
256
+ async setMessageError(message) {
264
257
  this.singleError.update(obj => ({ ...obj, message }));
265
258
  }
266
259
  handlerControlFunctionInput(event) {
@@ -283,16 +276,18 @@ export class LibsUiComponentsInputsValidComponent {
283
276
  clearTimeout(this.timer());
284
277
  clearTimeout(this.timerValueChange());
285
278
  }
286
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsValidComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
287
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsValidComponent, isStandalone: true, selector: "libs_ui-components-inputs-valid", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, emitEmptyInDataTypeNumber: { classPropertyName: "emitEmptyInDataTypeNumber", publicName: "emitEmptyInDataTypeNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreBlockInputMaxValue: { classPropertyName: "ignoreBlockInputMaxValue", publicName: "ignoreBlockInputMaxValue", isSignal: true, isRequired: false, transformFunction: null }, fieldNameBind: { classPropertyName: "fieldNameBind", publicName: "fieldNameBind", isSignal: true, isRequired: true, transformFunction: null }, showCount: { classPropertyName: "showCount", publicName: "showCount", isSignal: true, isRequired: false, transformFunction: null }, typeComponentSelectItem: { classPropertyName: "typeComponentSelectItem", publicName: "typeComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, valueComponentSelectItem: { classPropertyName: "valueComponentSelectItem", publicName: "valueComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, disableComponentSelectItem: { classPropertyName: "disableComponentSelectItem", publicName: "disableComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, tagInput: { classPropertyName: "tagInput", publicName: "tagInput", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null }, resetAutoCompletePassword: { classPropertyName: "resetAutoCompletePassword", publicName: "resetAutoCompletePassword", isSignal: true, isRequired: false, transformFunction: null }, textAreaEnterNotNewLine: { classPropertyName: "textAreaEnterNotNewLine", publicName: "textAreaEnterNotNewLine", isSignal: true, isRequired: false, transformFunction: null }, hiddenContent: { classPropertyName: "hiddenContent", publicName: "hiddenContent", isSignal: true, isRequired: false, transformFunction: null }, fixedFloat: { classPropertyName: "fixedFloat", publicName: "fixedFloat", isSignal: true, isRequired: false, transformFunction: null }, acceptNegativeValue: { classPropertyName: "acceptNegativeValue", publicName: "acceptNegativeValue", isSignal: true, isRequired: false, transformFunction: null }, valueUpDownNumber: { classPropertyName: "valueUpDownNumber", publicName: "valueUpDownNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidthInput100: { classPropertyName: "ignoreWidthInput100", publicName: "ignoreWidthInput100", isSignal: true, isRequired: false, transformFunction: null }, classIncludeInput: { classPropertyName: "classIncludeInput", publicName: "classIncludeInput", isSignal: true, isRequired: false, transformFunction: null }, classContainerInput: { classPropertyName: "classContainerInput", publicName: "classContainerInput", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, noBorder: { classPropertyName: "noBorder", publicName: "noBorder", isSignal: true, isRequired: false, transformFunction: null }, backgroundNone: { classPropertyName: "backgroundNone", publicName: "backgroundNone", isSignal: true, isRequired: false, transformFunction: null }, useColorModeExist: { classPropertyName: "useColorModeExist", publicName: "useColorModeExist", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, keepPlaceholderOnly: { classPropertyName: "keepPlaceholderOnly", publicName: "keepPlaceholderOnly", isSignal: true, isRequired: false, transformFunction: null }, classContainerBottomInput: { classPropertyName: "classContainerBottomInput", publicName: "classContainerBottomInput", isSignal: true, isRequired: false, transformFunction: null }, autoRemoveEmoji: { classPropertyName: "autoRemoveEmoji", publicName: "autoRemoveEmoji", isSignal: true, isRequired: false, transformFunction: null }, defaultHeight: { classPropertyName: "defaultHeight", publicName: "defaultHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeightTextArea: { classPropertyName: "maxHeightTextArea", publicName: "maxHeightTextArea", isSignal: true, isRequired: false, transformFunction: null }, minHeightTextArea: { classPropertyName: "minHeightTextArea", publicName: "minHeightTextArea", isSignal: true, isRequired: false, transformFunction: null }, ignoreShowError: { classPropertyName: "ignoreShowError", publicName: "ignoreShowError", isSignal: true, isRequired: false, transformFunction: null }, borderError: { classPropertyName: "borderError", publicName: "borderError", isSignal: true, isRequired: false, transformFunction: null }, iconLeftClass: { classPropertyName: "iconLeftClass", publicName: "iconLeftClass", isSignal: true, isRequired: false, transformFunction: null }, popoverContentIconLeft: { classPropertyName: "popoverContentIconLeft", publicName: "popoverContentIconLeft", isSignal: true, isRequired: false, transformFunction: null }, iconRightClass: { classPropertyName: "iconRightClass", publicName: "iconRightClass", isSignal: true, isRequired: false, transformFunction: null }, popoverContentIconRight: { classPropertyName: "popoverContentIconRight", publicName: "popoverContentIconRight", isSignal: true, isRequired: false, transformFunction: null }, zIndexPopoverContent: { classPropertyName: "zIndexPopoverContent", publicName: "zIndexPopoverContent", isSignal: true, isRequired: false, transformFunction: null }, unitsLeft: { classPropertyName: "unitsLeft", publicName: "unitsLeft", isSignal: true, isRequired: false, transformFunction: null }, configUnitLeft: { classPropertyName: "configUnitLeft", publicName: "configUnitLeft", isSignal: true, isRequired: false, transformFunction: null }, keySelectedUnitLeft: { classPropertyName: "keySelectedUnitLeft", publicName: "keySelectedUnitLeft", isSignal: true, isRequired: false, transformFunction: null }, unitsRight: { classPropertyName: "unitsRight", publicName: "unitsRight", isSignal: true, isRequired: false, transformFunction: null }, configUnitRight: { classPropertyName: "configUnitRight", publicName: "configUnitRight", isSignal: true, isRequired: false, transformFunction: null }, keySelectedUnitRight: { classPropertyName: "keySelectedUnitRight", publicName: "keySelectedUnitRight", isSignal: true, isRequired: false, transformFunction: null }, maxValueNumber: { classPropertyName: "maxValueNumber", publicName: "maxValueNumber", isSignal: true, isRequired: false, transformFunction: null }, minValueNumber: { classPropertyName: "minValueNumber", publicName: "minValueNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreContentLeft: { classPropertyName: "ignoreContentLeft", publicName: "ignoreContentLeft", isSignal: true, isRequired: false, transformFunction: null }, ignoreContentRight: { classPropertyName: "ignoreContentRight", publicName: "ignoreContentRight", isSignal: true, isRequired: false, transformFunction: null }, isBaselineStyle: { classPropertyName: "isBaselineStyle", publicName: "isBaselineStyle", isSignal: true, isRequired: false, transformFunction: null }, valuePatternShowError: { classPropertyName: "valuePatternShowError", publicName: "valuePatternShowError", isSignal: true, isRequired: false, transformFunction: null }, validPattern: { classPropertyName: "validPattern", publicName: "validPattern", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null }, validMinLength: { classPropertyName: "validMinLength", publicName: "validMinLength", isSignal: true, isRequired: false, transformFunction: null }, validMinValue: { classPropertyName: "validMinValue", publicName: "validMinValue", isSignal: true, isRequired: false, transformFunction: null }, validMaxValue: { classPropertyName: "validMaxValue", publicName: "validMaxValue", isSignal: true, isRequired: false, transformFunction: null }, validMaxLength: { classPropertyName: "validMaxLength", publicName: "validMaxLength", isSignal: true, isRequired: false, transformFunction: null }, functionValid: { classPropertyName: "functionValid", publicName: "functionValid", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, positionMessageErrorStartInput: { classPropertyName: "positionMessageErrorStartInput", publicName: "positionMessageErrorStartInput", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, resize: { classPropertyName: "resize", publicName: "resize", isSignal: true, isRequired: false, transformFunction: null }, templateLeftBottomInput: { classPropertyName: "templateLeftBottomInput", publicName: "templateLeftBottomInput", isSignal: true, isRequired: false, transformFunction: null }, templateRightBottomInput: { classPropertyName: "templateRightBottomInput", publicName: "templateRightBottomInput", isSignal: true, isRequired: false, transformFunction: null }, onlyAcceptNegativeValue: { classPropertyName: "onlyAcceptNegativeValue", publicName: "onlyAcceptNegativeValue", isSignal: true, isRequired: false, transformFunction: null }, autoAddZeroLessThan10InTypeInt: { classPropertyName: "autoAddZeroLessThan10InTypeInt", publicName: "autoAddZeroLessThan10InTypeInt", isSignal: true, isRequired: false, transformFunction: null }, maxLengthNumberCount: { classPropertyName: "maxLengthNumberCount", publicName: "maxLengthNumberCount", isSignal: true, isRequired: false, transformFunction: null }, classMessageErrorInclude: { classPropertyName: "classMessageErrorInclude", publicName: "classMessageErrorInclude", isSignal: true, isRequired: false, transformFunction: null }, ignoreStopPropagationEvent: { classPropertyName: "ignoreStopPropagationEvent", publicName: "ignoreStopPropagationEvent", isSignal: true, isRequired: false, transformFunction: null }, ignoreUnitRightClassReadOnly: { classPropertyName: "ignoreUnitRightClassReadOnly", publicName: "ignoreUnitRightClassReadOnly", isSignal: true, isRequired: false, transformFunction: null }, paddingRightCustomSpecific: { classPropertyName: "paddingRightCustomSpecific", publicName: "paddingRightCustomSpecific", isSignal: true, isRequired: false, transformFunction: null }, focusTimeOut: { classPropertyName: "focusTimeOut", publicName: "focusTimeOut", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { item: "itemChange", outValueChange: "outValueChange", outSelect: "outSelect", outIconLeft: "outIconLeft", outIconRight: "outIconRight", outClickButtonLabel: "outClickButtonLabel", outToggleEventLabel: "outToggleEventLabel", outLabelRightClick: "outLabelRightClick", outEnterInputEvent: "outEnterInputEvent", outHeightAreaChange: "outHeightAreaChange", outFunctionsControl: "outFunctionsControl", outFocusAndBlur: "outFocusAndBlur", outChangeValueByButtonUpDown: "outChangeValueByButtonUpDown" }, viewQueries: [{ propertyName: "elementLeftRef", first: true, predicate: ["elementLeftRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outToggleEvent)=\"handlerSwitchToggleLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .libs-ui-input-valid{position:relative;display:flex;align-items:center}:host .libs-ui-input-valid .libs-ui-input-valid-unit{height:32px;max-width:200px;overflow:hidden;text-align:center;border-radius:4px;background-color:#e6e7ea;display:none;align-items:center;padding:0 8px;border:1px solid #E6E7EA}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-left{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-right{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none}:host .libs-ui-input-valid .libs-ui-input-valid-left{display:flex;align-items:center;justify-content:flex-start}:host .libs-ui-input-valid .libs-ui-input-valid-right{display:flex;align-items:center;justify-content:flex-end}:host .libs-ui-input-valid-error{display:flex;align-items:center;margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsInputComponent, selector: "libs_ui-components-inputs-input", inputs: ["tagInput", "dataType", "tabInsertContentTagInput", "textAreaEnterNotNewLine", "emitEmptyInDataTypeNumber", "keepZeroInTypeInt", "autoAddZeroLessThan10InTypeInt", "ignoreBlockInputMaxValue", "hiddenContent", "maxValueNumber", "minValueNumber", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "classInclude", "maxLength", "readonly", "disable", "noBorder", "backgroundNone", "borderError", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "value", "autoRemoveEmoji", "defaultHeight", "minHeightTextArea", "maxHeightTextArea", "focusTimeOut", "blurTimeOut", "zIndexPopoverContent", "classContainerInput", "showCount", "ignoreStopPropagationEvent", "resize", "templateLeftBottomInput", "templateRightBottomInput", "classContainerBottomInput", "ignoreWidthInput100", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "resetAutoCompletePassword", "acceptOnlyClickIcon", "setIconRightColorSameColorDisableReadOnly", "onlyAcceptNegativeValue", "maxLengthNumberCount", "focusInput"], outputs: ["maxValueNumberChange", "minValueNumberChange", "fixedFloatChange", "acceptNegativeValueChange", "maxLengthChange", "valueChange", "maxLengthNumberCountChange", "outHeightAreaChange", "outChange", "outFocusAndBlurEvent", "outEnterEvent", "outInputEvent", "outIconLeft", "outIconRight", "outFunctionsControl", "outFilesDrop", "outFileDrop", "outChangeValueByButtonUpDown"] }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outToggleEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "component", type: LibsUiComponentsCheckboxSingleComponent, selector: "libs_ui-components-checkbox-single", inputs: ["key", "checked", "label", "classLabelInclude", "ignoreShowPopoverLabel", "typeLabelPopover", "popover", "linkImage", "linkImageError", "avatarConfig", "classImageInclude", "imgTypeIcon", "bullet", "classInclude", "clickExactly", "disable", "disableLabel", "ignoreCheckbox", "zIndexLabel", "stillOtherOptions", "error", "showBorderError", "description", "iconImageClass", "classIconInclude", "modeBorder"], outputs: ["checkedChange", "linkImageChange", "outChange", "outEventPopover", "outClickLabel", "outChangStageFlagMousePopover"] }, { kind: "component", type: LibsUiComponentsRadioSingleComponent, selector: "libs_ui-components-radio-single", inputs: ["key", "active", "classInclude", "label", "labelInterpolateParams", "ignorePopoverLabe", "classLabelInclude", "linkImage", "linkImageError", "avatarConfig", "classImageInclude", "imgTypeIcon", "bullet", "popover", "disable", "disableLabel", "clickExactly", "typeRadio", "ignoreRadio", "zIndexLabel", "classIncludeIcon"], outputs: ["activeChange", "outClickLabel", "outChange", "outChangStageFlagMousePopover"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
279
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsValidComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
280
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsValidComponent, isStandalone: true, selector: "libs_ui-components-inputs-valid", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, emitEmptyInDataTypeNumber: { classPropertyName: "emitEmptyInDataTypeNumber", publicName: "emitEmptyInDataTypeNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreBlockInputMaxValue: { classPropertyName: "ignoreBlockInputMaxValue", publicName: "ignoreBlockInputMaxValue", isSignal: true, isRequired: false, transformFunction: null }, fieldNameBind: { classPropertyName: "fieldNameBind", publicName: "fieldNameBind", isSignal: true, isRequired: true, transformFunction: null }, showCount: { classPropertyName: "showCount", publicName: "showCount", isSignal: true, isRequired: false, transformFunction: null }, typeComponentSelectItem: { classPropertyName: "typeComponentSelectItem", publicName: "typeComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, valueComponentSelectItem: { classPropertyName: "valueComponentSelectItem", publicName: "valueComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, disableComponentSelectItem: { classPropertyName: "disableComponentSelectItem", publicName: "disableComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, tagInput: { classPropertyName: "tagInput", publicName: "tagInput", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null }, resetAutoCompletePassword: { classPropertyName: "resetAutoCompletePassword", publicName: "resetAutoCompletePassword", isSignal: true, isRequired: false, transformFunction: null }, textAreaEnterNotNewLine: { classPropertyName: "textAreaEnterNotNewLine", publicName: "textAreaEnterNotNewLine", isSignal: true, isRequired: false, transformFunction: null }, hiddenContent: { classPropertyName: "hiddenContent", publicName: "hiddenContent", isSignal: true, isRequired: false, transformFunction: null }, fixedFloat: { classPropertyName: "fixedFloat", publicName: "fixedFloat", isSignal: true, isRequired: false, transformFunction: null }, acceptNegativeValue: { classPropertyName: "acceptNegativeValue", publicName: "acceptNegativeValue", isSignal: true, isRequired: false, transformFunction: null }, valueUpDownNumber: { classPropertyName: "valueUpDownNumber", publicName: "valueUpDownNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidthInput100: { classPropertyName: "ignoreWidthInput100", publicName: "ignoreWidthInput100", isSignal: true, isRequired: false, transformFunction: null }, classIncludeInput: { classPropertyName: "classIncludeInput", publicName: "classIncludeInput", isSignal: true, isRequired: false, transformFunction: null }, classContainerInput: { classPropertyName: "classContainerInput", publicName: "classContainerInput", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, noBorder: { classPropertyName: "noBorder", publicName: "noBorder", isSignal: true, isRequired: false, transformFunction: null }, backgroundNone: { classPropertyName: "backgroundNone", publicName: "backgroundNone", isSignal: true, isRequired: false, transformFunction: null }, useColorModeExist: { classPropertyName: "useColorModeExist", publicName: "useColorModeExist", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, keepPlaceholderOnly: { classPropertyName: "keepPlaceholderOnly", publicName: "keepPlaceholderOnly", isSignal: true, isRequired: false, transformFunction: null }, classContainerBottomInput: { classPropertyName: "classContainerBottomInput", publicName: "classContainerBottomInput", isSignal: true, isRequired: false, transformFunction: null }, autoRemoveEmoji: { classPropertyName: "autoRemoveEmoji", publicName: "autoRemoveEmoji", isSignal: true, isRequired: false, transformFunction: null }, defaultHeight: { classPropertyName: "defaultHeight", publicName: "defaultHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeightTextArea: { classPropertyName: "maxHeightTextArea", publicName: "maxHeightTextArea", isSignal: true, isRequired: false, transformFunction: null }, minHeightTextArea: { classPropertyName: "minHeightTextArea", publicName: "minHeightTextArea", isSignal: true, isRequired: false, transformFunction: null }, ignoreShowError: { classPropertyName: "ignoreShowError", publicName: "ignoreShowError", isSignal: true, isRequired: false, transformFunction: null }, borderError: { classPropertyName: "borderError", publicName: "borderError", isSignal: true, isRequired: false, transformFunction: null }, iconLeftClass: { classPropertyName: "iconLeftClass", publicName: "iconLeftClass", isSignal: true, isRequired: false, transformFunction: null }, popoverContentIconLeft: { classPropertyName: "popoverContentIconLeft", publicName: "popoverContentIconLeft", isSignal: true, isRequired: false, transformFunction: null }, iconRightClass: { classPropertyName: "iconRightClass", publicName: "iconRightClass", isSignal: true, isRequired: false, transformFunction: null }, popoverContentIconRight: { classPropertyName: "popoverContentIconRight", publicName: "popoverContentIconRight", isSignal: true, isRequired: false, transformFunction: null }, zIndexPopoverContent: { classPropertyName: "zIndexPopoverContent", publicName: "zIndexPopoverContent", isSignal: true, isRequired: false, transformFunction: null }, unitsLeft: { classPropertyName: "unitsLeft", publicName: "unitsLeft", isSignal: true, isRequired: false, transformFunction: null }, configUnitLeft: { classPropertyName: "configUnitLeft", publicName: "configUnitLeft", isSignal: true, isRequired: false, transformFunction: null }, keySelectedUnitLeft: { classPropertyName: "keySelectedUnitLeft", publicName: "keySelectedUnitLeft", isSignal: true, isRequired: false, transformFunction: null }, unitsRight: { classPropertyName: "unitsRight", publicName: "unitsRight", isSignal: true, isRequired: false, transformFunction: null }, configUnitRight: { classPropertyName: "configUnitRight", publicName: "configUnitRight", isSignal: true, isRequired: false, transformFunction: null }, keySelectedUnitRight: { classPropertyName: "keySelectedUnitRight", publicName: "keySelectedUnitRight", isSignal: true, isRequired: false, transformFunction: null }, maxValueNumber: { classPropertyName: "maxValueNumber", publicName: "maxValueNumber", isSignal: true, isRequired: false, transformFunction: null }, minValueNumber: { classPropertyName: "minValueNumber", publicName: "minValueNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreContentLeft: { classPropertyName: "ignoreContentLeft", publicName: "ignoreContentLeft", isSignal: true, isRequired: false, transformFunction: null }, ignoreContentRight: { classPropertyName: "ignoreContentRight", publicName: "ignoreContentRight", isSignal: true, isRequired: false, transformFunction: null }, isBaselineStyle: { classPropertyName: "isBaselineStyle", publicName: "isBaselineStyle", isSignal: true, isRequired: false, transformFunction: null }, valuePatternShowError: { classPropertyName: "valuePatternShowError", publicName: "valuePatternShowError", isSignal: true, isRequired: false, transformFunction: null }, validPattern: { classPropertyName: "validPattern", publicName: "validPattern", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null }, validMinLength: { classPropertyName: "validMinLength", publicName: "validMinLength", isSignal: true, isRequired: false, transformFunction: null }, validMinValue: { classPropertyName: "validMinValue", publicName: "validMinValue", isSignal: true, isRequired: false, transformFunction: null }, validMaxValue: { classPropertyName: "validMaxValue", publicName: "validMaxValue", isSignal: true, isRequired: false, transformFunction: null }, validMaxLength: { classPropertyName: "validMaxLength", publicName: "validMaxLength", isSignal: true, isRequired: false, transformFunction: null }, functionValid: { classPropertyName: "functionValid", publicName: "functionValid", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, positionMessageErrorStartInput: { classPropertyName: "positionMessageErrorStartInput", publicName: "positionMessageErrorStartInput", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, resize: { classPropertyName: "resize", publicName: "resize", isSignal: true, isRequired: false, transformFunction: null }, templateLeftBottomInput: { classPropertyName: "templateLeftBottomInput", publicName: "templateLeftBottomInput", isSignal: true, isRequired: false, transformFunction: null }, templateRightBottomInput: { classPropertyName: "templateRightBottomInput", publicName: "templateRightBottomInput", isSignal: true, isRequired: false, transformFunction: null }, onlyAcceptNegativeValue: { classPropertyName: "onlyAcceptNegativeValue", publicName: "onlyAcceptNegativeValue", isSignal: true, isRequired: false, transformFunction: null }, autoAddZeroLessThan10InTypeInt: { classPropertyName: "autoAddZeroLessThan10InTypeInt", publicName: "autoAddZeroLessThan10InTypeInt", isSignal: true, isRequired: false, transformFunction: null }, maxLengthNumberCount: { classPropertyName: "maxLengthNumberCount", publicName: "maxLengthNumberCount", isSignal: true, isRequired: false, transformFunction: null }, classMessageErrorInclude: { classPropertyName: "classMessageErrorInclude", publicName: "classMessageErrorInclude", isSignal: true, isRequired: false, transformFunction: null }, ignoreStopPropagationEvent: { classPropertyName: "ignoreStopPropagationEvent", publicName: "ignoreStopPropagationEvent", isSignal: true, isRequired: false, transformFunction: null }, ignoreUnitRightClassReadOnly: { classPropertyName: "ignoreUnitRightClassReadOnly", publicName: "ignoreUnitRightClassReadOnly", isSignal: true, isRequired: false, transformFunction: null }, paddingRightCustomSpecific: { classPropertyName: "paddingRightCustomSpecific", publicName: "paddingRightCustomSpecific", isSignal: true, isRequired: false, transformFunction: null }, focusTimeOut: { classPropertyName: "focusTimeOut", publicName: "focusTimeOut", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { item: "itemChange", outValueChange: "outValueChange", outSelect: "outSelect", outIconLeft: "outIconLeft", outIconRight: "outIconRight", outClickButtonLabel: "outClickButtonLabel", outSwitchEventLabel: "outSwitchEventLabel", outLabelRightClick: "outLabelRightClick", outEnterInputEvent: "outEnterInputEvent", outHeightAreaChange: "outHeightAreaChange", outFunctionsControl: "outFunctionsControl", outFocusAndBlur: "outFocusAndBlur", outChangeValueByButtonUpDown: "outChangeValueByButtonUpDown" }, viewQueries: [{ propertyName: "elementLeftRef", first: true, predicate: ["elementLeftRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outSwitchEvent)=\"handlerSwitchLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .libs-ui-input-valid{position:relative;display:flex;align-items:center}:host .libs-ui-input-valid .libs-ui-input-valid-unit{height:32px;max-width:200px;overflow:hidden;text-align:center;border-radius:4px;background-color:#e6e7ea;display:none;align-items:center;padding:0 8px;border:1px solid #E6E7EA}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-left{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-right{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none}:host .libs-ui-input-valid .libs-ui-input-valid-left{display:flex;align-items:center;justify-content:flex-start}:host .libs-ui-input-valid .libs-ui-input-valid-right{display:flex;align-items:center;justify-content:flex-end}:host .libs-ui-input-valid-error{display:flex;align-items:center;margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsInputComponent, selector: "libs_ui-components-inputs-input", inputs: ["tagInput", "dataType", "tabInsertContentTagInput", "textAreaEnterNotNewLine", "emitEmptyInDataTypeNumber", "keepZeroInTypeInt", "autoAddZeroLessThan10InTypeInt", "ignoreBlockInputMaxValue", "hiddenContent", "maxValueNumber", "minValueNumber", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "classInclude", "maxLength", "readonly", "disable", "noBorder", "backgroundNone", "borderError", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "value", "autoRemoveEmoji", "defaultHeight", "minHeightTextArea", "maxHeightTextArea", "focusTimeOut", "blurTimeOut", "zIndexPopoverContent", "classContainerInput", "showCount", "ignoreStopPropagationEvent", "resize", "templateLeftBottomInput", "templateRightBottomInput", "classContainerBottomInput", "ignoreWidthInput100", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "resetAutoCompletePassword", "acceptOnlyClickIcon", "setIconRightColorSameColorDisableReadOnly", "onlyAcceptNegativeValue", "maxLengthNumberCount", "focusInput"], outputs: ["maxValueNumberChange", "minValueNumberChange", "fixedFloatChange", "acceptNegativeValueChange", "maxLengthChange", "valueChange", "maxLengthNumberCountChange", "outHeightAreaChange", "outChange", "outFocusAndBlurEvent", "outEnterEvent", "outInputEvent", "outIconLeft", "outIconRight", "outFunctionsControl", "outFilesDrop", "outFileDrop", "outChangeValueByButtonUpDown"] }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "component", type: LibsUiComponentsCheckboxSingleComponent, selector: "libs_ui-components-checkbox-single", inputs: ["key", "checked", "label", "classLabelInclude", "ignoreShowPopoverLabel", "typeLabelPopover", "popover", "linkImage", "linkImageError", "avatarConfig", "classImageInclude", "imgTypeIcon", "bullet", "classInclude", "clickExactly", "disable", "disableLabel", "ignoreCheckbox", "zIndexLabel", "stillOtherOptions", "error", "showBorderError", "description", "iconImageClass", "classIconInclude", "modeBorder"], outputs: ["checkedChange", "linkImageChange", "outChange", "outEventPopover", "outClickLabel", "outChangStageFlagMousePopover"] }, { kind: "component", type: LibsUiComponentsRadioSingleComponent, selector: "libs_ui-components-radio-single", inputs: ["key", "active", "classInclude", "label", "labelInterpolateParams", "ignorePopoverLabe", "classLabelInclude", "linkImage", "linkImageError", "avatarConfig", "classImageInclude", "imgTypeIcon", "bullet", "popover", "disable", "disableLabel", "clickExactly", "typeRadio", "ignoreRadio", "zIndexLabel", "classIncludeIcon"], outputs: ["activeChange", "outClickLabel", "outChange", "outChangStageFlagMousePopover"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
288
281
  }
289
282
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsValidComponent, decorators: [{
290
283
  type: Component,
291
- args: [{ selector: 'libs_ui-components-inputs-valid', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule,
284
+ args: [{ selector: 'libs_ui-components-inputs-valid', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
285
+ TranslateModule,
292
286
  LibsUiComponentsInputsInputComponent,
293
287
  LibsUiComponentsLabelComponent,
294
288
  LibsUiComponentsCheckboxSingleComponent,
295
289
  LibsUiComponentsRadioSingleComponent,
296
- LibsUiComponentsPopoverComponent], template: "@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outToggleEvent)=\"handlerSwitchToggleLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .libs-ui-input-valid{position:relative;display:flex;align-items:center}:host .libs-ui-input-valid .libs-ui-input-valid-unit{height:32px;max-width:200px;overflow:hidden;text-align:center;border-radius:4px;background-color:#e6e7ea;display:none;align-items:center;padding:0 8px;border:1px solid #E6E7EA}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-left{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-right{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none}:host .libs-ui-input-valid .libs-ui-input-valid-left{display:flex;align-items:center;justify-content:flex-start}:host .libs-ui-input-valid .libs-ui-input-valid-right{display:flex;align-items:center;justify-content:flex-end}:host .libs-ui-input-valid-error{display:flex;align-items:center;margin-top:8px}\n"] }]
297
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
298
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy92YWxpZC9zcmMvdmFsaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy92YWxpZC9zcmMvdmFsaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQThDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25MLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlGLE9BQU8sRUFBa0Qsb0NBQW9DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4SSxPQUFPLEVBQVUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5TyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQWtCdEQsTUFBTSxPQUFPLG9DQUFvQztJQWtIM0I7SUFqSHBCLGNBQWM7SUFDSixXQUFXLEdBQUcsTUFBTSxDQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIs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QVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUMzQixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO3dHQWxVVSxvQ0FBb0M7NEZBQXBDLG9DQUFvQyxpblhDN0JqRCxnM1BBbUpBLDQvQkQ3SFksZUFBZSw0RkFDdkIsb0NBQW9DLDg5Q0FDcEMsOEJBQThCLDRxQkFDOUIsdUNBQXVDLGduQkFDdkMsb0NBQW9DLGdmQUNwQyxnQ0FBZ0M7OzRGQUV2QixvQ0FBb0M7a0JBZGhELFNBQVM7K0JBRUUsaUNBQWlDLGNBRy9CLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGVBQWU7d0JBQ3ZCLG9DQUFvQzt3QkFDcEMsOEJBQThCO3dCQUM5Qix1Q0FBdUM7d0JBQ3ZDLG9DQUFvQzt3QkFDcEMsZ0NBQWdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBlZmZlY3QsIGlucHV0LCBtb2RlbCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUJ1dHRvbiB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1idXR0b24nO1xuaW1wb3J0IHsgSVRvZ2dsZUV2ZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLXRvZ2dsZSc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzQ2hlY2tib3hTaW5nbGVDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWNoZWNrYm94LXNpbmdsZSc7XG5pbXBvcnQgeyBJRm9jdXNBbmRCbHVyRXZlbnQsIElJbnB1dEZ1bmN0aW9uQ29udHJvbEV2ZW50LCBMaWJzVWlDb21wb25lbnRzSW5wdXRzSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy1pbnB1dCc7XG5pbXBvcnQgeyBJTGFiZWwsIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbGFiZWwnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXBvcG92ZXInO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c1JhZGlvU2luZ2xlQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1yYWRpby1zaW5nbGUnO1xuaW1wb3J0IHsgSUJvdW5kaW5nQ2xpZW50UmVjdCwgSUV2ZW50LCBUWVBFX1RFTVBMQVRFX1JFRiB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgRVJST1JfTUVTU0FHRV9FTVBUWV9WQUxJRCwgRVJST1JfTUVTU0FHRV9NQVhfTEVOR1RILCBFUlJPUl9NRVNTQUdFX01BWF9WQUxJRCwgRVJST1JfTUVTU0FHRV9NSU5fTEVOR1RILCBFUlJPUl9NRVNTQUdFX01JTl9WQUxJRCwgRVJST1JfTUVTU0FHRV9QQVRURU5fVkFMSUQsIGNsb25lRGVlcCwgaXNOaWwsIHNldCwgdmlld0RhdGFOdW1iZXJCeUxhbmd1YWdlIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IElJbnB1dFZhbGlkVW5pdENvbmZpZywgSVZhbGlkLCBJVmFsaWRMZW5ndGgsIElWYWxpZFBhdHRlcm4sIElWYWxpZFJlcXVpcmVkLCBUWVBFX0ZVTkNUSU9OX0lOUFVUX1ZBTElEIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3ZhbGlkLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtdmFsaWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdmFsaWQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92YWxpZC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZSxcbiAgICBMaWJzVWlDb21wb25lbnRzSW5wdXRzSW5wdXRDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNDaGVja2JveFNpbmdsZUNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzUmFkaW9TaW5nbGVDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNWYWxpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgLyogUFJPUEVSVFkgKi9cbiAgcHJvdGVjdGVkIHNpbmdsZUVycm9yID0gc2lnbmFsPElWYWxpZD4oeyBtZXNzYWdlOiB1bmRlZmluZWQsIGludGVycG9sYXRlUGFyYW1zOiB1bmRlZmluZWQgfSk7XG4gIHByb3RlY3RlZCByZWN0TGVmdCA9IHNpZ25hbDxJQm91bmRpbmdDbGllbnRSZWN0IHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHRpbWVyID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByaXZhdGUgdGltZXJWYWx1ZUNoYW5nZSA9IHNpZ25hbDxudW1iZXI+KDApO1xuICBwcml2YXRlIGZ1bmN0aW9uQ29udHJvbElucHV0OiBJSW5wdXRGdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZDtcblxuICAvKiBJTlBVVCAqL1xuICByZWFkb25seSBpdGVtID0gbW9kZWwucmVxdWlyZWQ8UmVjb3JkPHN0cmluZywgYW55Pj4oe30pO1xuICByZWFkb25seSBsYWJlbENvbmZpZyA9IGlucHV0PElMYWJlbD4oKTtcbiAgcmVhZG9ubHkgZW1pdEVtcHR5SW5EYXRhVHlwZU51bWJlciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZUJsb2NrSW5wdXRNYXhWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGZpZWxkTmFtZUJpbmQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHNob3dDb3VudCA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgcmVhZG9ubHkgdHlwZUNvbXBvbmVudFNlbGVjdEl0ZW0gPSBpbnB1dDwncmFkaW8nIHwgJ2NoZWNrYm94JyB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgdmFsdWVDb21wb25lbnRTZWxlY3RJdGVtID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZUNvbXBvbmVudFNlbGVjdEl0ZW0gPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IHRhZ0lucHV0ID0gaW5wdXQ8J2lucHV0JyB8ICd0ZXh0YXJlYScgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGRhdGFUeXBlID0gaW5wdXQ8J3N0cmluZycgfCAnaW50JyB8ICdmbG9hdCcgfCAnYmlnaW50JyB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgcmVzZXRBdXRvQ29tcGxldGVQYXNzd29yZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHRleHRBcmVhRW50ZXJOb3ROZXdMaW5lID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaGlkZGVuQ29udGVudCA9IGlucHV0PGJvb2xlYW4+KCk7IC8vIHPhu60gZOG7pW5nIMSR4buDIHNldCB0eXBlIGNobyBpbnB1dCBk4bqhbmcgdGV4dCBoYXkgcGFzc3dvcmRcbiAgcmVhZG9ubHkgZml4ZWRGbG9hdCA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgYWNjZXB0TmVnYXRpdmVWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHZhbHVlVXBEb3duTnVtYmVyID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBpZ25vcmVXaWR0aElucHV0MTAwID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSW5wdXQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNsYXNzQ29udGFpbmVySW5wdXQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG5vQm9yZGVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYmFja2dyb3VuZE5vbmUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSB1c2VDb2xvck1vZGVFeGlzdCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBrZWVwUGxhY2Vob2xkZXJPbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSBjbGFzc0NvbnRhaW5lckJvdHRvbUlucHV0ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBhdXRvUmVtb3ZlRW1vamkgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBkZWZhdWx0SGVpZ2h0ID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBtYXhIZWlnaHRUZXh0QXJlYSA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgbWluSGVpZ2h0VGV4dEFyZWEgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVNob3dFcnJvciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGJvcmRlckVycm9yID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSBpY29uTGVmdENsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBwb3BvdmVyQ29udGVudEljb25MZWZ0ID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBpY29uUmlnaHRDbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcG9wb3ZlckNvbnRlbnRJY29uUmlnaHQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHpJbmRleFBvcG92ZXJDb250ZW50ID0gaW5wdXQ8bnVtYmVyPigpO1xuXG4gIHJlYWRvbmx5IHVuaXRzTGVmdCA9IGlucHV0PEFycmF5PGFueT4+KCk7XG4gIHJlYWRvbmx5IGNvbmZpZ1VuaXRMZWZ0ID0gaW5wdXQ8SUlucHV0VmFsaWRVbml0Q29uZmlnPih7XG4gICAgZmllbGRLZXk6ICdpZCcsXG4gICAgZmllbGRMYWJlbDogJ2xhYmVsJyxcbiAgfSk7XG4gIHJlYWRvbmx5IGtleVNlbGVjdGVkVW5pdExlZnQgPSBpbnB1dDxhbnk+KCk7XG5cbiAgcmVhZG9ubHkgdW5pdHNSaWdodCA9IGlucHV0PEFycmF5PGFueT4+KCk7XG4gIHJlYWRvbmx5IGNvbmZpZ1VuaXRSaWdodCA9IGlucHV0PElJbnB1dFZhbGlkVW5pdENvbmZpZz4oe1xuICAgIGZpZWxkS2V5OiAnaWQnLFxuICAgIGZpZWxkTGFiZWw6ICdsYWJlbCcsXG4gIH0pO1xuICByZWFkb25seSBrZXlTZWxlY3RlZFVuaXRSaWdodCA9IGlucHV0PGFueT4oKTtcblxuICByZWFkb25seSBtYXhWYWx1ZU51bWJlciA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgbWluVmFsdWVOdW1iZXIgPSBpbnB1dDxudW1iZXI+KCk7XG5cbiAgcmVhZG9ubHkgaWdub3JlQ29udGVudExlZnQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBpZ25vcmVDb250ZW50UmlnaHQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBpc0Jhc2VsaW5lU3R5bGUgPSBpbnB1dDxib29sZWFuPigpOyAvLyBhbGlnbi1pdGVtcy1iYXNlbGluZSBkw7luZyBraGkgY8SDbiBpbnB1dCB0aOG6s25nIGjDoG5nIHbhu5tpIHThuqV0IGPhuqMgY8OhYyBwaOG6p24ga2jDoWMgZMO5IGPDsyB2YWxpZGF0ZSBoYXkgYuG6pXQgY+G7qSAxIGPDoWkgZ8OsXG5cbiAgcmVhZG9ubHkgdmFsdWVQYXR0ZXJuU2hvd0Vycm9yID0gaW5wdXQ8Ym9vbGVhbj4oKTsgLy8gbeG6t2MgxJHhu4tuaCBraGkgdGVzdCBwYXR0ZXJuIHRy4bqjIHThu4EgZ2nDoSB0cuG7iyBi4bqxbmcgZmFsc2Ugc+G6vSBiw6FvIGzhu5dpXG4gIHJlYWRvbmx5IHZhbGlkUGF0dGVybiA9IGlucHV0PEFycmF5PElWYWxpZFBhdHRlcm4+PigpO1xuICByZWFkb25seSB2YWxpZFJlcXVpcmVkID0gaW5wdXQ8SVZhbGlkUmVxdWlyZWQ+KCk7XG4gIHJlYWRvbmx5IHZhbGlkTWluTGVuZ3RoID0gaW5wdXQ8SVZhbGlkTGVuZ3RoPigpO1xuICByZWFkb25seSB2YWxpZE1pblZhbHVlID0gaW5wdXQ8SVZhbGlkPigpO1xuICByZWFkb25seSB2YWxpZE1heFZhbHVlID0gaW5wdXQ8SVZhbGlkPigpO1xuICByZWFkb25seSB2YWxpZE1heExlbmd0aCA9IGlucHV0PElWYWxpZD4oKTtcbiAgcmVhZG9ubHkgZnVuY3Rpb25WYWxpZCA9IGlucHV0PFRZUEVfRlVOQ1RJT05fSU5QVVRfVkFMSUQ+KCk7XG4gIHJlYWRvbmx5IG1heExlbmd0aCA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgcG9zaXRpb25NZXNzYWdlRXJyb3JTdGFydElucHV0ID0gaW5wdXQ8Ym9vbGVhbj4oKTsgLy8ga2hpIGPDsyB0ZW1wbGF0ZSBsZWZ0IHbDoCByaWdodCBtw6AgbXXhu5FuIG1lc2FnZSBlcnJvciB4deG6pXQgaGnhu4duIGLhuq90IMSR4bqndSB04burIMO0IGlucHV0IHRoYXkgdsOsIGLhuq90IMSR4bqndSB04burIHRlbXBsYXRlICB0csOhaVxuICByZWFkb25seSBjbGFzc0luY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHJlc2l6ZSA9IGlucHV0PCdhdXRvJyB8ICdub25lJz4oKTtcbiAgcmVhZG9ubHkgdGVtcGxhdGVMZWZ0Qm90dG9tSW5wdXQgPSBpbnB1dDxUZW1wbGF0ZVJlZjxUWVBFX1RFTVBMQVRFX1JFRj4+KCk7XG4gIHJlYWRvbmx5IHRlbXBsYXRlUmlnaHRCb3R0b21JbnB1dCA9IGlucHV0PFRlbXBsYXRlUmVmPFRZUEVfVEVNUExBVEVfUkVGPj4oKTtcbiAgcmVhZG9ubHkgb25seUFjY2VwdE5lZ2F0aXZlVmFsdWUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBhdXRvQWRkWmVyb0xlc3NUaGFuMTBJblR5cGVJbnQgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBtYXhMZW5ndGhOdW1iZXJDb3VudCA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgY2xhc3NNZXNzYWdlRXJyb3JJbmNsdWRlID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVVuaXRSaWdodENsYXNzUmVhZE9ubHkgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBwYWRkaW5nUmlnaHRDdXN0b21TcGVjaWZpYyA9IGlucHV0PG51bWJlcj4oKTsgLy8gZml4IHBhZGRpbmdSaWdodCBjb3VudCBrbyBhdXRvIHTDrW5oICM1MjE4NVxuICByZWFkb25seSBmb2N1c1RpbWVPdXQgPSBpbnB1dDxudW1iZXI+KCk7XG5cbiAgLyogT1VUUFVUICovXG4gIHJlYWRvbmx5IG91dFZhbHVlQ2hhbmdlID0gb3V0cHV0PGFueT4oKTtcbiAgcmVhZG9ubHkgb3V0U2VsZWN0ID0gb3V0cHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG91dEljb25MZWZ0ID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgb3V0SWNvblJpZ2h0ID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgb3V0Q2xpY2tCdXR0b25MYWJlbCA9IG91dHB1dDxJQnV0dG9uPigpO1xuICByZWFkb25seSBvdXRUb2dnbGVFdmVudExhYmVsID0gb3V0cHV0PElUb2dnbGVFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0TGFiZWxSaWdodENsaWNrID0gb3V0cHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG91dEVudGVySW5wdXRFdmVudCA9IG91dHB1dDxJRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dEhlaWdodEFyZWFDaGFuZ2UgPSBvdXRwdXQ8eyBpc0NoYW5nZTogYm9vbGVhbiB9PigpO1xuICByZWFkb25seSBvdXRGdW5jdGlvbnNDb250cm9sID0gb3V0cHV0PElJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dEZvY3VzQW5kQmx1ciA9IG91dHB1dDxJRm9jdXNBbmRCbHVyRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dENoYW5nZVZhbHVlQnlCdXR0b25VcERvd24gPSBvdXRwdXQ8dm9pZD4oKTtcblxuICAvKiBWSUVXIENISUxEICovXG4gIHJlYWRvbmx5IGVsZW1lbnRMZWZ0UmVmID0gdmlld0NoaWxkPEVsZW1lbnRSZWY+KCdlbGVtZW50TGVmdFJlZicpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXRlbSgpIHx8IHR5cGVvZiB0aGlzLml0ZW0oKSAhPT0gJ29iamVjdCcgfHwgdGhpcy5pdGVtKCkgaW5zdGFuY2VvZiBBcnJheSB8fCB0aGlzLml0ZW0oKSBpbnN0YW5jZW9mIE1hcCAmJiB0aGlzLml0ZW0oKSBpbnN0YW5jZW9mIFdlYWtNYXAgfHwgdGhpcy5pdGVtKCkgaW5zdGFuY2VvZiBTZXQgfHwgdGhpcy5pdGVtKCkgaW5zdGFuY2VvZiBXZWFrU2V0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ2V0UmVjdExlZnQoKTtcbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vdXRGdW5jdGlvbnNDb250cm9sLmVtaXQoe1xuICAgICAgY2hlY2tJc1ZhbGlkOiB0aGlzLmNoZWNrSXNWYWxpZC5iaW5kKHRoaXMpLFxuICAgICAgZGV0ZWN0Q2hhbmdlczogdGhpcy5kZXRlY3RDaGFuZ2VzLmJpbmQodGhpcyksXG4gICAgICBzZXRNZXNzYWdlRXJyb3I6IHRoaXMuc2V0TWVzc2FnZUVycm9yLmJpbmQodGhpcyksXG4gICAgICBibHVyOiBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0Py5ibHVyKCksXG4gICAgICBmb2N1czogYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5mdW5jdGlvbkNvbnRyb2xJbnB1dD8uZm9jdXMoKSxcbiAgICAgIGluc2VydENvbnRlbnQ6IGFzeW5jIChkYXRhOiBzdHJpbmcgfCBudW1iZXIpID0+IGF3YWl0IHRoaXMuZnVuY3Rpb25Db250cm9sSW5wdXQ/Lmluc2VydENvbnRlbnQoZGF0YSksXG4gICAgICByZXNldFZhbHVlOiBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0Py5yZXNldFZhbHVlKCksXG4gICAgICBjdXJyZW50U3RhdGVJc1ZhbGlkOiB0aGlzLmN1cnJlbnRTdGF0ZUlzVmFsaWQuYmluZCh0aGlzKSxcbiAgICAgIGdldEVsZW1lbnRWYWx1ZTogdGhpcy5nZXRFbGVtZW50VmFsdWUuYmluZCh0aGlzKSxcbiAgICAgIGNoZWNrQW5kRGlzYWJsZVVwRG93bkJ1dHRvbjogYXN5bmMgKHZhbHVlKSA9PiBhd2FpdCB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0Py5jaGVja0FuZERpc2FibGVVcERvd25CdXR0b24odmFsdWUpXG4gICAgfSk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJpdmF0ZSBjdXJyZW50U3RhdGVJc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLnNpbmdsZUVycm9yKCkubWVzc2FnZSA/IGZhbHNlIDogdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0Py5nZXRFbGVtZW50VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0Q2hhbmdlcygpIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclNlbGVjdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMub3V0U2VsZWN0LmVtaXQodmFsdWUpO1xuICB9XG4gIHByb3RlY3RlZCBoYW5kbGVyVmFsdWVDaGFuZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHRoaXMuaXRlbS51cGRhdGUoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gc2V0KGNsb25lRGVlcChpdGVtKSwgdGhpcy5maWVsZE5hbWVCaW5kKCksIHZhbHVlKTtcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuZnVuY3Rpb25WYWxpZCgpKSB7XG4gICAgICB0aGlzLnZhbGlkYXRlKHZhbHVlKTtcbiAgICAgIHRoaXMub3V0VmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lclZhbHVlQ2hhbmdlKCkpO1xuICAgIHRoaXMudGltZXJWYWx1ZUNoYW5nZS5zZXQoc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnZhbGlkYXRlKHZhbHVlKTtcbiAgICAgIHRoaXMub3V0VmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfSwgMTAwMCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFdmVudEljb25MZWZ0KGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vdXRJY29uTGVmdC5lbWl0KGV2ZW50TmFtZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckV2ZW50SWNvblJpZ2h0KGV2ZW50TmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5vdXRJY29uUmlnaHQuZW1pdChldmVudE5hbWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDbGlja0J1dHRvbkxhYmVsKGJ1dHRvbjogSUJ1dHRvbikge1xuICAgIHRoaXMub3V0Q2xpY2tCdXR0b25MYWJlbC5lbWl0KGJ1dHRvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclN3aXRjaFRvZ2dsZUxhYmVsKHRvZ2dsZUV2ZW50OiBJVG9nZ2xlRXZlbnQpIHtcbiAgICB0aGlzLm91dFRvZ2dsZUV2ZW50TGFiZWwuZW1pdCh0b2dnbGVFdmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckV2ZW50TGFiZWxSaWdodExhYmVsKCkge1xuICAgIHRoaXMub3V0TGFiZWxSaWdodENsaWNrLmVtaXQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckVudGVySW5wdXQoZTogSUV2ZW50KSB7XG4gICAgdGhpcy5vdXRFbnRlcklucHV0RXZlbnQuZW1pdChlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVySGVpZ2h0QXJlYUNoYW5nZShldmVudDogeyBpc0NoYW5nZTogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5vdXRIZWlnaHRBcmVhQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgdGhpcy5nZXRSZWN0TGVmdCgpO1xuICAgIHRoaXMuc2luZ2xlRXJyb3IudXBkYXRlKG9iaiA9PiAoeyAuLi5vYmosIG1lc3NhZ2U6IHVuZGVmaW5lZCB9KSk7XG4gICAgaWYgKHRoaXMudmFsaWRSZXF1aXJlZCgpICYmIHRoaXMudmFsaWRSZXF1aXJlZCgpPy5pc1JlcXVpcmVkICYmICgodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhdmFsdWUudHJpbSgpKSB8fCAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyAmJiBpc05pbCh2YWx1ZSkpKSkge1xuICAgICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoeyBtZXNzYWdlOiAodGhpcy52YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9FTVBUWV9WQUxJRCksIGludGVycG9sYXRlUGFyYW1zOiAodGhpcy52YWxpZFJlcXVpcmVkKCk/LmludGVycG9sYXRlUGFyYW1zIHx8IHt9KSB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLnZhbGlkTWluTGVuZ3RoKCk/Lm1lc3NhZ2UgJiYgdGhpcy52YWxpZE1pbkxlbmd0aD8ubGVuZ3RoID4gdmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNpbmdsZUVycm9yLnNldCh7IG1lc3NhZ2U6ICh0aGlzLnZhbGlkTWluTGVuZ3RoKCk/Lm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9NSU5fTEVOR1RIKSwgaW50ZXJwb2xhdGVQYXJhbXM6ICh0aGlzLnZhbGlkTWluTGVuZ3RoKCk/LmludGVycG9sYXRlUGFyYW1zIHx8IHt9KSB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB0aGlzLnZhbGlkUGF0dGVybigpICYmIHRoaXMudmFsaWRQYXR0ZXJuKCk/Lmxlbmd0aCAmJiB2YWx1ZSAmJiB2YWx1ZS50cmltKCkpIHtcbiAgICAgIGZvciAoY29uc3QgdmFsaWQgb2YgdGhpcy52YWxpZFBhdHRlcm4oKSB8fCBbXSkge1xuICAgICAgICBpZiAoIXZhbGlkLnBhdHRlcm4pIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gYCR7dmFsaWQucGF0dGVybn1gO1xuICAgICAgICBjb25zdCBpbmRleE9mU2xhc2ggPSBwYXR0ZXJuLmxhc3RJbmRleE9mKCcvJyk7XG5cbiAgICAgICAgaWYgKCFpbmRleE9mU2xhc2gpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYXR0ZXJuU3RyID0gcGF0dGVybi5zdWJzdHJpbmcoMSwgaW5kZXhPZlNsYXNoKTtcbiAgICAgICAgY29uc3QgcGF0dGVybkZsYWcgPSBwYXR0ZXJuLnN1YnN0cmluZyhpbmRleE9mU2xhc2ggKyAxLCBwYXR0ZXJuLmxlbmd0aCk7XG5cbiAgICAgICAgaWYgKG5ldyBSZWdFeHAocGF0dGVyblN0ciwgcGF0dGVybkZsYWcpLnRlc3QodmFsdWUpID09PSAodmFsaWQudmFsdWVQYXR0ZXJuU2hvd0Vycm9yID8/IHRoaXMudmFsdWVQYXR0ZXJuU2hvd0Vycm9yKSkge1xuICAgICAgICAgIHRoaXMuc2luZ2xlRXJyb3Iuc2V0KHsgbWVzc2FnZTogKHZhbGlkLm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9QQVRURU5fVkFMSUQpLCBpbnRlcnBvbGF0ZVBhcmFtczogKHZhbGlkLmludGVycG9sYXRlUGFyYW1zIHx8IHt9KSB9KTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMudmFsaWRNaW5WYWx1ZSgpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHRoaXMubWluVmFsdWVOdW1iZXIoKSA9PT0gJ251bWJlcicgJiYgdmFsdWUgPCAodGhpcy5taW5WYWx1ZU51bWJlcigpIHx8IE51bWJlci5NSU5fU0FGRV9JTlRFR0VSKSkge1xuICAgICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoeyBtZXNzYWdlOiAodGhpcy52YWxpZE1pblZhbHVlKCk/Lm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9NSU5fVkFMSUQpLCBpbnRlcnBvbGF0ZVBhcmFtczogKHRoaXMudmFsaWRNaW5WYWx1ZSgpPy5pbnRlcnBvbGF0ZVBhcmFtcyB8fCB7IHZhbHVlOiB0aGlzLm1pblZhbHVlTnVtYmVyKCkgfSkgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLmlnbm9yZUJsb2NrSW5wdXRNYXhWYWx1ZSgpIHx8IHRoaXMudmFsaWRNYXhWYWx1ZSgpPy5tZXNzYWdlKSAmJiB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInICYmIHR5cGVvZiB0aGlzLm1heFZhbHVlTnVtYmVyKCkgPT09ICdudW1iZXInICYmIHZhbHVlID4gKHRoaXMubWF4VmFsdWVOdW1iZXIoKSB8fCBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikpIHtcbiAgICAgIHRoaXMuc2luZ2xlRXJyb3Iuc2V0KHsgbWVzc2FnZTogKHRoaXMudmFsaWRNYXhWYWx1ZSgpPy5tZXNzYWdlIHx8IEVSUk9SX01FU1NBR0VfTUFYX1ZBTElEKSwgaW50ZXJwb2xhdGVQYXJhbXM6ICh0aGlzLnZhbGlkTWF4VmFsdWUoKT8uaW50ZXJwb2xhdGVQYXJhbXMgfHwgeyB2YWx1ZTogdGhpcy5tYXhWYWx1ZU51bWJlcigpIH0pIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFUeXBlKCkgPT09ICdiaWdpbnQnICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IG1heE1pblZhbHVlID0gQmlnSW50KDkyMikgKiBCaWdJbnQoMTApICoqIEJpZ0ludCgxOCkgLyBCaWdJbnQoMTAwKTtcbiAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gdmFsdWUuc3BsaXQoJy4nKTtcbiAgICAgIGxldCB2YWx1ZURpdmlkZWQgPSBCaWdJbnQoMSk7XG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgKGRlY2ltYWw/Lmxlbmd0aCB8fCAwKTsgaW5kZXgrKykge1xuICAgICAgICB2YWx1ZURpdmlkZWQgKj0gQmlnSW50KDEwKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsdWVDb21wYXJlID0gQmlnSW50KGAke2ludH0ke2RlY2ltYWwgfHwgJyd9YCkgKiAoQmlnSW50KDEwMDAwKSAvIHZhbHVlRGl2aWRlZCk7XG5cbiAgICAgIGlmICh2YWx1ZUNvbXBhcmUgPCAtbWF4TWluVmFsdWUpIHtcbiAgICAgICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoeyBtZXNzYWdlOiAodGhpcy52YWxpZE1pblZhbHVlKCk/Lm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9NSU5fVkFMSUQpLCBpbnRlcnBvbGF0ZVBhcmFtczogKHRoaXMudmFsaWRNaW5WYWx1ZSgpPy5pbnRlcnBvbGF0ZVBhcmFtcyB8fCB7IHZhbHVlOiB2aWV3RGF0YU51bWJlckJ5TGFuZ3VhZ2UoYC0ke21heE1pblZhbHVlIC8gQmlnSW50KDEwMDAwKX1gLCB0cnVlLCA0LCB0cnVlLCB0cnVlKSB9KSB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAodmFsdWVDb21wYXJlID4gbWF4TWluVmFsdWUpIHtcbiAgICAgICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoeyBtZXNzYWdlOiAodGhpcy52YWxpZE1heFZhbHVlKCk/Lm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9NQVhfVkFMSUQpLCBpbnRlcnBvbGF0ZVBhcmFtczogKHRoaXMudmFsaWRNYXhWYWx1ZSgpPy5pbnRlcnBvbGF0ZVBhcmFtcyB8fCB7IHZhbHVlOiB2aWV3RGF0YU51bWJlckJ5TGFuZ3VhZ2UoYCR7bWF4TWluVmFsdWUgLyBCaWdJbnQoMTAwMDApfWAsIHRydWUsIDQsIHRydWUsIHRydWUpIH0pIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubWF4TGVuZ3RoICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgKHRoaXMubWF4TGVuZ3RoKCkgfHwgTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIDwgdmFsdWUubGVuZ3RoKSB7XG4gICAgICB0aGlzLnNpbmdsZUVycm9yLnNldCh7IG1lc3NhZ2U6ICh0aGlzLnZhbGlkTWF4TGVuZ3RoKCk/Lm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9NQVhfTEVOR1RIKSwgaW50ZXJwb2xhdGVQYXJhbXM6ICh0aGlzLnZhbGlkTWF4TGVuZ3RoKCk/LmludGVycG9sYXRlUGFyYW1zIHx8IHsgbnVtYmVyOiB0aGlzLm1heExlbmd0aCB9KSB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5mdW5jdGlvblZhbGlkKCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHRoaXMuZnVuY3Rpb25WYWxpZCgpPy4odmFsdWUpO1xuXG4gICAgaWYgKHJlc3VsdCAmJiByZXN1bHQudGhlbikge1xuICAgICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoKGF3YWl0IHJlc3VsdCkpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2luZ2xlRXJyb3Iuc2V0KHJlc3VsdCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNoZWNrSXNWYWxpZCgpIHtcbiAgICBpZiAodGhpcy5pdGVtKCkgJiYgKHRoaXMucmVhZG9ubHkoKSB8fCB0aGlzLmRpc2FibGUoKSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lclZhbHVlQ2hhbmdlKCkpO1xuICAgIGF3YWl0IHRoaXMudmFsaWRhdGUodGhpcy5pdGVtKClbdGhpcy5maWVsZE5hbWVCaW5kKCldKTtcblxuICAgIHJldHVybiB0aGlzLnNpbmdsZUVycm9yKCkubWVzc2FnZSA/IGZhbHNlIDogdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0TWVzc2FnZUVycm9yKG1lc3NhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuc2luZ2xlRXJyb3IudXBkYXRlKG9iaiA9PiAoeyAuLi5vYmosIG1lc3NhZ2UgfSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDb250cm9sRnVuY3Rpb25JbnB1dChldmVudDogSUlucHV0RnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0ID0gZXZlbnQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckZvY3VzQW5kQmx1cihldmVudDogSUZvY3VzQW5kQmx1ckV2ZW50KSB7XG4gICAgdGhpcy5vdXRGb2N1c0FuZEJsdXIuZW1pdChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGdldFJlY3RMZWZ0KCkge1xuICAgIGlmICghdGhpcy5yZWN0TGVmdCgpIHx8IHRoaXMucG9zaXRpb25NZXNzYWdlRXJyb3JTdGFydElucHV0KCkpIHtcbiAgICAgIHRoaXMudGltZXIuc2V0KHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlY3RMZWZ0LnNldCh0aGlzLmVsZW1lbnRMZWZ0UmVmKCk/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO1xuICAgICAgfSkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2hhbmdlVmFsdWVCeUJ1dHRvblVwRG93bigpIHtcbiAgICB0aGlzLm91dENoYW5nZVZhbHVlQnlCdXR0b25VcERvd24uZW1pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIoKSk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXJWYWx1ZUNoYW5nZSgpKTtcbiAgfVxufVxuIiwiQGlmIChmaWVsZE5hbWVCaW5kKCkgJiYgaXRlbSgpOyBhcyBpdGVtKSB7XG4gIEBpZiAobGFiZWxDb25maWcoKTsgYXMgbGFiZWxDb25maWcpIHtcbiAgICA8bGlic191aS1jb21wb25lbnRzLWxhYmVsIFtjbGFzc0luY2x1ZGVdPVwibGFiZWxDb25maWcuY2xhc3NJbmNsdWRlXCJcbiAgICAgIFtsYWJlbExlZnRdPVwibGFiZWxDb25maWcubGFiZWxMZWZ0XCJcbiAgICAgIFtsYWJlbExlZnRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbExlZnRDbGFzc1wiXG4gICAgICBbcmVxdWlyZWRdPVwibGFiZWxDb25maWcucmVxdWlyZWQgXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCJsYWJlbENvbmZpZy5kZXNjcmlwdGlvblwiXG4gICAgICBbZGVzY3JpcHRpb25DbGFzc109XCJsYWJlbENvbmZpZy5kZXNjcmlwdGlvbkNsYXNzXCJcbiAgICAgIFtsYWJlbFJpZ2h0XT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRcIlxuICAgICAgW2xhYmVsUmlnaHRDbGFzc109XCJsYWJlbENvbmZpZy5sYWJlbFJpZ2h0Q2xhc3NcIlxuICAgICAgW29ubHlTaG93Q291bnRdPVwibGFiZWxDb25maWcub25seVNob3dDb3VudFwiXG4gICAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJkaXNhYmxlKCkgfHwgbGFiZWxDb25maWcuZGlzYWJsZUJ1dHRvbnNMZWZ0XCJcbiAgICAgIFtidXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuYnV0dG9uc1JpZ2h0XCJcbiAgICAgIFtkaXNhYmxlQnV0dG9uc1JpZ2h0XT1cImRpc2FibGUoKSB8fCBsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc1JpZ2h0XCJcbiAgICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICAgIFt0b2dnbGVBY3RpdmVdPVwibGFiZWxDb25maWcudG9nZ2xlQWN0aXZlXCJcbiAgICAgIFt0b2dnbGVEaXNhYmxlXT1cImRpc2FibGUoKSB8fCBsYWJlbENvbmZpZy50b2dnbGVEaXNhYmxlXCJcbiAgICAgIFtwb3BvdmVyXT1cImxhYmVsQ29uZmlnLnBvcG92ZXJcIlxuICAgICAgW2ljb25Qb3BvdmVyQ2xhc3NdPVwibGFiZWxDb25maWcuaWNvblBvcG92ZXJDbGFzc1wiXG4gICAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICAgIFtsaW1pdExlbmd0aF09XCJsYWJlbENvbmZpZy5saW1pdExlbmd0aFwiXG4gICAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgICBbZGlzYWJsZUJ1dHRvbnNEZXNjcmlwdGlvbl09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0Rlc2NyaXB0aW9uIHx8IGRpc2FibGUoKVwiXG4gICAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3NdPVwibGFiZWxDb25maWcuYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3NcIlxuICAgICAgW2NvdW50XT1cIml0ZW1bZmllbGROYW1lQmluZCgpXT8ubGVuZ3RoXCJcbiAgICAgIChvdXRDbGlja0J1dHRvbik9XCJoYW5kbGVyQ2xpY2tCdXR0b25MYWJlbCgkZXZlbnQpXCJcbiAgICAgIChvdXRUb2dnbGVFdmVudCk9XCJoYW5kbGVyU3dpdGNoVG9nZ2xlTGFiZWwoJGV2ZW50KVwiXG4gICAgICAob3V0TGFiZWxSaWdodENsaWNrKT1cImhhbmRsZXJFdmVudExhYmVsUmlnaHRMYWJlbCgpXCIgLz5cbiAgfVxuXG4gIDxkaXYgW2NsYXNzXT1cIidsaWJzLXVpLWlucHV0LXZhbGlkIHctZnVsbCAnICsgKGNsYXNzSW5jbHVkZSgpID8/ICcnKVwiXG4gICAgW2NsYXNzLml0ZW1zLWJhc2VsaW5lXT1cImlzQmFzZWxpbmVTdHlsZSgpXCI+XG4gICAgQGlmICghaWdub3JlQ29udGVudExlZnQoKSkge1xuICAgICAgPGRpdiAjZWxlbWVudExlZnRSZWZcbiAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWlucHV0LXZhbGlkLWxlZnRcIlxuICAgICAgICBbY2xhc3MuaXRlbXMtYmFzZWxpbmVdPVwiaXNCYXNlbGluZVN0eWxlKClcIj5cbiAgICAgICAgQGlmICh0eXBlQ29tcG9uZW50U2VsZWN0SXRlbSgpOyBhcyB0eXBlQ29tcG9uZW50U2VsZWN0SXRlbSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtci1bOHB4XVwiPlxuICAgICAgICAgICAgQGlmICh0eXBlQ29tcG9uZW50U2VsZWN0SXRlbSA9PT0nY2hlY2tib3gnKSB7XG4gICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtY2hlY2tib3gtc2luZ2xlIFtjaGVja2VkXT1cInZhbHVlQ29tcG9uZW50U2VsZWN0SXRlbSgpIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZV09XCJkaXNhYmxlKCkgfHwgZGlzYWJsZUNvbXBvbmVudFNlbGVjdEl0ZW0oKSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgKG91dENoYW5nZSk9XCJoYW5kbGVyU2VsZWN0KCRldmVudC5jaGVja2VkKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHR5cGVDb21wb25lbnRTZWxlY3RJdGVtID09PSdyYWRpbycpIHtcbiAgICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1yYWRpby1zaW5nbGUgW2FjdGl2ZV09XCJ2YWx1ZUNvbXBvbmVudFNlbGVjdEl0ZW0oKSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpIHx8IGRpc2FibGVDb21wb25lbnRTZWxlY3RJdGVtKCkgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIChvdXRDaGFuZ2UpPVwiaGFuZGxlclNlbGVjdCgkZXZlbnQuYWN0aXZlKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIubGlicy11aS1pbnB1dC12YWxpZC1sZWZ0LWNvbnRlbnQtY3VzdG9tXCIgLz5cbiAgICAgICAgQGZvciAodW5pdCBvZiB1bml0c0xlZnQoKTsgdHJhY2sgdW5pdCkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibGlicy11aS1pbnB1dC12YWxpZC11bml0IGxpYnMtdWktaW5wdXQtdmFsaWQtdW5pdC1sZWZ0ICFyb3VuZGVkLXRyLW5vbmUgIXJvdW5kZWQtYnItbm9uZSBsaWJzLXVpLWZvbnQtaDVyIHt7IGNvbmZpZ1VuaXRMZWZ0KCkuY2xhc3NJbmNsdWRlIHx8ICcnIH19XCJcbiAgICAgICAgICAgIFtjbGFzcy4hZmxleF09XCJ1bml0W2NvbmZpZ1VuaXRMZWZ0KCkuZmllbGRLZXldID09PSBrZXlTZWxlY3RlZFVuaXRMZWZ0KClcIlxuICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktcmVhZG9ubHldPVwicmVhZG9ubHkoKSB8fCBmYWxzZVwiXG4gICAgICAgICAgICBbY2xhc3MubGlicy11aS1kaXNhYmxlXT1cImRpc2FibGUoKSB8fCBmYWxzZVwiPlxuICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgW2NvbmZpZ109XCJ7bWF4V2lkdGg6MjUwLGRpcmVjdGlvbjonYm90dG9tJywgekluZGV4OiB6SW5kZXhQb3BvdmVyQ29udGVudCgpfVwiXG4gICAgICAgICAgICAgIFtpbm5lckh0bWxdPVwiKHVuaXRbY29uZmlnVW5pdExlZnQoKS5maWVsZExhYmVsIHx8ICdsYWJlbCddfHwgJyAnKSB8IHRyYW5zbGF0ZVwiIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy1pbnB1dCBbdGFnSW5wdXRdPVwidGFnSW5wdXQoKVwiXG4gICAgICBbZGF0YVR5cGVdPVwiZGF0YVR5cGUoKSB8fCAnc3RyaW5nJ1wiXG4gICAgICBbY2xhc3Mudy1mdWxsXT1cIiFpZ25vcmVXaWR0aElucHV0MTAwKClcIlxuICAgICAgW2lnbm9yZVdpZHRoSW5wdXQxMDBdPVwiaWdub3JlV2lkdGhJbnB1dDEwMCgpXCJcbiAgICAgIFt0ZXh0QXJlYUVudGVyTm90TmV3TGluZV09XCJ0ZXh0QXJlYUVudGVyTm90TmV3TGluZSgpIHx8IGZhbHNlXCJcbiAgICAgIFtjbGFzc0luY2x1ZGVdPVwiKGNsYXNzSW5jbHVkZUlucHV0KCkgfHwgJycpKyh1bml0c0xlZnQoKSAmJiB1bml0c0xlZnQoKT8ubGVuZ3RoID8gJyAhcm91bmRlZC10bC1ub25lICFyb3VuZGVkLWJsLW5vbmUnOicnKSsodW5pdHNSaWdodCgpPy5sZW5ndGggPyAnICFyb3VuZGVkLXRyLW5vbmUgIXJvdW5kZWQtYnItbm9uZSc6JycpXCJcbiAgICAgIFtoaWRkZW5Db250ZW50XT1cImhpZGRlbkNvbnRlbnQoKSB8fCBmYWxzZVwiXG4gICAgICBbbWF4VmFsdWVOdW1iZXJdPVwibWF4VmFsdWVOdW1iZXIoKVwiXG4gICAgICBbbWluVmFsdWVOdW1iZXJdPVwibWluVmFsdWVOdW1iZXIoKVwiXG4gICAgICBbZml4ZWRGbG9hdF09XCJmaXhlZEZsb2F0KCkgPz8gMVwiXG4gICAgICBbYWNjZXB0TmVnYXRpdmVWYWx1ZV09XCJhY2NlcHROZWdhdGl2ZVZhbHVlKClcIlxuICAgICAgW29ubHlBY2NlcHROZWdhdGl2ZVZhbHVlXT1cIm9ubHlBY2NlcHROZWdhdGl2ZVZhbHVlKClcIlxuICAgICAgW3ZhbHVlVXBEb3duTnVtYmVyXT1cInZhbHVlVXBEb3duTnVtYmVyKClcIlxuICAgICAgW21heExlbmd0aF09XCJtYXhMZW5ndGgoKVwiXG4gICAgICBbc2hvd0NvdW50XT1cInNob3dDb3VudCgpXCJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSgpXCJcbiAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKVwiXG4gICAgICBbYXV0b0FkZFplcm9MZXNzVGhhbjEwSW5UeXBlSW50XT1cImF1dG9BZGRaZXJvTGVzc1RoYW4xMEluVHlwZUludCgpXCJcbiAgICAgIFtub0JvcmRlcl09XCJub0JvcmRlcigpXCJcbiAgICAgIFtiYWNrZ3JvdW5kTm9uZV09XCJiYWNrZ3JvdW5kTm9uZSgpXCJcbiAgICAgIFt1c2VDb2xvck1vZGVFeGlzdF09XCJ1c2VDb2xvck1vZGVFeGlzdCgpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpIHx8ICcnXCJcbiAgICAgIFtrZWVwUGxhY2Vob2xkZXJPbmx5XT1cImtlZXBQbGFjZWhvbGRlck9ubHkoKVwiXG4gICAgICBbYXV0b1JlbW92ZUVtb2ppXT1cImF1dG9SZW1vdmVFbW9qaSgpXCJcbiAgICAgIFtkZWZhdWx0SGVpZ2h0XT1cImRlZmF1bHRIZWlnaHQoKVwiXG4gICAgICBbbWF4SGVpZ2h0VGV4dEFyZWFdPVwibWF4SGVpZ2h0VGV4dEFyZWEoKSB8fCAyNTBcIlxuICAgICAgW21pbkhlaWdodFRleHRBcmVhXT1cIm1pbkhlaWdodFRleHRBcmVhKClcIlxuICAgICAgW2JvcmRlckVycm9yXT1cImJvcmRlckVycm9yKCkgfHwgKCEhc2luZ2xlRXJyb3IoKS5tZXNzYWdlICYmICFpZ25vcmVTaG93RXJyb3IoKSlcIlxuICAgICAgW2ljb25MZWZ0Q2xhc3NdPVwiaWNvbkxlZnRDbGFzcygpXCJcbiAgICAgIFtwb3BvdmVyQ29udGVudEljb25MZWZ0XT1cInBvcG92ZXJDb250ZW50SWNvbkxlZnQoKVwiXG4gICAgICBbcG9wb3ZlckNvbnRlbnRJY29uUmlnaHRdPVwicG9wb3ZlckNvbnRlbnRJY29uUmlnaHQoKVwiXG4gICAgICBbaWNvblJpZ2h0Q2xhc3NdPVwiaWNvblJpZ2h0Q2xhc3MoKVwiXG4gICAgICBbekluZGV4UG9wb3ZlckNvbnRlbnRdPVwiekluZGV4UG9wb3ZlckNvbnRlbnQoKVwiXG4gICAgICBbZW1pdEVtcHR5SW5EYXRhVHlwZU51bWJlcl09XCJlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyKClcIlxuICAgICAgW2lnbm9yZUJsb2NrSW5wdXRNYXhWYWx1ZV09XCIhIWlnbm9yZUJsb2NrSW5wdXRNYXhWYWx1ZSgpID8gaWdub3JlQmxvY2tJbnB1dE1heFZhbHVlKCkgOih2YWxpZE1heFZhbHVlKCk/Lm1lc3NhZ2UgPyB0cnVlIDogZmFsc2UpXCJcbiAgICAgIFt2YWx1ZV09XCJpdGVtW2ZpZWxkTmFtZUJpbmQoKV1cIlxuICAgICAgW2NsYXNzQ29udGFpbmVySW5wdXRdPVwiY2xhc3NDb250YWluZXJJbnB1dCgpXCJcbiAgICAgIFtyZXNldEF1dG9Db21wbGV0ZVBhc3N3b3JkXT1cInJlc2V0QXV0b0NvbXBsZXRlUGFzc3dvcmQoKVwiXG4gICAgICBbcmVzaXplXT1cInJlc2l6ZSgpXCJcbiAgICAgIFtjbGFzc0NvbnRhaW5lckJvdHRvbUlucHV0XT1cImNsYXNzQ29udGFpbmVyQm90dG9tSW5wdXQoKVwiXG4gICAgICBbdGVtcGxhdGVMZWZ0Qm90dG9tSW5wdXRdPVwidGVtcGxhdGVMZWZ0Qm90dG9tSW5wdXQoKVwiXG4gICAgICBbdGVtcGxhdGVSaWdodEJvdHRvbUlucHV0XT1cInRlbXBsYXRlUmlnaHRCb3R0b21JbnB1dCgpXCJcbiAgICAgIFttYXhMZW5ndGhOdW1iZXJDb3VudF09XCJtYXhMZW5ndGhOdW1iZXJDb3VudCgpXCJcbiAgICAgIFtpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudF09XCJpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudCgpXCJcbiAgICAgIFtmb2N1c1RpbWVPdXRdPVwiZm9jdXNUaW1lT3V0KClcIlxuICAgICAgKHZhbHVlQ2hhbmdlKT1cImhhbmRsZXJWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChvdXRFbnRlckV2ZW50KT1cImhhbmRsZXJFbnRlcklucHV0KCRldmVudClcIlxuICAgICAgKG91dEljb25MZWZ0KT1cImhhbmRsZXJFdmVudEljb25MZWZ0KCRldmVudClcIlxuICAgICAgKG91dEljb25SaWdodCk9XCJoYW5kbGVyRXZlbnRJY29uUmlnaHQoJGV2ZW50KVwiXG4gICAgICAob3V0SGVpZ2h0QXJlYUNoYW5nZSk9XCJoYW5kbGVySGVpZ2h0QXJlYUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJDb250cm9sRnVuY3Rpb25JbnB1dCgkZXZlbnQpXCJcbiAgICAgIChvdXRGb2N1c0FuZEJsdXJFdmVudCk9XCJoYW5kbGVyRm9jdXNBbmRCbHVyKCRldmVudClcIlxuICAgICAgKG91dENoYW5nZVZhbHVlQnlCdXR0b25VcERvd24pPVwiaGFuZGxlckNoYW5nZVZhbHVlQnlCdXR0b25VcERvd24oKVwiIC8+XG5cbiAgICBAaWYgKCFpZ25vcmVDb250ZW50UmlnaHQoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktaW5wdXQtdmFsaWQtcmlnaHRcIlxuICAgICAgICBbY2xhc3MuaXRlbXMtYmFzZWxpbmVdPVwiaXNCYXNlbGluZVN0eWxlKClcIj5cbiAgICAgICAgQGZvciAodW5pdCBvZiB1bml0c1JpZ2h0KCk7IHRyYWNrIHVuaXQpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktaW5wdXQtdmFsaWQtdW5pdCBsaWJzLXVpLWlucHV0LXZhbGlkLXVuaXQtcmlnaHQgIXJvdW5kZWQtdGwtbm9uZSAhcm91bmRlZC1ibC1ub25lIGxpYnMtdWktZm9udC1oNXIge3sgY29uZmlnVW5pdFJpZ2h0KCkuY2xhc3NJbmNsdWRlIHx8ICdsaWJzLXVpLWJvcmRlci1nZW5lcmFsJyB9fVwiXG4gICAgICAgICAgICBbY2xhc3MuIWZsZXhdPVwidW5pdFtjb25maWdVbml0UmlnaHQoKS5maWVsZEtleV0gPT09IGtleVNlbGVjdGVkVW5pdFJpZ2h0KClcIlxuICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktcmVhZG9ubHldPVwiIWlnbm9yZVVuaXRSaWdodENsYXNzUmVhZE9ubHkoKSAmJiAocmVhZG9ubHkoKSB8fCBmYWxzZSlcIj5cbiAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtcG9wb3ZlciB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFtjb25maWddPVwie21heFdpZHRoOjI1MCxkaXJlY3Rpb246J2JvdHRvbScsIHpJbmRleDogekluZGV4UG9wb3ZlckNvbnRlbnQoKX1cIlxuICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIih1bml0W2NvbmZpZ1VuaXRSaWdodCgpLmZpZWxkTGFiZWwgfHwgJ2xhYmVsJ118fCAnICcpIHwgdHJhbnNsYXRlXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIubGlicy11aS1pbnB1dC12YWxpZC1yaWdodC1jb250ZW50LWN1c3RvbVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICA8L2Rpdj5cbiAgQGlmICghIXNpbmdsZUVycm9yKCkubWVzc2FnZSAmJiAhaWdub3JlU2hvd0Vycm9yKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1pbnB1dC12YWxpZC1lcnJvciB7eyBjbGFzc01lc3NhZ2VFcnJvckluY2x1ZGUoKSB8fCAnJyB9fVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJsaWJzLXVpLW1lc3NhZ2UtZXJyb3IgbGlicy11aS1mb250LWg3ciBsaWJzLXVpLXRleHQtZXJyb3JcIlxuICAgICAgICBbc3R5bGUubWFyZ2luTGVmdC5weF09J3JlY3RMZWZ0KCk/LndpZHRoJ1xuICAgICAgICBbaW5uZXJIdG1sXT1cIihzaW5nbGVFcnJvcigpLm1lc3NhZ2UgfHwgJyAnKXwgdHJhbnNsYXRlOnNpbmdsZUVycm9yKCkuaW50ZXJwb2xhdGVQYXJhbXNcIj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgfVxufVxuIl19
290
+ LibsUiComponentsPopoverComponent
291
+ ], template: "@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outSwitchEvent)=\"handlerSwitchLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .libs-ui-input-valid{position:relative;display:flex;align-items:center}:host .libs-ui-input-valid .libs-ui-input-valid-unit{height:32px;max-width:200px;overflow:hidden;text-align:center;border-radius:4px;background-color:#e6e7ea;display:none;align-items:center;padding:0 8px;border:1px solid #E6E7EA}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-left{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-right{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none}:host .libs-ui-input-valid .libs-ui-input-valid-left{display:flex;align-items:center;justify-content:flex-start}:host .libs-ui-input-valid .libs-ui-input-valid-right{display:flex;align-items:center;justify-content:flex-end}:host .libs-ui-input-valid-error{display:flex;align-items:center;margin-top:8px}\n"] }]
292
+ }], ctorParameters: () => [] });
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy92YWxpZC9zcmMvdmFsaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy92YWxpZC9zcmMvdmFsaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQThDLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhLLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlGLE9BQU8sRUFBa0Qsb0NBQW9DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4SSxPQUFPLEVBQVUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUd4RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5TyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQW1CdEQsTUFBTSxPQUFPLG9DQUFvQztJQUMvQyxjQUFjO0lBQ0osV0FBVyxHQUFHLE1BQU0sQ0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNuRixRQUFRLEdBQUcsTUFBTSxDQUFrQyxTQUFTLENBQUMsQ0FBQztJQUNoRSxLQUFLLEdBQUcsTUFBTSxDQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzFCLGdCQUFnQixHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUNyQyxvQkFBb0IsQ0FBeUM7SUFFckUsV0FBVztJQUNGLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFzQixFQUFFLENBQUMsQ0FBQztJQUMvQyxXQUFXLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDOUIseUJBQXlCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDN0Msd0JBQXdCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDNUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVUsQ0FBQztJQUN6QyxTQUFTLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFFN0IsdUJBQXVCLEdBQUcsS0FBSyxFQUFvQyxDQUFDO0lBQ3BFLHdCQUF3QixHQUFHLEtBQUssRUFBVyxDQUFDO0lBQzVDLDBCQUEwQixHQUFHLEtBQUssRUFBVyxDQUFDO0lBRTlDLFFBQVEsR0FBRyxLQUFLLEVBQW9DLENBQUM7SUFDckQsUUFBUSxHQUFHLEtBQUssRUFBcUQsQ0FBQztJQUN0RSx5QkFBeUIsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUM3Qyx1QkFBdUIsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUMzQyxhQUFhLEdBQUcsS0FBSyxFQUFXLENBQUMsQ0FBQyx1REFBdUQ7SUFDekYsVUFBVSxHQUFHLEtBQUssRUFBVSxDQUFDO0lBQzdCLG1CQUFtQixHQUFHLEtBQUssRUFBVyxDQUFDO0lBQ3ZDLGlCQUFpQixHQUFHLEtBQUssRUFBc0IsQ0FBQztJQUNoRCxtQkFBbUIsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUN2QyxpQkFBaUIsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNwQyxtQkFBbUIsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUN0QyxRQUFRLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDNUIsT0FBTyxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQzNCLFFBQVEsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUM1QixjQUFjLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDbEMsaUJBQWlCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDckMsV0FBVyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBQzlCLG1CQUFtQixHQUFHLEtBQUssRUFBVyxDQUFDO0lBRXZDLHlCQUF5QixHQUFHLEtBQUssRUFBVSxDQUFDO0lBQzVDLGVBQWUsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUNuQyxhQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDaEMsaUJBQWlCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDcEMsaUJBQWlCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDcEMsZUFBZSxHQUFHLEtBQUssRUFBVyxDQUFDO0lBQ25DLFdBQVcsR0FBRyxLQUFLLEVBQVcsQ0FBQztJQUUvQixhQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDaEMsc0JBQXNCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDekMsY0FBYyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ2pDLHVCQUF1QixHQUFHLEtBQUssRUFBVSxDQUFDO0lBQzFDLG9CQUFvQixHQUFHLEtBQUssRUFBVSxDQUFDO0lBRXZDLFNBQVMsR0FBRyxLQUFLLEVBQWMsQ0FBQztJQUNoQyxjQUFjLEdBQUcsS0FBSyxDQUF3QjtRQUNyRCxRQUFRLEVBQUUsSUFBSTtRQUNkLFVBQVUsRUFBRSxPQUFPO0tBQ3BCLENBQUMsQ0FBQztJQUNNLG1CQUFtQixHQUFHLEtBQUssRUFBTyxDQUFDO0lBRW5DLFVBQVUsR0FBRyxLQUFLLEVBQWMsQ0FBQztJQUNqQyxlQUFlLEdBQUcsS0FBSyxDQUF3QjtRQUN0RCxRQUFRLEVBQUUsSUFBSTtRQUNkLFVBQVUsRUFBRSxPQUFPO0tBQ3BCLENBQUMsQ0FBQztJQUNNLG9CQUFvQixHQUFHLEtBQUssRUFBTyxDQUFDO0lBRXBDLGNBQWMsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNqQyxjQUFjLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFFakMsaUJBQWlCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDckMsa0JBQWtCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDdEMsZUFBZSxHQUFHLEtBQUssRUFBVyxDQUFDLENBQUMsaUhBQWlIO0lBRXJKLHFCQUFxQixHQUFHLEtBQUssRUFBVyxDQUFDLENBQUMsaUVBQWlFO0lBQzNHLFlBQVksR0FBRyxLQUFLLEVBQXdCLENBQUM7SUFDN0MsYUFBYSxHQUFHLEtBQUssRUFBa0IsQ0FBQztJQUN4QyxjQUFjLEdBQUcsS0FBSyxFQUFnQixDQUFDO0lBQ3ZDLGFBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUNoQyxhQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDaEMsY0FBYyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBQ2pDLGFBQWEsR0FBRyxLQUFLLEVBQTZCLENBQUM7SUFDbkQsU0FBUyxHQUFHLEtBQUssRUFBVSxDQUFDO0lBQzVCLDhCQUE4QixHQUFHLEtBQUssRUFBVyxDQUFDLENBQUMsb0hBQW9IO0lBQ3ZLLFlBQVksR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUMvQixNQUFNLEdBQUcsS0FBSyxFQUFtQixDQUFDO0lBQ2xDLHVCQUF1QixHQUFHLEtBQUssRUFBa0MsQ0FBQztJQUNsRSx3QkFBd0IsR0FBRyxLQUFLLEVBQWtDLENBQUM7SUFDbkUsdUJBQXVCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDM0MsOEJBQThCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDbEQsb0JBQW9CLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDdkMsd0JBQXdCLEdBQUcsS0FBSyxFQUFVLENBQUM7SUFDM0MsMEJBQTBCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDOUMsNEJBQTRCLEdBQUcsS0FBSyxFQUFXLENBQUM7SUFDaEQsMEJBQTBCLEdBQUcsS0FBSyxFQUFVLENBQUMsQ0FBQyw2Q0FBNkM7SUFDM0YsWUFBWSxHQUFHLEtBQUssRUFBVSxDQUFDO0lBRXhDLFlBQVk7SUFDSCxjQUFjLEdBQUcsTUFBTSxFQUFPLENBQUM7SUFDL0IsU0FBUyxHQUFHLE1BQU0sRUFBVyxDQUFDO0lBQzlCLFdBQVcsR0FBRyxNQUFNLEVBQVUsQ0FBQztJQUMvQixZQUFZLEdBQUcsTUFBTSxFQUFVLENBQUM7SUFDaEMsbUJBQW1CLEdBQUcsTUFBTSxFQUFXLENBQUM7SUFDeEMsbUJBQW1CLEdBQUcsTUFBTSxFQUFnQixDQUFDO0lBQzdDLGtCQUFrQixHQUFHLE1BQU0sRUFBVyxDQUFDO0lBQ3ZDLGtCQUFrQixHQUFHLE1BQU0sRUFBVSxDQUFDO0lBQ3RDLG1CQUFtQixHQUFHLE1BQU0sRUFBeUIsQ0FBQztJQUN0RCxtQkFBbUIsR0FBRyxNQUFNLEVBQW1DLENBQUM7SUFDaEUsZUFBZSxHQUFHLE1BQU0sRUFBc0IsQ0FBQztJQUMvQyw0QkFBNEIsR0FBRyxNQUFNLEVBQVEsQ0FBQztJQUV2RCxnQkFBZ0I7SUFDUCxjQUFjLEdBQUcsU0FBUyxDQUFhLGdCQUFnQixDQUFDLENBQUM7SUFFbEU7UUFDRSxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsWUFBWSxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVksT0FBTyxFQUFFLENBQUM7Z0JBQ3BOLE9BQU87WUFDVCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3JCLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1lBQzVCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDMUMsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNoRCxJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLEVBQUU7WUFDekQsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFO1lBQzNELGFBQWEsRUFBRSxLQUFLLEVBQUUsSUFBcUIsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLElBQUksQ0FBQztZQUNwRyxVQUFVLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxVQUFVLEVBQUU7WUFDckUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDeEQsZUFBZSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNoRCwyQkFBMkIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsRUFBRSwyQkFBMkIsQ0FBQyxLQUFLLENBQUM7U0FDbEgsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7SUFDUCxLQUFLLENBQUMsbUJBQW1CO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVPLGVBQWU7UUFDckIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVTLGFBQWEsQ0FBQyxLQUFjO1FBQ3BDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDUyxrQkFBa0IsQ0FBQyxLQUFzQjtRQUNqRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFaEMsT0FBTztRQUNULENBQUM7UUFFRCxZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNaLENBQUM7SUFFUyxvQkFBb0IsQ0FBQyxTQUFpQjtRQUM5QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRVMscUJBQXFCLENBQUMsU0FBaUI7UUFDL0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVTLHVCQUF1QixDQUFDLE1BQWU7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRVMsa0JBQWtCLENBQUMsV0FBeUI7UUFDcEQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsMkJBQTJCO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRVMsdUJBQXVCLENBQUMsS0FBNEI7UUFDNUQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU8sS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFzQjtRQUMzQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsVUFBVSxJQUFJLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUosSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxJQUFJLHlCQUF5QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXBLLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDOUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxJQUFJLHdCQUF3QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRXJLLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQzdHLEtBQUssTUFBTSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNuQixTQUFTO2dCQUNYLENBQUM7Z0JBQ0QsTUFBTSxPQUFPLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRTlDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDbEIsU0FBUztnQkFDWCxDQUFDO2dCQUNELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUV4RSxJQUFJLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztvQkFDcEgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLDBCQUEwQixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNySSxPQUFPO2dCQUNULENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxRQUFRLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDakssSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaE0sT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxRQUFRLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDL00sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaE0sT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxRQUFRLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDOUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0IsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUM1RCxZQUFZLElBQUksTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsT0FBTyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDLENBQUM7WUFFdkYsSUFBSSxZQUFZLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRSxLQUFLLEVBQUUsd0JBQXdCLENBQUMsSUFBSSxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDM1AsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLFlBQVksR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxJQUFJLHVCQUF1QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRSxLQUFLLEVBQUUsd0JBQXdCLENBQUMsR0FBRyxXQUFXLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDMVAsT0FBTztZQUNULENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsT0FBTyxJQUFJLHdCQUF3QixDQUFDLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsaUJBQWlCLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBRTdMLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDO1lBQzFCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQVEsSUFBSSxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFbEQsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBRXJDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVPLEtBQUssQ0FBQyxZQUFZO1FBQ3hCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdkQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsWUFBWSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXZELE9BQU8sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVPLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBZTtRQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVTLDJCQUEyQixDQUFDLEtBQWlDO1FBQ3JFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVTLG1CQUFtQixDQUFDLEtBQXlCO1FBQ3JELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLDhCQUE4QixFQUFFLEVBQUUsQ0FBQztZQUM5RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUM3QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsYUFBYSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztJQUNILENBQUM7SUFFUyxnQ0FBZ0M7UUFDeEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRCxXQUFXO1FBQ1QsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNCLFlBQVksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7d0dBNVRVLG9DQUFvQzs0RkFBcEMsb0NBQW9DLGluWEM5QmpELHcyUEFrSkEsNC9CRDNISSxlQUFlLDRGQUNmLG9DQUFvQyw4OUNBQ3BDLDhCQUE4Qiw0cUJBQzlCLHVDQUF1QyxnbkJBQ3ZDLG9DQUFvQyxnZkFDcEMsZ0NBQWdDOzs0RkFFdkIsb0NBQW9DO2tCQWZoRCxTQUFTOytCQUVFLGlDQUFpQyxjQUcvQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsZUFBZTt3QkFDZixvQ0FBb0M7d0JBQ3BDLDhCQUE4Qjt3QkFDOUIsdUNBQXVDO3dCQUN2QyxvQ0FBb0M7d0JBQ3BDLGdDQUFnQztxQkFBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgZWZmZWN0LCBpbnB1dCwgbW9kZWwsIG91dHB1dCwgc2lnbmFsLCB2aWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElCdXR0b24gfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNDaGVja2JveFNpbmdsZUNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtY2hlY2tib3gtc2luZ2xlJztcbmltcG9ydCB7IElGb2N1c0FuZEJsdXJFdmVudCwgSUlucHV0RnVuY3Rpb25Db250cm9sRXZlbnQsIExpYnNVaUNvbXBvbmVudHNJbnB1dHNJbnB1dENvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtaW5wdXRzLWlucHV0JztcbmltcG9ydCB7IElMYWJlbCwgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1sYWJlbCc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtcG9wb3Zlcic7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzUmFkaW9TaW5nbGVDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXJhZGlvLXNpbmdsZSc7XG5pbXBvcnQgeyBJU3dpdGNoRXZlbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLXN3aXRjaCc7XG5pbXBvcnQgeyBJQm91bmRpbmdDbGllbnRSZWN0LCBJRXZlbnQsIFRZUEVfVEVNUExBVEVfUkVGIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElELCBFUlJPUl9NRVNTQUdFX01BWF9MRU5HVEgsIEVSUk9SX01FU1NBR0VfTUFYX1ZBTElELCBFUlJPUl9NRVNTQUdFX01JTl9MRU5HVEgsIEVSUk9SX01FU1NBR0VfTUlOX1ZBTElELCBFUlJPUl9NRVNTQUdFX1BBVFRFTl9WQUxJRCwgY2xvbmVEZWVwLCBpc05pbCwgc2V0LCB2aWV3RGF0YU51bWJlckJ5TGFuZ3VhZ2UgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSUlucHV0VmFsaWRVbml0Q29uZmlnLCBJVmFsaWQsIElWYWxpZExlbmd0aCwgSVZhbGlkUGF0dGVybiwgSVZhbGlkUmVxdWlyZWQsIFRZUEVfRlVOQ1RJT05fSU5QVVRfVkFMSUQgfSBmcm9tICcuL2ludGVyZmFjZXMvdmFsaWQuaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWlucHV0cy12YWxpZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi92YWxpZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3ZhbGlkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIExpYnNVaUNvbXBvbmVudHNJbnB1dHNJbnB1dENvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0NoZWNrYm94U2luZ2xlQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNSYWRpb1NpbmdsZUNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0lucHV0c1ZhbGlkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiBQUk9QRVJUWSAqL1xuICBwcm90ZWN0ZWQgc2luZ2xlRXJyb3IgPSBzaWduYWw8SVZhbGlkPih7IG1lc3NhZ2U6IHVuZGVmaW5lZCwgaW50ZXJwb2xhdGVQYXJhbXM6IHVuZGVmaW5lZCB9KTtcbiAgcHJvdGVjdGVkIHJlY3RMZWZ0ID0gc2lnbmFsPElCb3VuZGluZ0NsaWVudFJlY3QgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgdGltZXIgPSBzaWduYWw8bnVtYmVyPigwKTtcbiAgcHJpdmF0ZSB0aW1lclZhbHVlQ2hhbmdlID0gc2lnbmFsPG51bWJlcj4oMCk7XG4gIHByaXZhdGUgZnVuY3Rpb25Db250cm9sSW5wdXQ6IElJbnB1dEZ1bmN0aW9uQ29udHJvbEV2ZW50IHwgdW5kZWZpbmVkO1xuXG4gIC8qIElOUFVUICovXG4gIHJlYWRvbmx5IGl0ZW0gPSBtb2RlbC5yZXF1aXJlZDxSZWNvcmQ8c3RyaW5nLCBhbnk+Pih7fSk7XG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8SUxhYmVsPigpO1xuICByZWFkb25seSBlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlQmxvY2tJbnB1dE1heFZhbHVlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZmllbGROYW1lQmluZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgc2hvd0NvdW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSB0eXBlQ29tcG9uZW50U2VsZWN0SXRlbSA9IGlucHV0PCdyYWRpbycgfCAnY2hlY2tib3gnIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSB2YWx1ZUNvbXBvbmVudFNlbGVjdEl0ZW0gPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBkaXNhYmxlQ29tcG9uZW50U2VsZWN0SXRlbSA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgcmVhZG9ubHkgdGFnSW5wdXQgPSBpbnB1dDwnaW5wdXQnIHwgJ3RleHRhcmVhJyB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgZGF0YVR5cGUgPSBpbnB1dDwnc3RyaW5nJyB8ICdpbnQnIHwgJ2Zsb2F0JyB8ICdiaWdpbnQnIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSByZXNldEF1dG9Db21wbGV0ZVBhc3N3b3JkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgdGV4dEFyZWFFbnRlck5vdE5ld0xpbmUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBoaWRkZW5Db250ZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTsgLy8gc+G7rSBk4bulbmcgxJHhu4Mgc2V0IHR5cGUgY2hvIGlucHV0IGThuqFuZyB0ZXh0IGhheSBwYXNzd29yZFxuICByZWFkb25seSBmaXhlZEZsb2F0ID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBhY2NlcHROZWdhdGl2ZVZhbHVlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgdmFsdWVVcERvd25OdW1iZXIgPSBpbnB1dDxudW1iZXIgfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVdpZHRoSW5wdXQxMDAgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVJbnB1dCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NDb250YWluZXJJbnB1dCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcmVhZG9ubHkgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgbm9Cb3JkZXIgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBiYWNrZ3JvdW5kTm9uZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHVzZUNvbG9yTW9kZUV4aXN0ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGtlZXBQbGFjZWhvbGRlck9ubHkgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IGNsYXNzQ29udGFpbmVyQm90dG9tSW5wdXQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGF1dG9SZW1vdmVFbW9qaSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGRlZmF1bHRIZWlnaHQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IG1heEhlaWdodFRleHRBcmVhID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBtaW5IZWlnaHRUZXh0QXJlYSA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlU2hvd0Vycm9yID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYm9yZGVyRXJyb3IgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IGljb25MZWZ0Q2xhc3MgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHBvcG92ZXJDb250ZW50SWNvbkxlZnQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGljb25SaWdodENsYXNzID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBwb3BvdmVyQ29udGVudEljb25SaWdodCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgekluZGV4UG9wb3ZlckNvbnRlbnQgPSBpbnB1dDxudW1iZXI+KCk7XG5cbiAgcmVhZG9ubHkgdW5pdHNMZWZ0ID0gaW5wdXQ8QXJyYXk8YW55Pj4oKTtcbiAgcmVhZG9ubHkgY29uZmlnVW5pdExlZnQgPSBpbnB1dDxJSW5wdXRWYWxpZFVuaXRDb25maWc+KHtcbiAgICBmaWVsZEtleTogJ2lkJyxcbiAgICBmaWVsZExhYmVsOiAnbGFiZWwnLFxuICB9KTtcbiAgcmVhZG9ubHkga2V5U2VsZWN0ZWRVbml0TGVmdCA9IGlucHV0PGFueT4oKTtcblxuICByZWFkb25seSB1bml0c1JpZ2h0ID0gaW5wdXQ8QXJyYXk8YW55Pj4oKTtcbiAgcmVhZG9ubHkgY29uZmlnVW5pdFJpZ2h0ID0gaW5wdXQ8SUlucHV0VmFsaWRVbml0Q29uZmlnPih7XG4gICAgZmllbGRLZXk6ICdpZCcsXG4gICAgZmllbGRMYWJlbDogJ2xhYmVsJyxcbiAgfSk7XG4gIHJlYWRvbmx5IGtleVNlbGVjdGVkVW5pdFJpZ2h0ID0gaW5wdXQ8YW55PigpO1xuXG4gIHJlYWRvbmx5IG1heFZhbHVlTnVtYmVyID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBtaW5WYWx1ZU51bWJlciA9IGlucHV0PG51bWJlcj4oKTtcblxuICByZWFkb25seSBpZ25vcmVDb250ZW50TGVmdCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZUNvbnRlbnRSaWdodCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGlzQmFzZWxpbmVTdHlsZSA9IGlucHV0PGJvb2xlYW4+KCk7IC8vIGFsaWduLWl0ZW1zLWJhc2VsaW5lIGTDuW5nIGtoaSBjxINuIGlucHV0IHRo4bqzbmcgaMOgbmcgduG7m2kgdOG6pXQgY+G6oyBjw6FjIHBo4bqnbiBraMOhYyBkw7kgY8OzIHZhbGlkYXRlIGhheSBi4bqldCBj4bupIDEgY8OhaSBnw6xcblxuICByZWFkb25seSB2YWx1ZVBhdHRlcm5TaG93RXJyb3IgPSBpbnB1dDxib29sZWFuPigpOyAvLyBt4bq3YyDEkeG7i25oIGtoaSB0ZXN0IHBhdHRlcm4gdHLhuqMgdOG7gSBnacOhIHRy4buLIGLhurFuZyBmYWxzZSBz4bq9IGLDoW8gbOG7l2lcbiAgcmVhZG9ubHkgdmFsaWRQYXR0ZXJuID0gaW5wdXQ8QXJyYXk8SVZhbGlkUGF0dGVybj4+KCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDxJVmFsaWRSZXF1aXJlZD4oKTtcbiAgcmVhZG9ubHkgdmFsaWRNaW5MZW5ndGggPSBpbnB1dDxJVmFsaWRMZW5ndGg+KCk7XG4gIHJlYWRvbmx5IHZhbGlkTWluVmFsdWUgPSBpbnB1dDxJVmFsaWQ+KCk7XG4gIHJlYWRvbmx5IHZhbGlkTWF4VmFsdWUgPSBpbnB1dDxJVmFsaWQ+KCk7XG4gIHJlYWRvbmx5IHZhbGlkTWF4TGVuZ3RoID0gaW5wdXQ8SVZhbGlkPigpO1xuICByZWFkb25seSBmdW5jdGlvblZhbGlkID0gaW5wdXQ8VFlQRV9GVU5DVElPTl9JTlBVVF9WQUxJRD4oKTtcbiAgcmVhZG9ubHkgbWF4TGVuZ3RoID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBwb3NpdGlvbk1lc3NhZ2VFcnJvclN0YXJ0SW5wdXQgPSBpbnB1dDxib29sZWFuPigpOyAvLyBraGkgY8OzIHRlbXBsYXRlIGxlZnQgdsOgIHJpZ2h0IG3DoCBtdeG7kW4gbWVzYWdlIGVycm9yIHh14bqldCBoaeG7h24gYuG6r3QgxJHhuqd1IHThu6sgw7QgaW5wdXQgdGhheSB2w6wgYuG6r3QgxJHhuqd1IHThu6sgdGVtcGxhdGUgIHRyw6FpXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcmVzaXplID0gaW5wdXQ8J2F1dG8nIHwgJ25vbmUnPigpO1xuICByZWFkb25seSB0ZW1wbGF0ZUxlZnRCb3R0b21JbnB1dCA9IGlucHV0PFRlbXBsYXRlUmVmPFRZUEVfVEVNUExBVEVfUkVGPj4oKTtcbiAgcmVhZG9ubHkgdGVtcGxhdGVSaWdodEJvdHRvbUlucHV0ID0gaW5wdXQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+PigpO1xuICByZWFkb25seSBvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGF1dG9BZGRaZXJvTGVzc1RoYW4xMEluVHlwZUludCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG1heExlbmd0aE51bWJlckNvdW50ID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBjbGFzc01lc3NhZ2VFcnJvckluY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlVW5pdFJpZ2h0Q2xhc3NSZWFkT25seSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHBhZGRpbmdSaWdodEN1c3RvbVNwZWNpZmljID0gaW5wdXQ8bnVtYmVyPigpOyAvLyBmaXggcGFkZGluZ1JpZ2h0IGNvdW50IGtvIGF1dG8gdMOtbmggIzUyMTg1XG4gIHJlYWRvbmx5IGZvY3VzVGltZU91dCA9IGlucHV0PG51bWJlcj4oKTtcblxuICAvKiBPVVRQVVQgKi9cbiAgcmVhZG9ubHkgb3V0VmFsdWVDaGFuZ2UgPSBvdXRwdXQ8YW55PigpO1xuICByZWFkb25seSBvdXRTZWxlY3QgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgb3V0SWNvbkxlZnQgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBvdXRJY29uUmlnaHQgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBvdXRDbGlja0J1dHRvbkxhYmVsID0gb3V0cHV0PElCdXR0b24+KCk7XG4gIHJlYWRvbmx5IG91dFN3aXRjaEV2ZW50TGFiZWwgPSBvdXRwdXQ8SVN3aXRjaEV2ZW50PigpO1xuICByZWFkb25seSBvdXRMYWJlbFJpZ2h0Q2xpY2sgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgb3V0RW50ZXJJbnB1dEV2ZW50ID0gb3V0cHV0PElFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0SGVpZ2h0QXJlYUNoYW5nZSA9IG91dHB1dDx7IGlzQ2hhbmdlOiBib29sZWFuIH0+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SUlucHV0VmFsaWRGdW5jdGlvbkNvbnRyb2xFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0Rm9jdXNBbmRCbHVyID0gb3V0cHV0PElGb2N1c0FuZEJsdXJFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0Q2hhbmdlVmFsdWVCeUJ1dHRvblVwRG93biA9IG91dHB1dDx2b2lkPigpO1xuXG4gIC8qIFZJRVcgQ0hJTEQgKi9cbiAgcmVhZG9ubHkgZWxlbWVudExlZnRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ2VsZW1lbnRMZWZ0UmVmJyk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5pdGVtKCkgfHwgdHlwZW9mIHRoaXMuaXRlbSgpICE9PSAnb2JqZWN0JyB8fCB0aGlzLml0ZW0oKSBpbnN0YW5jZW9mIEFycmF5IHx8IHRoaXMuaXRlbSgpIGluc3RhbmNlb2YgTWFwICYmIHRoaXMuaXRlbSgpIGluc3RhbmNlb2YgV2Vha01hcCB8fCB0aGlzLml0ZW0oKSBpbnN0YW5jZW9mIFNldCB8fCB0aGlzLml0ZW0oKSBpbnN0YW5jZW9mIFdlYWtTZXQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5nZXRSZWN0TGVmdCgpO1xuICAgIH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm91dEZ1bmN0aW9uc0NvbnRyb2wuZW1pdCh7XG4gICAgICBjaGVja0lzVmFsaWQ6IHRoaXMuY2hlY2tJc1ZhbGlkLmJpbmQodGhpcyksXG4gICAgICBzZXRNZXNzYWdlRXJyb3I6IHRoaXMuc2V0TWVzc2FnZUVycm9yLmJpbmQodGhpcyksXG4gICAgICBibHVyOiBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0Py5ibHVyKCksXG4gICAgICBmb2N1czogYXN5bmMgKCkgPT4gYXdhaXQgdGhpcy5mdW5jdGlvbkNvbnRyb2xJbnB1dD8uZm9jdXMoKSxcbiAgICAgIGluc2VydENvbnRlbnQ6IGFzeW5jIChkYXRhOiBzdHJpbmcgfCBudW1iZXIpID0+IGF3YWl0IHRoaXMuZnVuY3Rpb25Db250cm9sSW5wdXQ/Lmluc2VydENvbnRlbnQoZGF0YSksXG4gICAgICByZXNldFZhbHVlOiBhc3luYyAoKSA9PiBhd2FpdCB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0Py5yZXNldFZhbHVlKCksXG4gICAgICBjdXJyZW50U3RhdGVJc1ZhbGlkOiB0aGlzLmN1cnJlbnRTdGF0ZUlzVmFsaWQuYmluZCh0aGlzKSxcbiAgICAgIGdldEVsZW1lbnRWYWx1ZTogdGhpcy5nZXRFbGVtZW50VmFsdWUuYmluZCh0aGlzKSxcbiAgICAgIGNoZWNrQW5kRGlzYWJsZVVwRG93bkJ1dHRvbjogYXN5bmMgKHZhbHVlKSA9PiBhd2FpdCB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0Py5jaGVja0FuZERpc2FibGVVcERvd25CdXR0b24odmFsdWUpXG4gICAgfSk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJpdmF0ZSBhc3luYyBjdXJyZW50U3RhdGVJc1ZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLnNpbmdsZUVycm9yKCkubWVzc2FnZSA/IGZhbHNlIDogdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudFZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmZ1bmN0aW9uQ29udHJvbElucHV0Py5nZXRFbGVtZW50VmFsdWUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5vdXRTZWxlY3QuZW1pdCh2YWx1ZSk7XG4gIH1cbiAgcHJvdGVjdGVkIGhhbmRsZXJWYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XG4gICAgdGhpcy5pdGVtLnVwZGF0ZShpdGVtID0+IHtcbiAgICAgIHJldHVybiBzZXQoY2xvbmVEZWVwKGl0ZW0pLCB0aGlzLmZpZWxkTmFtZUJpbmQoKSwgdmFsdWUpO1xuICAgIH0pO1xuICAgIGlmICghdGhpcy5mdW5jdGlvblZhbGlkKCkpIHtcbiAgICAgIHRoaXMudmFsaWRhdGUodmFsdWUpO1xuICAgICAgdGhpcy5vdXRWYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyVmFsdWVDaGFuZ2UoKSk7XG4gICAgdGhpcy50aW1lclZhbHVlQ2hhbmdlLnNldChzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGUodmFsdWUpO1xuICAgICAgdGhpcy5vdXRWYWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9LCAxMDAwKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckV2ZW50SWNvbkxlZnQoZXZlbnROYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm91dEljb25MZWZ0LmVtaXQoZXZlbnROYW1lKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRXZlbnRJY29uUmlnaHQoZXZlbnROYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLm91dEljb25SaWdodC5lbWl0KGV2ZW50TmFtZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrQnV0dG9uTGFiZWwoYnV0dG9uOiBJQnV0dG9uKSB7XG4gICAgdGhpcy5vdXRDbGlja0J1dHRvbkxhYmVsLmVtaXQoYnV0dG9uKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU3dpdGNoTGFiZWwodG9nZ2xlRXZlbnQ6IElTd2l0Y2hFdmVudCkge1xuICAgIHRoaXMub3V0U3dpdGNoRXZlbnRMYWJlbC5lbWl0KHRvZ2dsZUV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRXZlbnRMYWJlbFJpZ2h0TGFiZWwoKSB7XG4gICAgdGhpcy5vdXRMYWJlbFJpZ2h0Q2xpY2suZW1pdCh0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRW50ZXJJbnB1dChlOiBJRXZlbnQpIHtcbiAgICB0aGlzLm91dEVudGVySW5wdXRFdmVudC5lbWl0KGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJIZWlnaHRBcmVhQ2hhbmdlKGV2ZW50OiB7IGlzQ2hhbmdlOiBib29sZWFuIH0pIHtcbiAgICB0aGlzLm91dEhlaWdodEFyZWFDaGFuZ2UuZW1pdChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICB0aGlzLmdldFJlY3RMZWZ0KCk7XG4gICAgdGhpcy5zaW5nbGVFcnJvci51cGRhdGUob2JqID0+ICh7IC4uLm9iaiwgbWVzc2FnZTogdW5kZWZpbmVkIH0pKTtcbiAgICBpZiAodGhpcy52YWxpZFJlcXVpcmVkKCkgJiYgdGhpcy52YWxpZFJlcXVpcmVkKCk/LmlzUmVxdWlyZWQgJiYgKCh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF2YWx1ZS50cmltKCkpIHx8ICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnICYmIGlzTmlsKHZhbHVlKSkpKSB7XG4gICAgICB0aGlzLnNpbmdsZUVycm9yLnNldCh7IG1lc3NhZ2U6ICh0aGlzLnZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX0VNUFRZX1ZBTElEKSwgaW50ZXJwb2xhdGVQYXJhbXM6ICh0aGlzLnZhbGlkUmVxdWlyZWQoKT8uaW50ZXJwb2xhdGVQYXJhbXMgfHwge30pIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMudmFsaWRNaW5MZW5ndGgoKT8ubWVzc2FnZSAmJiB0aGlzLnZhbGlkTWluTGVuZ3RoPy5sZW5ndGggPiB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2luZ2xlRXJyb3Iuc2V0KHsgbWVzc2FnZTogKHRoaXMudmFsaWRNaW5MZW5ndGgoKT8ubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX01JTl9MRU5HVEgpLCBpbnRlcnBvbGF0ZVBhcmFtczogKHRoaXMudmFsaWRNaW5MZW5ndGgoKT8uaW50ZXJwb2xhdGVQYXJhbXMgfHwge30pIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHRoaXMudmFsaWRQYXR0ZXJuKCkgJiYgdGhpcy52YWxpZFBhdHRlcm4oKT8ubGVuZ3RoICYmIHZhbHVlICYmIHZhbHVlLnRyaW0oKSkge1xuICAgICAgZm9yIChjb25zdCB2YWxpZCBvZiB0aGlzLnZhbGlkUGF0dGVybigpIHx8IFtdKSB7XG4gICAgICAgIGlmICghdmFsaWQucGF0dGVybikge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSBgJHt2YWxpZC5wYXR0ZXJufWA7XG4gICAgICAgIGNvbnN0IGluZGV4T2ZTbGFzaCA9IHBhdHRlcm4ubGFzdEluZGV4T2YoJy8nKTtcblxuICAgICAgICBpZiAoIWluZGV4T2ZTbGFzaCkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBhdHRlcm5TdHIgPSBwYXR0ZXJuLnN1YnN0cmluZygxLCBpbmRleE9mU2xhc2gpO1xuICAgICAgICBjb25zdCBwYXR0ZXJuRmxhZyA9IHBhdHRlcm4uc3Vic3RyaW5nKGluZGV4T2ZTbGFzaCArIDEsIHBhdHRlcm4ubGVuZ3RoKTtcblxuICAgICAgICBpZiAobmV3IFJlZ0V4cChwYXR0ZXJuU3RyLCBwYXR0ZXJuRmxhZykudGVzdCh2YWx1ZSkgPT09ICh2YWxpZC52YWx1ZVBhdHRlcm5TaG93RXJyb3IgPz8gdGhpcy52YWx1ZVBhdHRlcm5TaG93RXJyb3IpKSB7XG4gICAgICAgICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoeyBtZXNzYWdlOiAodmFsaWQubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX1BBVFRFTl9WQUxJRCksIGludGVycG9sYXRlUGFyYW1zOiAodmFsaWQuaW50ZXJwb2xhdGVQYXJhbXMgfHwge30pIH0pO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy52YWxpZE1pblZhbHVlKCkgJiYgdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdGhpcy5taW5WYWx1ZU51bWJlcigpID09PSAnbnVtYmVyJyAmJiB2YWx1ZSA8ICh0aGlzLm1pblZhbHVlTnVtYmVyKCkgfHwgTnVtYmVyLk1JTl9TQUZFX0lOVEVHRVIpKSB7XG4gICAgICB0aGlzLnNpbmdsZUVycm9yLnNldCh7IG1lc3NhZ2U6ICh0aGlzLnZhbGlkTWluVmFsdWUoKT8ubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX01JTl9WQUxJRCksIGludGVycG9sYXRlUGFyYW1zOiAodGhpcy52YWxpZE1pblZhbHVlKCk/LmludGVycG9sYXRlUGFyYW1zIHx8IHsgdmFsdWU6IHRoaXMubWluVmFsdWVOdW1iZXIoKSB9KSB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoKHRoaXMuaWdub3JlQmxvY2tJbnB1dE1heFZhbHVlKCkgfHwgdGhpcy52YWxpZE1heFZhbHVlKCk/Lm1lc3NhZ2UpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHRoaXMubWF4VmFsdWVOdW1iZXIoKSA9PT0gJ251bWJlcicgJiYgdmFsdWUgPiAodGhpcy5tYXhWYWx1ZU51bWJlcigpIHx8IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKSkge1xuICAgICAgdGhpcy5zaW5nbGVFcnJvci5zZXQoeyBtZXNzYWdlOiAodGhpcy52YWxpZE1heFZhbHVlKCk/Lm1lc3NhZ2UgfHwgRVJST1JfTUVTU0FHRV9NQVhfVkFMSUQpLCBpbnRlcnBvbGF0ZVBhcmFtczogKHRoaXMudmFsaWRNYXhWYWx1ZSgpPy5pbnRlcnBvbGF0ZVBhcmFtcyB8fCB7IHZhbHVlOiB0aGlzLm1heFZhbHVlTnVtYmVyKCkgfSkgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZGF0YVR5cGUoKSA9PT0gJ2JpZ2ludCcgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgbWF4TWluVmFsdWUgPSBCaWdJbnQoOTIyKSAqIEJpZ0ludCgxMCkgKiogQmlnSW50KDE4KSAvIEJpZ0ludCgxMDApO1xuICAgICAgY29uc3QgW2ludCwgZGVjaW1hbF0gPSB2YWx1ZS5zcGxpdCgnLicpO1xuICAgICAgbGV0IHZhbHVlRGl2aWRlZCA9IEJpZ0ludCgxKTtcbiAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCAoZGVjaW1hbD8ubGVuZ3RoIHx8IDApOyBpbmRleCsrKSB7XG4gICAgICAgIHZhbHVlRGl2aWRlZCAqPSBCaWdJbnQoMTApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWx1ZUNvbXBhcmUgPSBCaWdJbnQoYCR7aW50fSR7ZGVjaW1hbCB8fCAnJ31gKSAqIChCaWdJbnQoMTAwMDApIC8gdmFsdWVEaXZpZGVkKTtcblxuICAgICAgaWYgKHZhbHVlQ29tcGFyZSA8IC1tYXhNaW5WYWx1ZSkge1xuICAgICAgICB0aGlzLnNpbmdsZUVycm9yLnNldCh7IG1lc3NhZ2U6ICh0aGlzLnZhbGlkTWluVmFsdWUoKT8ubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX01JTl9WQUxJRCksIGludGVycG9sYXRlUGFyYW1zOiAodGhpcy52YWxpZE1pblZhbHVlKCk/LmludGVycG9sYXRlUGFyYW1zIHx8IHsgdmFsdWU6IHZpZXdEYXRhTnVtYmVyQnlMYW5ndWFnZShgLSR7bWF4TWluVmFsdWUgLyBCaWdJbnQoMTAwMDApfWAsIHRydWUsIDQsIHRydWUsIHRydWUpIH0pIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh2YWx1ZUNvbXBhcmUgPiBtYXhNaW5WYWx1ZSkge1xuICAgICAgICB0aGlzLnNpbmdsZUVycm9yLnNldCh7IG1lc3NhZ2U6ICh0aGlzLnZhbGlkTWF4VmFsdWUoKT8ubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX01BWF9WQUxJRCksIGludGVycG9sYXRlUGFyYW1zOiAodGhpcy52YWxpZE1heFZhbHVlKCk/LmludGVycG9sYXRlUGFyYW1zIHx8IHsgdmFsdWU6IHZpZXdEYXRhTnVtYmVyQnlMYW5ndWFnZShgJHttYXhNaW5WYWx1ZSAvIEJpZ0ludCgxMDAwMCl9YCwgdHJ1ZSwgNCwgdHJ1ZSwgdHJ1ZSkgfSkgfSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXhMZW5ndGggJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAodGhpcy5tYXhMZW5ndGgoKSB8fCBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikgPCB2YWx1ZS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuc2luZ2xlRXJyb3Iuc2V0KHsgbWVzc2FnZTogKHRoaXMudmFsaWRNYXhMZW5ndGgoKT8ubWVzc2FnZSB8fCBFUlJPUl9NRVNTQUdFX01BWF9MRU5HVEgpLCBpbnRlcnBvbGF0ZVBhcmFtczogKHRoaXMudmFsaWRNYXhMZW5ndGgoKT8uaW50ZXJwb2xhdGVQYXJhbXMgfHwgeyBudW1iZXI6IHRoaXMubWF4TGVuZ3RoIH0pIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmZ1bmN0aW9uVmFsaWQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdDogYW55ID0gdGhpcy5mdW5jdGlvblZhbGlkKCk/Lih2YWx1ZSk7XG5cbiAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC50aGVuKSB7XG4gICAgICB0aGlzLnNpbmdsZUVycm9yLnNldCgoYXdhaXQgcmVzdWx0KSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zaW5nbGVFcnJvci5zZXQocmVzdWx0KTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tJc1ZhbGlkKCkge1xuICAgIGlmICh0aGlzLml0ZW0oKSAmJiAodGhpcy5yZWFkb25seSgpIHx8IHRoaXMuZGlzYWJsZSgpKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyVmFsdWVDaGFuZ2UoKSk7XG4gICAgYXdhaXQgdGhpcy52YWxpZGF0ZSh0aGlzLml0ZW0oKVt0aGlzLmZpZWxkTmFtZUJpbmQoKV0pO1xuXG4gICAgcmV0dXJuIHRoaXMuc2luZ2xlRXJyb3IoKS5tZXNzYWdlID8gZmFsc2UgOiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRNZXNzYWdlRXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zaW5nbGVFcnJvci51cGRhdGUob2JqID0+ICh7IC4uLm9iaiwgbWVzc2FnZSB9KSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNvbnRyb2xGdW5jdGlvbklucHV0KGV2ZW50OiBJSW5wdXRGdW5jdGlvbkNvbnRyb2xFdmVudCkge1xuICAgIHRoaXMuZnVuY3Rpb25Db250cm9sSW5wdXQgPSBldmVudDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyRm9jdXNBbmRCbHVyKGV2ZW50OiBJRm9jdXNBbmRCbHVyRXZlbnQpIHtcbiAgICB0aGlzLm91dEZvY3VzQW5kQmx1ci5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVjdExlZnQoKSB7XG4gICAgaWYgKCF0aGlzLnJlY3RMZWZ0KCkgfHwgdGhpcy5wb3NpdGlvbk1lc3NhZ2VFcnJvclN0YXJ0SW5wdXQoKSkge1xuICAgICAgdGhpcy50aW1lci5zZXQoc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVjdExlZnQuc2V0KHRoaXMuZWxlbWVudExlZnRSZWYoKT8ubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSk7XG4gICAgICB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDaGFuZ2VWYWx1ZUJ5QnV0dG9uVXBEb3duKCkge1xuICAgIHRoaXMub3V0Q2hhbmdlVmFsdWVCeUJ1dHRvblVwRG93bi5lbWl0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcigpKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lclZhbHVlQ2hhbmdlKCkpO1xuICB9XG59XG4iLCJAaWYgKGZpZWxkTmFtZUJpbmQoKSAmJiBpdGVtKCk7IGFzIGl0ZW0pIHtcbiAgQGlmIChsYWJlbENvbmZpZygpOyBhcyBsYWJlbENvbmZpZykge1xuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtbGFiZWwgW2NsYXNzSW5jbHVkZV09XCJsYWJlbENvbmZpZy5jbGFzc0luY2x1ZGVcIlxuICAgICAgW2xhYmVsTGVmdF09XCJsYWJlbENvbmZpZy5sYWJlbExlZnRcIlxuICAgICAgW2xhYmVsTGVmdENsYXNzXT1cImxhYmVsQ29uZmlnLmxhYmVsTGVmdENsYXNzXCJcbiAgICAgIFtyZXF1aXJlZF09XCJsYWJlbENvbmZpZy5yZXF1aXJlZCBcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmRlc2NyaXB0aW9uXCJcbiAgICAgIFtkZXNjcmlwdGlvbkNsYXNzXT1cImxhYmVsQ29uZmlnLmRlc2NyaXB0aW9uQ2xhc3NcIlxuICAgICAgW2xhYmVsUmlnaHRdPVwibGFiZWxDb25maWcubGFiZWxSaWdodFwiXG4gICAgICBbbGFiZWxSaWdodENsYXNzXT1cImxhYmVsQ29uZmlnLmxhYmVsUmlnaHRDbGFzc1wiXG4gICAgICBbb25seVNob3dDb3VudF09XCJsYWJlbENvbmZpZy5vbmx5U2hvd0NvdW50XCJcbiAgICAgIFtidXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5idXR0b25zTGVmdFwiXG4gICAgICBbZGlzYWJsZUJ1dHRvbnNMZWZ0XT1cImRpc2FibGUoKSB8fCBsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnRcIlxuICAgICAgW2J1dHRvbnNSaWdodF09XCJsYWJlbENvbmZpZy5idXR0b25zUmlnaHRcIlxuICAgICAgW2Rpc2FibGVCdXR0b25zUmlnaHRdPVwiZGlzYWJsZSgpIHx8IGxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zUmlnaHRcIlxuICAgICAgW2hhc1RvZ2dsZV09XCJsYWJlbENvbmZpZy5oYXNUb2dnbGVcIlxuICAgICAgW3RvZ2dsZUFjdGl2ZV09XCJsYWJlbENvbmZpZy50b2dnbGVBY3RpdmVcIlxuICAgICAgW3RvZ2dsZURpc2FibGVdPVwiZGlzYWJsZSgpIHx8IGxhYmVsQ29uZmlnLnRvZ2dsZURpc2FibGVcIlxuICAgICAgW3BvcG92ZXJdPVwibGFiZWxDb25maWcucG9wb3ZlclwiXG4gICAgICBbaWNvblBvcG92ZXJDbGFzc109XCJsYWJlbENvbmZpZy5pY29uUG9wb3ZlckNsYXNzXCJcbiAgICAgIFtvbmx5U2hvd0NvdW50XT1cImxhYmVsQ29uZmlnLm9ubHlTaG93Q291bnRcIlxuICAgICAgW2xpbWl0TGVuZ3RoXT1cImxhYmVsQ29uZmlnLmxpbWl0TGVuZ3RoXCJcbiAgICAgIFtidXR0b25zRGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuYnV0dG9uc0Rlc2NyaXB0aW9uXCJcbiAgICAgIFtkaXNhYmxlQnV0dG9uc0Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmRpc2FibGVCdXR0b25zRGVzY3JpcHRpb24gfHwgZGlzYWJsZSgpXCJcbiAgICAgIFtidXR0b25zRGVzY3JpcHRpb25Db250YWluZXJDbGFzc109XCJsYWJlbENvbmZpZy5idXR0b25zRGVzY3JpcHRpb25Db250YWluZXJDbGFzc1wiXG4gICAgICBbY291bnRdPVwiaXRlbVtmaWVsZE5hbWVCaW5kKCldPy5sZW5ndGhcIlxuICAgICAgKG91dENsaWNrQnV0dG9uKT1cImhhbmRsZXJDbGlja0J1dHRvbkxhYmVsKCRldmVudClcIlxuICAgICAgKG91dFN3aXRjaEV2ZW50KT1cImhhbmRsZXJTd2l0Y2hMYWJlbCgkZXZlbnQpXCJcbiAgICAgIChvdXRMYWJlbFJpZ2h0Q2xpY2spPVwiaGFuZGxlckV2ZW50TGFiZWxSaWdodExhYmVsKClcIiAvPlxuICB9XG5cbiAgPGRpdiBbY2xhc3NdPVwiJ2xpYnMtdWktaW5wdXQtdmFsaWQgdy1mdWxsICcgKyAoY2xhc3NJbmNsdWRlKCkgPz8gJycpXCJcbiAgICBbY2xhc3MuaXRlbXMtYmFzZWxpbmVdPVwiaXNCYXNlbGluZVN0eWxlKClcIj5cbiAgICBAaWYgKCFpZ25vcmVDb250ZW50TGVmdCgpKSB7XG4gICAgICA8ZGl2ICNlbGVtZW50TGVmdFJlZlxuICAgICAgICBjbGFzcz1cImxpYnMtdWktaW5wdXQtdmFsaWQtbGVmdFwiXG4gICAgICAgIFtjbGFzcy5pdGVtcy1iYXNlbGluZV09XCJpc0Jhc2VsaW5lU3R5bGUoKVwiPlxuICAgICAgICBAaWYgKHR5cGVDb21wb25lbnRTZWxlY3RJdGVtKCk7IGFzIHR5cGVDb21wb25lbnRTZWxlY3RJdGVtKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yLVs4cHhdXCI+XG4gICAgICAgICAgICBAaWYgKHR5cGVDb21wb25lbnRTZWxlY3RJdGVtID09PSdjaGVja2JveCcpIHtcbiAgICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1jaGVja2JveC1zaW5nbGUgW2NoZWNrZWRdPVwidmFsdWVDb21wb25lbnRTZWxlY3RJdGVtKCkgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKSB8fCBkaXNhYmxlQ29tcG9uZW50U2VsZWN0SXRlbSgpIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICAob3V0Q2hhbmdlKT1cImhhbmRsZXJTZWxlY3QoJGV2ZW50LmNoZWNrZWQpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAodHlwZUNvbXBvbmVudFNlbGVjdEl0ZW0gPT09J3JhZGlvJykge1xuICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLXJhZGlvLXNpbmdsZSBbYWN0aXZlXT1cInZhbHVlQ29tcG9uZW50U2VsZWN0SXRlbSgpIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZV09XCJkaXNhYmxlKCkgfHwgZGlzYWJsZUNvbXBvbmVudFNlbGVjdEl0ZW0oKSB8fCBmYWxzZVwiXG4gICAgICAgICAgICAgICAgKG91dENoYW5nZSk9XCJoYW5kbGVyU2VsZWN0KCRldmVudC5hY3RpdmUpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIi5saWJzLXVpLWlucHV0LXZhbGlkLWxlZnQtY29udGVudC1jdXN0b21cIiAvPlxuICAgICAgICBAZm9yICh1bml0IG9mIHVuaXRzTGVmdCgpOyB0cmFjayB1bml0KSB7XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWlucHV0LXZhbGlkLXVuaXQgbGlicy11aS1pbnB1dC12YWxpZC11bml0LWxlZnQgIXJvdW5kZWQtdHItbm9uZSAhcm91bmRlZC1ici1ub25lIGxpYnMtdWktZm9udC1oNXIge3sgY29uZmlnVW5pdExlZnQoKS5jbGFzc0luY2x1ZGUgfHwgJycgfX1cIlxuICAgICAgICAgICAgW2NsYXNzLiFmbGV4XT1cInVuaXRbY29uZmlnVW5pdExlZnQoKS5maWVsZEtleV0gPT09IGtleVNlbGVjdGVkVW5pdExlZnQoKVwiXG4gICAgICAgICAgICBbY2xhc3MubGlicy11aS1yZWFkb25seV09XCJyZWFkb25seSgpIHx8IGZhbHNlXCJcbiAgICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWRpc2FibGVdPVwiZGlzYWJsZSgpIHx8IGZhbHNlXCI+XG4gICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLXBvcG92ZXIgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBbY29uZmlnXT1cInttYXhXaWR0aDoyNTAsZGlyZWN0aW9uOidib3R0b20nLCB6SW5kZXg6IHpJbmRleFBvcG92ZXJDb250ZW50KCl9XCJcbiAgICAgICAgICAgICAgW2lubmVySHRtbF09XCIodW5pdFtjb25maWdVbml0TGVmdCgpLmZpZWxkTGFiZWwgfHwgJ2xhYmVsJ118fCAnICcpIHwgdHJhbnNsYXRlXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLWlucHV0IFt0YWdJbnB1dF09XCJ0YWdJbnB1dCgpXCJcbiAgICAgIFtkYXRhVHlwZV09XCJkYXRhVHlwZSgpIHx8ICdzdHJpbmcnXCJcbiAgICAgIFtjbGFzcy53LWZ1bGxdPVwiIWlnbm9yZVdpZHRoSW5wdXQxMDAoKVwiXG4gICAgICBbaWdub3JlV2lkdGhJbnB1dDEwMF09XCJpZ25vcmVXaWR0aElucHV0MTAwKClcIlxuICAgICAgW3RleHRBcmVhRW50ZXJOb3ROZXdMaW5lXT1cInRleHRBcmVhRW50ZXJOb3ROZXdMaW5lKCkgfHwgZmFsc2VcIlxuICAgICAgW2NsYXNzSW5jbHVkZV09XCIoY2xhc3NJbmNsdWRlSW5wdXQoKSB8fCAnJykrKHVuaXRzTGVmdCgpICYmIHVuaXRzTGVmdCgpPy5sZW5ndGggPyAnICFyb3VuZGVkLXRsLW5vbmUgIXJvdW5kZWQtYmwtbm9uZSc6JycpKyh1bml0c1JpZ2h0KCk/Lmxlbmd0aCA/ICcgIXJvdW5kZWQtdHItbm9uZSAhcm91bmRlZC1ici1ub25lJzonJylcIlxuICAgICAgW2hpZGRlbkNvbnRlbnRdPVwiaGlkZGVuQ29udGVudCgpIHx8IGZhbHNlXCJcbiAgICAgIFttYXhWYWx1ZU51bWJlcl09XCJtYXhWYWx1ZU51bWJlcigpXCJcbiAgICAgIFttaW5WYWx1ZU51bWJlcl09XCJtaW5WYWx1ZU51bWJlcigpXCJcbiAgICAgIFtmaXhlZEZsb2F0XT1cImZpeGVkRmxvYXQoKSA/PyAxXCJcbiAgICAgIFthY2NlcHROZWdhdGl2ZVZhbHVlXT1cImFjY2VwdE5lZ2F0aXZlVmFsdWUoKVwiXG4gICAgICBbb25seUFjY2VwdE5lZ2F0aXZlVmFsdWVdPVwib25seUFjY2VwdE5lZ2F0aXZlVmFsdWUoKVwiXG4gICAgICBbdmFsdWVVcERvd25OdW1iZXJdPVwidmFsdWVVcERvd25OdW1iZXIoKVwiXG4gICAgICBbbWF4TGVuZ3RoXT1cIm1heExlbmd0aCgpXCJcbiAgICAgIFtzaG93Q291bnRdPVwic2hvd0NvdW50KClcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KClcIlxuICAgICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpXCJcbiAgICAgIFthdXRvQWRkWmVyb0xlc3NUaGFuMTBJblR5cGVJbnRdPVwiYXV0b0FkZFplcm9MZXNzVGhhbjEwSW5UeXBlSW50KClcIlxuICAgICAgW25vQm9yZGVyXT1cIm5vQm9yZGVyKClcIlxuICAgICAgW2JhY2tncm91bmROb25lXT1cImJhY2tncm91bmROb25lKClcIlxuICAgICAgW3VzZUNvbG9yTW9kZUV4aXN0XT1cInVzZUNvbG9yTW9kZUV4aXN0KClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKCkgfHwgJydcIlxuICAgICAgW2tlZXBQbGFjZWhvbGRlck9ubHldPVwia2VlcFBsYWNlaG9sZGVyT25seSgpXCJcbiAgICAgIFthdXRvUmVtb3ZlRW1vamldPVwiYXV0b1JlbW92ZUVtb2ppKClcIlxuICAgICAgW2RlZmF1bHRIZWlnaHRdPVwiZGVmYXVsdEhlaWdodCgpXCJcbiAgICAgIFttYXhIZWlnaHRUZXh0QXJlYV09XCJtYXhIZWlnaHRUZXh0QXJlYSgpIHx8IDI1MFwiXG4gICAgICBbbWluSGVpZ2h0VGV4dEFyZWFdPVwibWluSGVpZ2h0VGV4dEFyZWEoKVwiXG4gICAgICBbYm9yZGVyRXJyb3JdPVwiYm9yZGVyRXJyb3IoKSB8fCAoISFzaW5nbGVFcnJvcigpLm1lc3NhZ2UgJiYgIWlnbm9yZVNob3dFcnJvcigpKVwiXG4gICAgICBbaWNvbkxlZnRDbGFzc109XCJpY29uTGVmdENsYXNzKClcIlxuICAgICAgW3BvcG92ZXJDb250ZW50SWNvbkxlZnRdPVwicG9wb3ZlckNvbnRlbnRJY29uTGVmdCgpXCJcbiAgICAgIFtwb3BvdmVyQ29udGVudEljb25SaWdodF09XCJwb3BvdmVyQ29udGVudEljb25SaWdodCgpXCJcbiAgICAgIFtpY29uUmlnaHRDbGFzc109XCJpY29uUmlnaHRDbGFzcygpXCJcbiAgICAgIFt6SW5kZXhQb3BvdmVyQ29udGVudF09XCJ6SW5kZXhQb3BvdmVyQ29udGVudCgpXCJcbiAgICAgIFtlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyXT1cImVtaXRFbXB0eUluRGF0YVR5cGVOdW1iZXIoKVwiXG4gICAgICBbaWdub3JlQmxvY2tJbnB1dE1heFZhbHVlXT1cIiEhaWdub3JlQmxvY2tJbnB1dE1heFZhbHVlKCkgPyBpZ25vcmVCbG9ja0lucHV0TWF4VmFsdWUoKSA6KHZhbGlkTWF4VmFsdWUoKT8ubWVzc2FnZSA/IHRydWUgOiBmYWxzZSlcIlxuICAgICAgW3ZhbHVlXT1cIml0ZW1bZmllbGROYW1lQmluZCgpXVwiXG4gICAgICBbY2xhc3NDb250YWluZXJJbnB1dF09XCJjbGFzc0NvbnRhaW5lcklucHV0KClcIlxuICAgICAgW3Jlc2V0QXV0b0NvbXBsZXRlUGFzc3dvcmRdPVwicmVzZXRBdXRvQ29tcGxldGVQYXNzd29yZCgpXCJcbiAgICAgIFtyZXNpemVdPVwicmVzaXplKClcIlxuICAgICAgW2NsYXNzQ29udGFpbmVyQm90dG9tSW5wdXRdPVwiY2xhc3NDb250YWluZXJCb3R0b21JbnB1dCgpXCJcbiAgICAgIFt0ZW1wbGF0ZUxlZnRCb3R0b21JbnB1dF09XCJ0ZW1wbGF0ZUxlZnRCb3R0b21JbnB1dCgpXCJcbiAgICAgIFt0ZW1wbGF0ZVJpZ2h0Qm90dG9tSW5wdXRdPVwidGVtcGxhdGVSaWdodEJvdHRvbUlucHV0KClcIlxuICAgICAgW21heExlbmd0aE51bWJlckNvdW50XT1cIm1heExlbmd0aE51bWJlckNvdW50KClcIlxuICAgICAgW2lnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50XT1cImlnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50KClcIlxuICAgICAgW2ZvY3VzVGltZU91dF09XCJmb2N1c1RpbWVPdXQoKVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlclZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgKG91dEVudGVyRXZlbnQpPVwiaGFuZGxlckVudGVySW5wdXQoJGV2ZW50KVwiXG4gICAgICAob3V0SWNvbkxlZnQpPVwiaGFuZGxlckV2ZW50SWNvbkxlZnQoJGV2ZW50KVwiXG4gICAgICAob3V0SWNvblJpZ2h0KT1cImhhbmRsZXJFdmVudEljb25SaWdodCgkZXZlbnQpXCJcbiAgICAgIChvdXRIZWlnaHRBcmVhQ2hhbmdlKT1cImhhbmRsZXJIZWlnaHRBcmVhQ2hhbmdlKCRldmVudClcIlxuICAgICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlckNvbnRyb2xGdW5jdGlvbklucHV0KCRldmVudClcIlxuICAgICAgKG91dEZvY3VzQW5kQmx1ckV2ZW50KT1cImhhbmRsZXJGb2N1c0FuZEJsdXIoJGV2ZW50KVwiXG4gICAgICAob3V0Q2hhbmdlVmFsdWVCeUJ1dHRvblVwRG93bik9XCJoYW5kbGVyQ2hhbmdlVmFsdWVCeUJ1dHRvblVwRG93bigpXCIgLz5cbiAgICBAaWYgKCFpZ25vcmVDb250ZW50UmlnaHQoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktaW5wdXQtdmFsaWQtcmlnaHRcIlxuICAgICAgICBbY2xhc3MuaXRlbXMtYmFzZWxpbmVdPVwiaXNCYXNlbGluZVN0eWxlKClcIj5cbiAgICAgICAgQGZvciAodW5pdCBvZiB1bml0c1JpZ2h0KCk7IHRyYWNrIHVuaXQpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktaW5wdXQtdmFsaWQtdW5pdCBsaWJzLXVpLWlucHV0LXZhbGlkLXVuaXQtcmlnaHQgIXJvdW5kZWQtdGwtbm9uZSAhcm91bmRlZC1ibC1ub25lIGxpYnMtdWktZm9udC1oNXIge3sgY29uZmlnVW5pdFJpZ2h0KCkuY2xhc3NJbmNsdWRlIHx8ICdsaWJzLXVpLWJvcmRlci1nZW5lcmFsJyB9fVwiXG4gICAgICAgICAgICBbY2xhc3MuIWZsZXhdPVwidW5pdFtjb25maWdVbml0UmlnaHQoKS5maWVsZEtleV0gPT09IGtleVNlbGVjdGVkVW5pdFJpZ2h0KClcIlxuICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktcmVhZG9ubHldPVwiIWlnbm9yZVVuaXRSaWdodENsYXNzUmVhZE9ubHkoKSAmJiAocmVhZG9ubHkoKSB8fCBmYWxzZSlcIj5cbiAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtcG9wb3ZlciB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIFtjb25maWddPVwie21heFdpZHRoOjI1MCxkaXJlY3Rpb246J2JvdHRvbScsIHpJbmRleDogekluZGV4UG9wb3ZlckNvbnRlbnQoKX1cIlxuICAgICAgICAgICAgICBbaW5uZXJIdG1sXT1cIih1bml0W2NvbmZpZ1VuaXRSaWdodCgpLmZpZWxkTGFiZWwgfHwgJ2xhYmVsJ118fCAnICcpIHwgdHJhbnNsYXRlXCIgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCIubGlicy11aS1pbnB1dC12YWxpZC1yaWdodC1jb250ZW50LWN1c3RvbVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICA8L2Rpdj5cbiAgQGlmICghIXNpbmdsZUVycm9yKCkubWVzc2FnZSAmJiAhaWdub3JlU2hvd0Vycm9yKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1pbnB1dC12YWxpZC1lcnJvciB7eyBjbGFzc01lc3NhZ2VFcnJvckluY2x1ZGUoKSB8fCAnJyB9fVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJsaWJzLXVpLW1lc3NhZ2UtZXJyb3IgbGlicy11aS1mb250LWg3ciBsaWJzLXVpLXRleHQtZXJyb3JcIlxuICAgICAgICBbc3R5bGUubWFyZ2luTGVmdC5weF09J3JlY3RMZWZ0KCk/LndpZHRoJ1xuICAgICAgICBbaW5uZXJIdG1sXT1cIihzaW5nbGVFcnJvcigpLm1lc3NhZ2UgfHwgJyAnKXwgdHJhbnNsYXRlOnNpbmdsZUVycm9yKCkuaW50ZXJwb2xhdGVQYXJhbXNcIj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgfVxufVxuIl19
@@ -11,7 +11,6 @@ import { TranslateModule } from '@ngx-translate/core';
11
11
 
12
12
  /* eslint-disable @typescript-eslint/no-explicit-any */
13
13
  class LibsUiComponentsInputsValidComponent {
14
- cdr;
15
14
  /* PROPERTY */
16
15
  singleError = signal({ message: undefined, interpolateParams: undefined });
17
16
  rectLeft = signal(undefined);
@@ -103,7 +102,7 @@ class LibsUiComponentsInputsValidComponent {
103
102
  outIconLeft = output();
104
103
  outIconRight = output();
105
104
  outClickButtonLabel = output();
106
- outToggleEventLabel = output();
105
+ outSwitchEventLabel = output();
107
106
  outLabelRightClick = output();
108
107
  outEnterInputEvent = output();
109
108
  outHeightAreaChange = output();
@@ -112,8 +111,7 @@ class LibsUiComponentsInputsValidComponent {
112
111
  outChangeValueByButtonUpDown = output();
113
112
  /* VIEW CHILD */
114
113
  elementLeftRef = viewChild('elementLeftRef');
115
- constructor(cdr) {
116
- this.cdr = cdr;
114
+ constructor() {
117
115
  effect(() => {
118
116
  if (!this.item() || typeof this.item() !== 'object' || this.item() instanceof Array || this.item() instanceof Map && this.item() instanceof WeakMap || this.item() instanceof Set || this.item() instanceof WeakSet) {
119
117
  return;
@@ -124,7 +122,6 @@ class LibsUiComponentsInputsValidComponent {
124
122
  ngOnInit() {
125
123
  this.outFunctionsControl.emit({
126
124
  checkIsValid: this.checkIsValid.bind(this),
127
- detectChanges: this.detectChanges.bind(this),
128
125
  setMessageError: this.setMessageError.bind(this),
129
126
  blur: async () => await this.functionControlInput?.blur(),
130
127
  focus: async () => await this.functionControlInput?.focus(),
@@ -136,15 +133,12 @@ class LibsUiComponentsInputsValidComponent {
136
133
  });
137
134
  }
138
135
  /* FUNCTIONS */
139
- currentStateIsValid() {
136
+ async currentStateIsValid() {
140
137
  return this.singleError().message ? false : true;
141
138
  }
142
139
  getElementValue() {
143
140
  return this.functionControlInput?.getElementValue();
144
141
  }
145
- detectChanges() {
146
- this.cdr.detectChanges();
147
- }
148
142
  handlerSelect(value) {
149
143
  this.outSelect.emit(value);
150
144
  }
@@ -155,7 +149,6 @@ class LibsUiComponentsInputsValidComponent {
155
149
  if (!this.functionValid()) {
156
150
  this.validate(value);
157
151
  this.outValueChange.emit(value);
158
- this.cdr.detectChanges();
159
152
  return;
160
153
  }
161
154
  clearTimeout(this.timerValueChange());
@@ -173,8 +166,8 @@ class LibsUiComponentsInputsValidComponent {
173
166
  handlerClickButtonLabel(button) {
174
167
  this.outClickButtonLabel.emit(button);
175
168
  }
176
- handlerSwitchToggleLabel(toggleEvent) {
177
- this.outToggleEventLabel.emit(toggleEvent);
169
+ handlerSwitchLabel(toggleEvent) {
170
+ this.outSwitchEventLabel.emit(toggleEvent);
178
171
  }
179
172
  handlerEventLabelRightLabel() {
180
173
  this.outLabelRightClick.emit(true);
@@ -261,7 +254,7 @@ class LibsUiComponentsInputsValidComponent {
261
254
  await this.validate(this.item()[this.fieldNameBind()]);
262
255
  return this.singleError().message ? false : true;
263
256
  }
264
- setMessageError(message) {
257
+ async setMessageError(message) {
265
258
  this.singleError.update(obj => ({ ...obj, message }));
266
259
  }
267
260
  handlerControlFunctionInput(event) {
@@ -284,18 +277,20 @@ class LibsUiComponentsInputsValidComponent {
284
277
  clearTimeout(this.timer());
285
278
  clearTimeout(this.timerValueChange());
286
279
  }
287
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsValidComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
288
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsValidComponent, isStandalone: true, selector: "libs_ui-components-inputs-valid", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, emitEmptyInDataTypeNumber: { classPropertyName: "emitEmptyInDataTypeNumber", publicName: "emitEmptyInDataTypeNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreBlockInputMaxValue: { classPropertyName: "ignoreBlockInputMaxValue", publicName: "ignoreBlockInputMaxValue", isSignal: true, isRequired: false, transformFunction: null }, fieldNameBind: { classPropertyName: "fieldNameBind", publicName: "fieldNameBind", isSignal: true, isRequired: true, transformFunction: null }, showCount: { classPropertyName: "showCount", publicName: "showCount", isSignal: true, isRequired: false, transformFunction: null }, typeComponentSelectItem: { classPropertyName: "typeComponentSelectItem", publicName: "typeComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, valueComponentSelectItem: { classPropertyName: "valueComponentSelectItem", publicName: "valueComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, disableComponentSelectItem: { classPropertyName: "disableComponentSelectItem", publicName: "disableComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, tagInput: { classPropertyName: "tagInput", publicName: "tagInput", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null }, resetAutoCompletePassword: { classPropertyName: "resetAutoCompletePassword", publicName: "resetAutoCompletePassword", isSignal: true, isRequired: false, transformFunction: null }, textAreaEnterNotNewLine: { classPropertyName: "textAreaEnterNotNewLine", publicName: "textAreaEnterNotNewLine", isSignal: true, isRequired: false, transformFunction: null }, hiddenContent: { classPropertyName: "hiddenContent", publicName: "hiddenContent", isSignal: true, isRequired: false, transformFunction: null }, fixedFloat: { classPropertyName: "fixedFloat", publicName: "fixedFloat", isSignal: true, isRequired: false, transformFunction: null }, acceptNegativeValue: { classPropertyName: "acceptNegativeValue", publicName: "acceptNegativeValue", isSignal: true, isRequired: false, transformFunction: null }, valueUpDownNumber: { classPropertyName: "valueUpDownNumber", publicName: "valueUpDownNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidthInput100: { classPropertyName: "ignoreWidthInput100", publicName: "ignoreWidthInput100", isSignal: true, isRequired: false, transformFunction: null }, classIncludeInput: { classPropertyName: "classIncludeInput", publicName: "classIncludeInput", isSignal: true, isRequired: false, transformFunction: null }, classContainerInput: { classPropertyName: "classContainerInput", publicName: "classContainerInput", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, noBorder: { classPropertyName: "noBorder", publicName: "noBorder", isSignal: true, isRequired: false, transformFunction: null }, backgroundNone: { classPropertyName: "backgroundNone", publicName: "backgroundNone", isSignal: true, isRequired: false, transformFunction: null }, useColorModeExist: { classPropertyName: "useColorModeExist", publicName: "useColorModeExist", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, keepPlaceholderOnly: { classPropertyName: "keepPlaceholderOnly", publicName: "keepPlaceholderOnly", isSignal: true, isRequired: false, transformFunction: null }, classContainerBottomInput: { classPropertyName: "classContainerBottomInput", publicName: "classContainerBottomInput", isSignal: true, isRequired: false, transformFunction: null }, autoRemoveEmoji: { classPropertyName: "autoRemoveEmoji", publicName: "autoRemoveEmoji", isSignal: true, isRequired: false, transformFunction: null }, defaultHeight: { classPropertyName: "defaultHeight", publicName: "defaultHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeightTextArea: { classPropertyName: "maxHeightTextArea", publicName: "maxHeightTextArea", isSignal: true, isRequired: false, transformFunction: null }, minHeightTextArea: { classPropertyName: "minHeightTextArea", publicName: "minHeightTextArea", isSignal: true, isRequired: false, transformFunction: null }, ignoreShowError: { classPropertyName: "ignoreShowError", publicName: "ignoreShowError", isSignal: true, isRequired: false, transformFunction: null }, borderError: { classPropertyName: "borderError", publicName: "borderError", isSignal: true, isRequired: false, transformFunction: null }, iconLeftClass: { classPropertyName: "iconLeftClass", publicName: "iconLeftClass", isSignal: true, isRequired: false, transformFunction: null }, popoverContentIconLeft: { classPropertyName: "popoverContentIconLeft", publicName: "popoverContentIconLeft", isSignal: true, isRequired: false, transformFunction: null }, iconRightClass: { classPropertyName: "iconRightClass", publicName: "iconRightClass", isSignal: true, isRequired: false, transformFunction: null }, popoverContentIconRight: { classPropertyName: "popoverContentIconRight", publicName: "popoverContentIconRight", isSignal: true, isRequired: false, transformFunction: null }, zIndexPopoverContent: { classPropertyName: "zIndexPopoverContent", publicName: "zIndexPopoverContent", isSignal: true, isRequired: false, transformFunction: null }, unitsLeft: { classPropertyName: "unitsLeft", publicName: "unitsLeft", isSignal: true, isRequired: false, transformFunction: null }, configUnitLeft: { classPropertyName: "configUnitLeft", publicName: "configUnitLeft", isSignal: true, isRequired: false, transformFunction: null }, keySelectedUnitLeft: { classPropertyName: "keySelectedUnitLeft", publicName: "keySelectedUnitLeft", isSignal: true, isRequired: false, transformFunction: null }, unitsRight: { classPropertyName: "unitsRight", publicName: "unitsRight", isSignal: true, isRequired: false, transformFunction: null }, configUnitRight: { classPropertyName: "configUnitRight", publicName: "configUnitRight", isSignal: true, isRequired: false, transformFunction: null }, keySelectedUnitRight: { classPropertyName: "keySelectedUnitRight", publicName: "keySelectedUnitRight", isSignal: true, isRequired: false, transformFunction: null }, maxValueNumber: { classPropertyName: "maxValueNumber", publicName: "maxValueNumber", isSignal: true, isRequired: false, transformFunction: null }, minValueNumber: { classPropertyName: "minValueNumber", publicName: "minValueNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreContentLeft: { classPropertyName: "ignoreContentLeft", publicName: "ignoreContentLeft", isSignal: true, isRequired: false, transformFunction: null }, ignoreContentRight: { classPropertyName: "ignoreContentRight", publicName: "ignoreContentRight", isSignal: true, isRequired: false, transformFunction: null }, isBaselineStyle: { classPropertyName: "isBaselineStyle", publicName: "isBaselineStyle", isSignal: true, isRequired: false, transformFunction: null }, valuePatternShowError: { classPropertyName: "valuePatternShowError", publicName: "valuePatternShowError", isSignal: true, isRequired: false, transformFunction: null }, validPattern: { classPropertyName: "validPattern", publicName: "validPattern", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null }, validMinLength: { classPropertyName: "validMinLength", publicName: "validMinLength", isSignal: true, isRequired: false, transformFunction: null }, validMinValue: { classPropertyName: "validMinValue", publicName: "validMinValue", isSignal: true, isRequired: false, transformFunction: null }, validMaxValue: { classPropertyName: "validMaxValue", publicName: "validMaxValue", isSignal: true, isRequired: false, transformFunction: null }, validMaxLength: { classPropertyName: "validMaxLength", publicName: "validMaxLength", isSignal: true, isRequired: false, transformFunction: null }, functionValid: { classPropertyName: "functionValid", publicName: "functionValid", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, positionMessageErrorStartInput: { classPropertyName: "positionMessageErrorStartInput", publicName: "positionMessageErrorStartInput", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, resize: { classPropertyName: "resize", publicName: "resize", isSignal: true, isRequired: false, transformFunction: null }, templateLeftBottomInput: { classPropertyName: "templateLeftBottomInput", publicName: "templateLeftBottomInput", isSignal: true, isRequired: false, transformFunction: null }, templateRightBottomInput: { classPropertyName: "templateRightBottomInput", publicName: "templateRightBottomInput", isSignal: true, isRequired: false, transformFunction: null }, onlyAcceptNegativeValue: { classPropertyName: "onlyAcceptNegativeValue", publicName: "onlyAcceptNegativeValue", isSignal: true, isRequired: false, transformFunction: null }, autoAddZeroLessThan10InTypeInt: { classPropertyName: "autoAddZeroLessThan10InTypeInt", publicName: "autoAddZeroLessThan10InTypeInt", isSignal: true, isRequired: false, transformFunction: null }, maxLengthNumberCount: { classPropertyName: "maxLengthNumberCount", publicName: "maxLengthNumberCount", isSignal: true, isRequired: false, transformFunction: null }, classMessageErrorInclude: { classPropertyName: "classMessageErrorInclude", publicName: "classMessageErrorInclude", isSignal: true, isRequired: false, transformFunction: null }, ignoreStopPropagationEvent: { classPropertyName: "ignoreStopPropagationEvent", publicName: "ignoreStopPropagationEvent", isSignal: true, isRequired: false, transformFunction: null }, ignoreUnitRightClassReadOnly: { classPropertyName: "ignoreUnitRightClassReadOnly", publicName: "ignoreUnitRightClassReadOnly", isSignal: true, isRequired: false, transformFunction: null }, paddingRightCustomSpecific: { classPropertyName: "paddingRightCustomSpecific", publicName: "paddingRightCustomSpecific", isSignal: true, isRequired: false, transformFunction: null }, focusTimeOut: { classPropertyName: "focusTimeOut", publicName: "focusTimeOut", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { item: "itemChange", outValueChange: "outValueChange", outSelect: "outSelect", outIconLeft: "outIconLeft", outIconRight: "outIconRight", outClickButtonLabel: "outClickButtonLabel", outToggleEventLabel: "outToggleEventLabel", outLabelRightClick: "outLabelRightClick", outEnterInputEvent: "outEnterInputEvent", outHeightAreaChange: "outHeightAreaChange", outFunctionsControl: "outFunctionsControl", outFocusAndBlur: "outFocusAndBlur", outChangeValueByButtonUpDown: "outChangeValueByButtonUpDown" }, viewQueries: [{ propertyName: "elementLeftRef", first: true, predicate: ["elementLeftRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outToggleEvent)=\"handlerSwitchToggleLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .libs-ui-input-valid{position:relative;display:flex;align-items:center}:host .libs-ui-input-valid .libs-ui-input-valid-unit{height:32px;max-width:200px;overflow:hidden;text-align:center;border-radius:4px;background-color:#e6e7ea;display:none;align-items:center;padding:0 8px;border:1px solid #E6E7EA}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-left{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-right{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none}:host .libs-ui-input-valid .libs-ui-input-valid-left{display:flex;align-items:center;justify-content:flex-start}:host .libs-ui-input-valid .libs-ui-input-valid-right{display:flex;align-items:center;justify-content:flex-end}:host .libs-ui-input-valid-error{display:flex;align-items:center;margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsInputComponent, selector: "libs_ui-components-inputs-input", inputs: ["tagInput", "dataType", "tabInsertContentTagInput", "textAreaEnterNotNewLine", "emitEmptyInDataTypeNumber", "keepZeroInTypeInt", "autoAddZeroLessThan10InTypeInt", "ignoreBlockInputMaxValue", "hiddenContent", "maxValueNumber", "minValueNumber", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "classInclude", "maxLength", "readonly", "disable", "noBorder", "backgroundNone", "borderError", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "value", "autoRemoveEmoji", "defaultHeight", "minHeightTextArea", "maxHeightTextArea", "focusTimeOut", "blurTimeOut", "zIndexPopoverContent", "classContainerInput", "showCount", "ignoreStopPropagationEvent", "resize", "templateLeftBottomInput", "templateRightBottomInput", "classContainerBottomInput", "ignoreWidthInput100", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "resetAutoCompletePassword", "acceptOnlyClickIcon", "setIconRightColorSameColorDisableReadOnly", "onlyAcceptNegativeValue", "maxLengthNumberCount", "focusInput"], outputs: ["maxValueNumberChange", "minValueNumberChange", "fixedFloatChange", "acceptNegativeValueChange", "maxLengthChange", "valueChange", "maxLengthNumberCountChange", "outHeightAreaChange", "outChange", "outFocusAndBlurEvent", "outEnterEvent", "outInputEvent", "outIconLeft", "outIconRight", "outFunctionsControl", "outFilesDrop", "outFileDrop", "outChangeValueByButtonUpDown"] }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outToggleEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "component", type: LibsUiComponentsCheckboxSingleComponent, selector: "libs_ui-components-checkbox-single", inputs: ["key", "checked", "label", "classLabelInclude", "ignoreShowPopoverLabel", "typeLabelPopover", "popover", "linkImage", "linkImageError", "avatarConfig", "classImageInclude", "imgTypeIcon", "bullet", "classInclude", "clickExactly", "disable", "disableLabel", "ignoreCheckbox", "zIndexLabel", "stillOtherOptions", "error", "showBorderError", "description", "iconImageClass", "classIconInclude", "modeBorder"], outputs: ["checkedChange", "linkImageChange", "outChange", "outEventPopover", "outClickLabel", "outChangStageFlagMousePopover"] }, { kind: "component", type: LibsUiComponentsRadioSingleComponent, selector: "libs_ui-components-radio-single", inputs: ["key", "active", "classInclude", "label", "labelInterpolateParams", "ignorePopoverLabe", "classLabelInclude", "linkImage", "linkImageError", "avatarConfig", "classImageInclude", "imgTypeIcon", "bullet", "popover", "disable", "disableLabel", "clickExactly", "typeRadio", "ignoreRadio", "zIndexLabel", "classIncludeIcon"], outputs: ["activeChange", "outClickLabel", "outChange", "outChangStageFlagMousePopover"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
280
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsValidComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
281
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsValidComponent, isStandalone: true, selector: "libs_ui-components-inputs-valid", inputs: { item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: true, transformFunction: null }, labelConfig: { classPropertyName: "labelConfig", publicName: "labelConfig", isSignal: true, isRequired: false, transformFunction: null }, emitEmptyInDataTypeNumber: { classPropertyName: "emitEmptyInDataTypeNumber", publicName: "emitEmptyInDataTypeNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreBlockInputMaxValue: { classPropertyName: "ignoreBlockInputMaxValue", publicName: "ignoreBlockInputMaxValue", isSignal: true, isRequired: false, transformFunction: null }, fieldNameBind: { classPropertyName: "fieldNameBind", publicName: "fieldNameBind", isSignal: true, isRequired: true, transformFunction: null }, showCount: { classPropertyName: "showCount", publicName: "showCount", isSignal: true, isRequired: false, transformFunction: null }, typeComponentSelectItem: { classPropertyName: "typeComponentSelectItem", publicName: "typeComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, valueComponentSelectItem: { classPropertyName: "valueComponentSelectItem", publicName: "valueComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, disableComponentSelectItem: { classPropertyName: "disableComponentSelectItem", publicName: "disableComponentSelectItem", isSignal: true, isRequired: false, transformFunction: null }, tagInput: { classPropertyName: "tagInput", publicName: "tagInput", isSignal: true, isRequired: false, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: false, transformFunction: null }, resetAutoCompletePassword: { classPropertyName: "resetAutoCompletePassword", publicName: "resetAutoCompletePassword", isSignal: true, isRequired: false, transformFunction: null }, textAreaEnterNotNewLine: { classPropertyName: "textAreaEnterNotNewLine", publicName: "textAreaEnterNotNewLine", isSignal: true, isRequired: false, transformFunction: null }, hiddenContent: { classPropertyName: "hiddenContent", publicName: "hiddenContent", isSignal: true, isRequired: false, transformFunction: null }, fixedFloat: { classPropertyName: "fixedFloat", publicName: "fixedFloat", isSignal: true, isRequired: false, transformFunction: null }, acceptNegativeValue: { classPropertyName: "acceptNegativeValue", publicName: "acceptNegativeValue", isSignal: true, isRequired: false, transformFunction: null }, valueUpDownNumber: { classPropertyName: "valueUpDownNumber", publicName: "valueUpDownNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreWidthInput100: { classPropertyName: "ignoreWidthInput100", publicName: "ignoreWidthInput100", isSignal: true, isRequired: false, transformFunction: null }, classIncludeInput: { classPropertyName: "classIncludeInput", publicName: "classIncludeInput", isSignal: true, isRequired: false, transformFunction: null }, classContainerInput: { classPropertyName: "classContainerInput", publicName: "classContainerInput", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, disable: { classPropertyName: "disable", publicName: "disable", isSignal: true, isRequired: false, transformFunction: null }, noBorder: { classPropertyName: "noBorder", publicName: "noBorder", isSignal: true, isRequired: false, transformFunction: null }, backgroundNone: { classPropertyName: "backgroundNone", publicName: "backgroundNone", isSignal: true, isRequired: false, transformFunction: null }, useColorModeExist: { classPropertyName: "useColorModeExist", publicName: "useColorModeExist", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, keepPlaceholderOnly: { classPropertyName: "keepPlaceholderOnly", publicName: "keepPlaceholderOnly", isSignal: true, isRequired: false, transformFunction: null }, classContainerBottomInput: { classPropertyName: "classContainerBottomInput", publicName: "classContainerBottomInput", isSignal: true, isRequired: false, transformFunction: null }, autoRemoveEmoji: { classPropertyName: "autoRemoveEmoji", publicName: "autoRemoveEmoji", isSignal: true, isRequired: false, transformFunction: null }, defaultHeight: { classPropertyName: "defaultHeight", publicName: "defaultHeight", isSignal: true, isRequired: false, transformFunction: null }, maxHeightTextArea: { classPropertyName: "maxHeightTextArea", publicName: "maxHeightTextArea", isSignal: true, isRequired: false, transformFunction: null }, minHeightTextArea: { classPropertyName: "minHeightTextArea", publicName: "minHeightTextArea", isSignal: true, isRequired: false, transformFunction: null }, ignoreShowError: { classPropertyName: "ignoreShowError", publicName: "ignoreShowError", isSignal: true, isRequired: false, transformFunction: null }, borderError: { classPropertyName: "borderError", publicName: "borderError", isSignal: true, isRequired: false, transformFunction: null }, iconLeftClass: { classPropertyName: "iconLeftClass", publicName: "iconLeftClass", isSignal: true, isRequired: false, transformFunction: null }, popoverContentIconLeft: { classPropertyName: "popoverContentIconLeft", publicName: "popoverContentIconLeft", isSignal: true, isRequired: false, transformFunction: null }, iconRightClass: { classPropertyName: "iconRightClass", publicName: "iconRightClass", isSignal: true, isRequired: false, transformFunction: null }, popoverContentIconRight: { classPropertyName: "popoverContentIconRight", publicName: "popoverContentIconRight", isSignal: true, isRequired: false, transformFunction: null }, zIndexPopoverContent: { classPropertyName: "zIndexPopoverContent", publicName: "zIndexPopoverContent", isSignal: true, isRequired: false, transformFunction: null }, unitsLeft: { classPropertyName: "unitsLeft", publicName: "unitsLeft", isSignal: true, isRequired: false, transformFunction: null }, configUnitLeft: { classPropertyName: "configUnitLeft", publicName: "configUnitLeft", isSignal: true, isRequired: false, transformFunction: null }, keySelectedUnitLeft: { classPropertyName: "keySelectedUnitLeft", publicName: "keySelectedUnitLeft", isSignal: true, isRequired: false, transformFunction: null }, unitsRight: { classPropertyName: "unitsRight", publicName: "unitsRight", isSignal: true, isRequired: false, transformFunction: null }, configUnitRight: { classPropertyName: "configUnitRight", publicName: "configUnitRight", isSignal: true, isRequired: false, transformFunction: null }, keySelectedUnitRight: { classPropertyName: "keySelectedUnitRight", publicName: "keySelectedUnitRight", isSignal: true, isRequired: false, transformFunction: null }, maxValueNumber: { classPropertyName: "maxValueNumber", publicName: "maxValueNumber", isSignal: true, isRequired: false, transformFunction: null }, minValueNumber: { classPropertyName: "minValueNumber", publicName: "minValueNumber", isSignal: true, isRequired: false, transformFunction: null }, ignoreContentLeft: { classPropertyName: "ignoreContentLeft", publicName: "ignoreContentLeft", isSignal: true, isRequired: false, transformFunction: null }, ignoreContentRight: { classPropertyName: "ignoreContentRight", publicName: "ignoreContentRight", isSignal: true, isRequired: false, transformFunction: null }, isBaselineStyle: { classPropertyName: "isBaselineStyle", publicName: "isBaselineStyle", isSignal: true, isRequired: false, transformFunction: null }, valuePatternShowError: { classPropertyName: "valuePatternShowError", publicName: "valuePatternShowError", isSignal: true, isRequired: false, transformFunction: null }, validPattern: { classPropertyName: "validPattern", publicName: "validPattern", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null }, validMinLength: { classPropertyName: "validMinLength", publicName: "validMinLength", isSignal: true, isRequired: false, transformFunction: null }, validMinValue: { classPropertyName: "validMinValue", publicName: "validMinValue", isSignal: true, isRequired: false, transformFunction: null }, validMaxValue: { classPropertyName: "validMaxValue", publicName: "validMaxValue", isSignal: true, isRequired: false, transformFunction: null }, validMaxLength: { classPropertyName: "validMaxLength", publicName: "validMaxLength", isSignal: true, isRequired: false, transformFunction: null }, functionValid: { classPropertyName: "functionValid", publicName: "functionValid", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, positionMessageErrorStartInput: { classPropertyName: "positionMessageErrorStartInput", publicName: "positionMessageErrorStartInput", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, resize: { classPropertyName: "resize", publicName: "resize", isSignal: true, isRequired: false, transformFunction: null }, templateLeftBottomInput: { classPropertyName: "templateLeftBottomInput", publicName: "templateLeftBottomInput", isSignal: true, isRequired: false, transformFunction: null }, templateRightBottomInput: { classPropertyName: "templateRightBottomInput", publicName: "templateRightBottomInput", isSignal: true, isRequired: false, transformFunction: null }, onlyAcceptNegativeValue: { classPropertyName: "onlyAcceptNegativeValue", publicName: "onlyAcceptNegativeValue", isSignal: true, isRequired: false, transformFunction: null }, autoAddZeroLessThan10InTypeInt: { classPropertyName: "autoAddZeroLessThan10InTypeInt", publicName: "autoAddZeroLessThan10InTypeInt", isSignal: true, isRequired: false, transformFunction: null }, maxLengthNumberCount: { classPropertyName: "maxLengthNumberCount", publicName: "maxLengthNumberCount", isSignal: true, isRequired: false, transformFunction: null }, classMessageErrorInclude: { classPropertyName: "classMessageErrorInclude", publicName: "classMessageErrorInclude", isSignal: true, isRequired: false, transformFunction: null }, ignoreStopPropagationEvent: { classPropertyName: "ignoreStopPropagationEvent", publicName: "ignoreStopPropagationEvent", isSignal: true, isRequired: false, transformFunction: null }, ignoreUnitRightClassReadOnly: { classPropertyName: "ignoreUnitRightClassReadOnly", publicName: "ignoreUnitRightClassReadOnly", isSignal: true, isRequired: false, transformFunction: null }, paddingRightCustomSpecific: { classPropertyName: "paddingRightCustomSpecific", publicName: "paddingRightCustomSpecific", isSignal: true, isRequired: false, transformFunction: null }, focusTimeOut: { classPropertyName: "focusTimeOut", publicName: "focusTimeOut", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { item: "itemChange", outValueChange: "outValueChange", outSelect: "outSelect", outIconLeft: "outIconLeft", outIconRight: "outIconRight", outClickButtonLabel: "outClickButtonLabel", outSwitchEventLabel: "outSwitchEventLabel", outLabelRightClick: "outLabelRightClick", outEnterInputEvent: "outEnterInputEvent", outHeightAreaChange: "outHeightAreaChange", outFunctionsControl: "outFunctionsControl", outFocusAndBlur: "outFocusAndBlur", outChangeValueByButtonUpDown: "outChangeValueByButtonUpDown" }, viewQueries: [{ propertyName: "elementLeftRef", first: true, predicate: ["elementLeftRef"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outSwitchEvent)=\"handlerSwitchLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .libs-ui-input-valid{position:relative;display:flex;align-items:center}:host .libs-ui-input-valid .libs-ui-input-valid-unit{height:32px;max-width:200px;overflow:hidden;text-align:center;border-radius:4px;background-color:#e6e7ea;display:none;align-items:center;padding:0 8px;border:1px solid #E6E7EA}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-left{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-right{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none}:host .libs-ui-input-valid .libs-ui-input-valid-left{display:flex;align-items:center;justify-content:flex-start}:host .libs-ui-input-valid .libs-ui-input-valid-right{display:flex;align-items:center;justify-content:flex-end}:host .libs-ui-input-valid-error{display:flex;align-items:center;margin-top:8px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsInputsInputComponent, selector: "libs_ui-components-inputs-input", inputs: ["tagInput", "dataType", "tabInsertContentTagInput", "textAreaEnterNotNewLine", "emitEmptyInDataTypeNumber", "keepZeroInTypeInt", "autoAddZeroLessThan10InTypeInt", "ignoreBlockInputMaxValue", "hiddenContent", "maxValueNumber", "minValueNumber", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "classInclude", "maxLength", "readonly", "disable", "noBorder", "backgroundNone", "borderError", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "value", "autoRemoveEmoji", "defaultHeight", "minHeightTextArea", "maxHeightTextArea", "focusTimeOut", "blurTimeOut", "zIndexPopoverContent", "classContainerInput", "showCount", "ignoreStopPropagationEvent", "resize", "templateLeftBottomInput", "templateRightBottomInput", "classContainerBottomInput", "ignoreWidthInput100", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "resetAutoCompletePassword", "acceptOnlyClickIcon", "setIconRightColorSameColorDisableReadOnly", "onlyAcceptNegativeValue", "maxLengthNumberCount", "focusInput"], outputs: ["maxValueNumberChange", "minValueNumberChange", "fixedFloatChange", "acceptNegativeValueChange", "maxLengthChange", "valueChange", "maxLengthNumberCountChange", "outHeightAreaChange", "outChange", "outFocusAndBlurEvent", "outEnterEvent", "outInputEvent", "outIconLeft", "outIconRight", "outFunctionsControl", "outFilesDrop", "outFileDrop", "outChangeValueByButtonUpDown"] }, { kind: "component", type: LibsUiComponentsLabelComponent, selector: "libs_ui-components-label", inputs: ["iconPopoverClass", "classInclude", "labelLeft", "labelLeftClass", "labelLeftBehindToggleButton", "popover", "required", "buttonsLeft", "disableButtonsLeft", "buttonsRight", "disableButtonsRight", "labelRight", "labelRightClass", "labelRightRequired", "hasToggle", "toggleSize", "toggleActive", "toggleDisable", "description", "descriptionClass", "buttonsDescription", "disableButtonsDescription", "buttonsDescriptionContainerClass", "onlyShowCount", "zIndexPopover", "timerDestroyPopover", "count", "limitLength"], outputs: ["outClickButton", "outSwitchEvent", "outLabelRightClick", "outLabelLeftClick"] }, { kind: "component", type: LibsUiComponentsCheckboxSingleComponent, selector: "libs_ui-components-checkbox-single", inputs: ["key", "checked", "label", "classLabelInclude", "ignoreShowPopoverLabel", "typeLabelPopover", "popover", "linkImage", "linkImageError", "avatarConfig", "classImageInclude", "imgTypeIcon", "bullet", "classInclude", "clickExactly", "disable", "disableLabel", "ignoreCheckbox", "zIndexLabel", "stillOtherOptions", "error", "showBorderError", "description", "iconImageClass", "classIconInclude", "modeBorder"], outputs: ["checkedChange", "linkImageChange", "outChange", "outEventPopover", "outClickLabel", "outChangStageFlagMousePopover"] }, { kind: "component", type: LibsUiComponentsRadioSingleComponent, selector: "libs_ui-components-radio-single", inputs: ["key", "active", "classInclude", "label", "labelInterpolateParams", "ignorePopoverLabe", "classLabelInclude", "linkImage", "linkImageError", "avatarConfig", "classImageInclude", "imgTypeIcon", "bullet", "popover", "disable", "disableLabel", "clickExactly", "typeRadio", "ignoreRadio", "zIndexLabel", "classIncludeIcon"], outputs: ["activeChange", "outClickLabel", "outChange", "outChangStageFlagMousePopover"] }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
289
282
  }
290
283
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsValidComponent, decorators: [{
291
284
  type: Component,
292
- args: [{ selector: 'libs_ui-components-inputs-valid', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TranslateModule,
285
+ args: [{ selector: 'libs_ui-components-inputs-valid', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [
286
+ TranslateModule,
293
287
  LibsUiComponentsInputsInputComponent,
294
288
  LibsUiComponentsLabelComponent,
295
289
  LibsUiComponentsCheckboxSingleComponent,
296
290
  LibsUiComponentsRadioSingleComponent,
297
- LibsUiComponentsPopoverComponent], template: "@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outToggleEvent)=\"handlerSwitchToggleLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .libs-ui-input-valid{position:relative;display:flex;align-items:center}:host .libs-ui-input-valid .libs-ui-input-valid-unit{height:32px;max-width:200px;overflow:hidden;text-align:center;border-radius:4px;background-color:#e6e7ea;display:none;align-items:center;padding:0 8px;border:1px solid #E6E7EA}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-left{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-right{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none}:host .libs-ui-input-valid .libs-ui-input-valid-left{display:flex;align-items:center;justify-content:flex-start}:host .libs-ui-input-valid .libs-ui-input-valid-right{display:flex;align-items:center;justify-content:flex-end}:host .libs-ui-input-valid-error{display:flex;align-items:center;margin-top:8px}\n"] }]
298
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
291
+ LibsUiComponentsPopoverComponent
292
+ ], template: "@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outSwitchEvent)=\"handlerSwitchLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n", styles: [":host{display:flex;flex-direction:column;width:100%}:host .libs-ui-input-valid{position:relative;display:flex;align-items:center}:host .libs-ui-input-valid .libs-ui-input-valid-unit{height:32px;max-width:200px;overflow:hidden;text-align:center;border-radius:4px;background-color:#e6e7ea;display:none;align-items:center;padding:0 8px;border:1px solid #E6E7EA}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-left{border-bottom-left-radius:0;border-top-left-radius:0;border-left:none}:host .libs-ui-input-valid .libs-ui-input-valid-unit .libs-ui-input-unit-right{border-bottom-right-radius:0;border-top-right-radius:0;border-right:none}:host .libs-ui-input-valid .libs-ui-input-valid-left{display:flex;align-items:center;justify-content:flex-start}:host .libs-ui-input-valid .libs-ui-input-valid-right{display:flex;align-items:center;justify-content:flex-end}:host .libs-ui-input-valid-error{display:flex;align-items:center;margin-top:8px}\n"] }]
293
+ }], ctorParameters: () => [] });
299
294
 
300
295
  /**
301
296
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-inputs-valid.mjs","sources":["../../../../../../libs-ui/components/inputs/valid/src/valid.component.ts","../../../../../../libs-ui/components/inputs/valid/src/valid.component.html","../../../../../../libs-ui/components/inputs/valid/src/libs-ui-components-inputs-valid.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, TemplateRef, effect, input, model, output, signal, viewChild } from '@angular/core';\nimport { IButton } from '@libs-ui/components-buttons-button';\nimport { IToggleEvent } from '@libs-ui/components-buttons-toggle';\nimport { LibsUiComponentsCheckboxSingleComponent } from '@libs-ui/components-checkbox-single';\nimport { IFocusAndBlurEvent, IInputFunctionControlEvent, LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { LibsUiComponentsRadioSingleComponent } from '@libs-ui/components-radio-single';\nimport { IBoundingClientRect, IEvent, TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\nimport { ERROR_MESSAGE_EMPTY_VALID, ERROR_MESSAGE_MAX_LENGTH, ERROR_MESSAGE_MAX_VALID, ERROR_MESSAGE_MIN_LENGTH, ERROR_MESSAGE_MIN_VALID, ERROR_MESSAGE_PATTEN_VALID, cloneDeep, isNil, set, viewDataNumberByLanguage } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IInputValidFunctionControlEvent } from './interfaces/function-control-event.interface';\nimport { IInputValidUnitConfig, IValid, IValidLength, IValidPattern, IValidRequired, TYPE_FUNCTION_INPUT_VALID } from './interfaces/valid.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-valid',\n templateUrl: './valid.component.html',\n styleUrls: ['./valid.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [TranslateModule,\n LibsUiComponentsInputsInputComponent,\n LibsUiComponentsLabelComponent,\n LibsUiComponentsCheckboxSingleComponent,\n LibsUiComponentsRadioSingleComponent,\n LibsUiComponentsPopoverComponent]\n})\nexport class LibsUiComponentsInputsValidComponent implements OnInit, OnDestroy {\n /* PROPERTY */\n protected singleError = signal<IValid>({ message: undefined, interpolateParams: undefined });\n protected rectLeft = signal<IBoundingClientRect | undefined>(undefined);\n private timer = signal<number>(0);\n private timerValueChange = signal<number>(0);\n private functionControlInput: IInputFunctionControlEvent | undefined;\n\n /* INPUT */\n readonly item = model.required<Record<string, any>>({});\n readonly labelConfig = input<ILabel>();\n readonly emitEmptyInDataTypeNumber = input<boolean>();\n readonly ignoreBlockInputMaxValue = input<boolean>();\n readonly fieldNameBind = input.required<string>();\n readonly showCount = input<boolean>();\n\n readonly typeComponentSelectItem = input<'radio' | 'checkbox' | undefined>();\n readonly valueComponentSelectItem = input<boolean>();\n readonly disableComponentSelectItem = input<boolean>();\n\n readonly tagInput = input<'input' | 'textarea' | undefined>();\n readonly dataType = input<'string' | 'int' | 'float' | 'bigint' | undefined>();\n readonly resetAutoCompletePassword = input<boolean>();\n readonly textAreaEnterNotNewLine = input<boolean>();\n readonly hiddenContent = input<boolean>(); // sử dụng để set type cho input dạng text hay password\n readonly fixedFloat = input<number>();\n readonly acceptNegativeValue = input<boolean>();\n readonly valueUpDownNumber = input<number | undefined>();\n readonly ignoreWidthInput100 = input<boolean>();\n readonly classIncludeInput = input<string>();\n readonly classContainerInput = input<string>();\n readonly readonly = input<boolean>();\n readonly disable = input<boolean>();\n readonly noBorder = input<boolean>();\n readonly backgroundNone = input<boolean>();\n readonly useColorModeExist = input<boolean>();\n readonly placeholder = input<string>();\n readonly keepPlaceholderOnly = input<boolean>();\n\n readonly classContainerBottomInput = input<string>();\n readonly autoRemoveEmoji = input<boolean>();\n readonly defaultHeight = input<number>();\n readonly maxHeightTextArea = input<number>();\n readonly minHeightTextArea = input<number>();\n readonly ignoreShowError = input<boolean>();\n readonly borderError = input<boolean>();\n\n readonly iconLeftClass = input<string>();\n readonly popoverContentIconLeft = input<string>();\n readonly iconRightClass = input<string>();\n readonly popoverContentIconRight = input<string>();\n readonly zIndexPopoverContent = input<number>();\n\n readonly unitsLeft = input<Array<any>>();\n readonly configUnitLeft = input<IInputValidUnitConfig>({\n fieldKey: 'id',\n fieldLabel: 'label',\n });\n readonly keySelectedUnitLeft = input<any>();\n\n readonly unitsRight = input<Array<any>>();\n readonly configUnitRight = input<IInputValidUnitConfig>({\n fieldKey: 'id',\n fieldLabel: 'label',\n });\n readonly keySelectedUnitRight = input<any>();\n\n readonly maxValueNumber = input<number>();\n readonly minValueNumber = input<number>();\n\n readonly ignoreContentLeft = input<boolean>();\n readonly ignoreContentRight = input<boolean>();\n readonly isBaselineStyle = input<boolean>(); // align-items-baseline dùng khi căn input thẳng hàng với tất cả các phần khác dù có validate hay bất cứ 1 cái gì\n\n readonly valuePatternShowError = input<boolean>(); // mặc định khi test pattern trả tề giá trị bằng false sẽ báo lỗi\n readonly validPattern = input<Array<IValidPattern>>();\n readonly validRequired = input<IValidRequired>();\n readonly validMinLength = input<IValidLength>();\n readonly validMinValue = input<IValid>();\n readonly validMaxValue = input<IValid>();\n readonly validMaxLength = input<IValid>();\n readonly functionValid = input<TYPE_FUNCTION_INPUT_VALID>();\n readonly maxLength = input<number>();\n readonly positionMessageErrorStartInput = input<boolean>(); // khi có template left và right mà muốn mesage error xuất hiện bắt đầu từ ô input thay vì bắt đầu từ template trái\n readonly classInclude = input<string>();\n readonly resize = input<'auto' | 'none'>();\n readonly templateLeftBottomInput = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly templateRightBottomInput = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly onlyAcceptNegativeValue = input<boolean>();\n readonly autoAddZeroLessThan10InTypeInt = input<boolean>();\n readonly maxLengthNumberCount = input<number>();\n readonly classMessageErrorInclude = input<string>();\n readonly ignoreStopPropagationEvent = input<boolean>();\n readonly ignoreUnitRightClassReadOnly = input<boolean>();\n readonly paddingRightCustomSpecific = input<number>(); // fix paddingRight count ko auto tính #52185\n readonly focusTimeOut = input<number>();\n\n /* OUTPUT */\n readonly outValueChange = output<any>();\n readonly outSelect = output<boolean>();\n readonly outIconLeft = output<string>();\n readonly outIconRight = output<string>();\n readonly outClickButtonLabel = output<IButton>();\n readonly outToggleEventLabel = output<IToggleEvent>();\n readonly outLabelRightClick = output<boolean>();\n readonly outEnterInputEvent = output<IEvent>();\n readonly outHeightAreaChange = output<{ isChange: boolean }>();\n readonly outFunctionsControl = output<IInputValidFunctionControlEvent>();\n readonly outFocusAndBlur = output<IFocusAndBlurEvent>();\n readonly outChangeValueByButtonUpDown = output<void>();\n\n /* VIEW CHILD */\n readonly elementLeftRef = viewChild<ElementRef>('elementLeftRef');\n\n constructor(private cdr: ChangeDetectorRef) {\n effect(() => {\n if (!this.item() || typeof this.item() !== 'object' || this.item() instanceof Array || this.item() instanceof Map && this.item() instanceof WeakMap || this.item() instanceof Set || this.item() instanceof WeakSet) {\n return;\n }\n this.getRectLeft();\n }, { allowSignalWrites: true });\n }\n\n ngOnInit() {\n this.outFunctionsControl.emit({\n checkIsValid: this.checkIsValid.bind(this),\n detectChanges: this.detectChanges.bind(this),\n setMessageError: this.setMessageError.bind(this),\n blur: async () => await this.functionControlInput?.blur(),\n focus: async () => await this.functionControlInput?.focus(),\n insertContent: async (data: string | number) => await this.functionControlInput?.insertContent(data),\n resetValue: async () => await this.functionControlInput?.resetValue(),\n currentStateIsValid: this.currentStateIsValid.bind(this),\n getElementValue: this.getElementValue.bind(this),\n checkAndDisableUpDownButton: async (value) => await this.functionControlInput?.checkAndDisableUpDownButton(value)\n });\n }\n\n /* FUNCTIONS */\n private currentStateIsValid() {\n return this.singleError().message ? false : true;\n }\n\n private getElementValue() {\n return this.functionControlInput?.getElementValue();\n }\n\n private detectChanges() {\n this.cdr.detectChanges();\n }\n\n protected handlerSelect(value: boolean) {\n this.outSelect.emit(value);\n }\n protected handlerValueChange(value: string | number) {\n this.item.update(item => {\n return set(cloneDeep(item), this.fieldNameBind(), value);\n });\n if (!this.functionValid()) {\n this.validate(value);\n this.outValueChange.emit(value);\n this.cdr.detectChanges();\n\n return;\n }\n\n clearTimeout(this.timerValueChange());\n this.timerValueChange.set(setTimeout(() => {\n this.validate(value);\n this.outValueChange.emit(value);\n }, 1000));\n }\n\n protected handlerEventIconLeft(eventName: string) {\n this.outIconLeft.emit(eventName);\n }\n\n protected handlerEventIconRight(eventName: string) {\n this.outIconRight.emit(eventName);\n }\n\n protected handlerClickButtonLabel(button: IButton) {\n this.outClickButtonLabel.emit(button);\n }\n\n protected handlerSwitchToggleLabel(toggleEvent: IToggleEvent) {\n this.outToggleEventLabel.emit(toggleEvent);\n }\n\n protected handlerEventLabelRightLabel() {\n this.outLabelRightClick.emit(true);\n }\n\n protected handlerEnterInput(e: IEvent) {\n this.outEnterInputEvent.emit(e);\n }\n\n protected handlerHeightAreaChange(event: { isChange: boolean }) {\n this.outHeightAreaChange.emit(event);\n }\n\n private async validate(value: string | number) {\n this.getRectLeft();\n this.singleError.update(obj => ({ ...obj, message: undefined }));\n if (this.validRequired() && this.validRequired()?.isRequired && ((typeof value === 'string' && !value.trim()) || (typeof value !== 'string' && isNil(value)))) {\n this.singleError.set({ message: (this.validRequired()?.message || ERROR_MESSAGE_EMPTY_VALID), interpolateParams: (this.validRequired()?.interpolateParams || {}) });\n\n return;\n }\n if (typeof value === 'string' && this.validMinLength()?.message && this.validMinLength?.length > value.length) {\n this.singleError.set({ message: (this.validMinLength()?.message || ERROR_MESSAGE_MIN_LENGTH), interpolateParams: (this.validMinLength()?.interpolateParams || {}) });\n\n return;\n }\n if (typeof value === 'string' && this.validPattern() && this.validPattern()?.length && value && value.trim()) {\n for (const valid of this.validPattern() || []) {\n if (!valid.pattern) {\n continue;\n }\n const pattern = `${valid.pattern}`;\n const indexOfSlash = pattern.lastIndexOf('/');\n\n if (!indexOfSlash) {\n continue;\n }\n const patternStr = pattern.substring(1, indexOfSlash);\n const patternFlag = pattern.substring(indexOfSlash + 1, pattern.length);\n\n if (new RegExp(patternStr, patternFlag).test(value) === (valid.valuePatternShowError ?? this.valuePatternShowError)) {\n this.singleError.set({ message: (valid.message || ERROR_MESSAGE_PATTEN_VALID), interpolateParams: (valid.interpolateParams || {}) });\n return;\n }\n }\n }\n if (this.validMinValue() && typeof value === 'number' && typeof this.minValueNumber() === 'number' && value < (this.minValueNumber() || Number.MIN_SAFE_INTEGER)) {\n this.singleError.set({ message: (this.validMinValue()?.message || ERROR_MESSAGE_MIN_VALID), interpolateParams: (this.validMinValue()?.interpolateParams || { value: this.minValueNumber() }) });\n return;\n }\n\n if ((this.ignoreBlockInputMaxValue() || this.validMaxValue()?.message) && typeof value === 'number' && typeof this.maxValueNumber() === 'number' && value > (this.maxValueNumber() || Number.MAX_SAFE_INTEGER)) {\n this.singleError.set({ message: (this.validMaxValue()?.message || ERROR_MESSAGE_MAX_VALID), interpolateParams: (this.validMaxValue()?.interpolateParams || { value: this.maxValueNumber() }) });\n return;\n }\n\n if (this.dataType() === 'bigint' && typeof value === 'string') {\n const maxMinValue = BigInt(922) * BigInt(10) ** BigInt(18) / BigInt(100);\n const [int, decimal] = value.split('.');\n let valueDivided = BigInt(1);\n for (let index = 0; index < (decimal?.length || 0); index++) {\n valueDivided *= BigInt(10);\n }\n\n const valueCompare = BigInt(`${int}${decimal || ''}`) * (BigInt(10000) / valueDivided);\n\n if (valueCompare < -maxMinValue) {\n this.singleError.set({ message: (this.validMinValue()?.message || ERROR_MESSAGE_MIN_VALID), interpolateParams: (this.validMinValue()?.interpolateParams || { value: viewDataNumberByLanguage(`-${maxMinValue / BigInt(10000)}`, true, 4, true, true) }) });\n return;\n }\n\n if (valueCompare > maxMinValue) {\n this.singleError.set({ message: (this.validMaxValue()?.message || ERROR_MESSAGE_MAX_VALID), interpolateParams: (this.validMaxValue()?.interpolateParams || { value: viewDataNumberByLanguage(`${maxMinValue / BigInt(10000)}`, true, 4, true, true) }) });\n return;\n }\n }\n\n if (this.maxLength && typeof value === 'string' && (this.maxLength() || Number.MAX_SAFE_INTEGER) < value.length) {\n this.singleError.set({ message: (this.validMaxLength()?.message || ERROR_MESSAGE_MAX_LENGTH), interpolateParams: (this.validMaxLength()?.interpolateParams || { number: this.maxLength }) });\n\n return;\n }\n\n if (!this.functionValid()) {\n return;\n }\n\n const result: any = this.functionValid()?.(value);\n\n if (result && result.then) {\n this.singleError.set((await result));\n\n return;\n }\n this.singleError.set(result);\n }\n\n private async checkIsValid() {\n if (this.item() && (this.readonly() || this.disable())) {\n return true;\n }\n clearTimeout(this.timerValueChange());\n await this.validate(this.item()[this.fieldNameBind()]);\n\n return this.singleError().message ? false : true;\n }\n\n private setMessageError(message: string) {\n this.singleError.update(obj => ({ ...obj, message }));\n }\n\n protected handlerControlFunctionInput(event: IInputFunctionControlEvent) {\n this.functionControlInput = event;\n }\n\n protected handlerFocusAndBlur(event: IFocusAndBlurEvent) {\n this.outFocusAndBlur.emit(event);\n }\n\n private getRectLeft() {\n if (!this.rectLeft() || this.positionMessageErrorStartInput()) {\n this.timer.set(setTimeout(() => {\n this.rectLeft.set(this.elementLeftRef()?.nativeElement.getBoundingClientRect());\n }));\n }\n }\n\n protected handlerChangeValueByButtonUpDown() {\n this.outChangeValueByButtonUpDown.emit();\n }\n\n ngOnDestroy() {\n clearTimeout(this.timer());\n clearTimeout(this.timerValueChange());\n }\n}\n","@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outToggleEvent)=\"handlerSwitchToggleLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"libs-ui-components-inputs-valid.mjs","sources":["../../../../../../libs-ui/components/inputs/valid/src/valid.component.ts","../../../../../../libs-ui/components/inputs/valid/src/valid.component.html","../../../../../../libs-ui/components/inputs/valid/src/libs-ui-components-inputs-valid.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ChangeDetectionStrategy, Component, ElementRef, OnDestroy, OnInit, TemplateRef, effect, input, model, output, signal, viewChild } from '@angular/core';\nimport { IButton } from '@libs-ui/components-buttons-button';\nimport { LibsUiComponentsCheckboxSingleComponent } from '@libs-ui/components-checkbox-single';\nimport { IFocusAndBlurEvent, IInputFunctionControlEvent, LibsUiComponentsInputsInputComponent } from '@libs-ui/components-inputs-input';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { LibsUiComponentsPopoverComponent } from '@libs-ui/components-popover';\nimport { LibsUiComponentsRadioSingleComponent } from '@libs-ui/components-radio-single';\nimport { ISwitchEvent } from '@libs-ui/components-switch';\nimport { IBoundingClientRect, IEvent, TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\nimport { ERROR_MESSAGE_EMPTY_VALID, ERROR_MESSAGE_MAX_LENGTH, ERROR_MESSAGE_MAX_VALID, ERROR_MESSAGE_MIN_LENGTH, ERROR_MESSAGE_MIN_VALID, ERROR_MESSAGE_PATTEN_VALID, cloneDeep, isNil, set, viewDataNumberByLanguage } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { IInputValidFunctionControlEvent } from './interfaces/function-control-event.interface';\nimport { IInputValidUnitConfig, IValid, IValidLength, IValidPattern, IValidRequired, TYPE_FUNCTION_INPUT_VALID } from './interfaces/valid.interface';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-valid',\n templateUrl: './valid.component.html',\n styleUrls: ['./valid.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TranslateModule,\n LibsUiComponentsInputsInputComponent,\n LibsUiComponentsLabelComponent,\n LibsUiComponentsCheckboxSingleComponent,\n LibsUiComponentsRadioSingleComponent,\n LibsUiComponentsPopoverComponent]\n})\nexport class LibsUiComponentsInputsValidComponent implements OnInit, OnDestroy {\n /* PROPERTY */\n protected singleError = signal<IValid>({ message: undefined, interpolateParams: undefined });\n protected rectLeft = signal<IBoundingClientRect | undefined>(undefined);\n private timer = signal<number>(0);\n private timerValueChange = signal<number>(0);\n private functionControlInput: IInputFunctionControlEvent | undefined;\n\n /* INPUT */\n readonly item = model.required<Record<string, any>>({});\n readonly labelConfig = input<ILabel>();\n readonly emitEmptyInDataTypeNumber = input<boolean>();\n readonly ignoreBlockInputMaxValue = input<boolean>();\n readonly fieldNameBind = input.required<string>();\n readonly showCount = input<boolean>();\n\n readonly typeComponentSelectItem = input<'radio' | 'checkbox' | undefined>();\n readonly valueComponentSelectItem = input<boolean>();\n readonly disableComponentSelectItem = input<boolean>();\n\n readonly tagInput = input<'input' | 'textarea' | undefined>();\n readonly dataType = input<'string' | 'int' | 'float' | 'bigint' | undefined>();\n readonly resetAutoCompletePassword = input<boolean>();\n readonly textAreaEnterNotNewLine = input<boolean>();\n readonly hiddenContent = input<boolean>(); // sử dụng để set type cho input dạng text hay password\n readonly fixedFloat = input<number>();\n readonly acceptNegativeValue = input<boolean>();\n readonly valueUpDownNumber = input<number | undefined>();\n readonly ignoreWidthInput100 = input<boolean>();\n readonly classIncludeInput = input<string>();\n readonly classContainerInput = input<string>();\n readonly readonly = input<boolean>();\n readonly disable = input<boolean>();\n readonly noBorder = input<boolean>();\n readonly backgroundNone = input<boolean>();\n readonly useColorModeExist = input<boolean>();\n readonly placeholder = input<string>();\n readonly keepPlaceholderOnly = input<boolean>();\n\n readonly classContainerBottomInput = input<string>();\n readonly autoRemoveEmoji = input<boolean>();\n readonly defaultHeight = input<number>();\n readonly maxHeightTextArea = input<number>();\n readonly minHeightTextArea = input<number>();\n readonly ignoreShowError = input<boolean>();\n readonly borderError = input<boolean>();\n\n readonly iconLeftClass = input<string>();\n readonly popoverContentIconLeft = input<string>();\n readonly iconRightClass = input<string>();\n readonly popoverContentIconRight = input<string>();\n readonly zIndexPopoverContent = input<number>();\n\n readonly unitsLeft = input<Array<any>>();\n readonly configUnitLeft = input<IInputValidUnitConfig>({\n fieldKey: 'id',\n fieldLabel: 'label',\n });\n readonly keySelectedUnitLeft = input<any>();\n\n readonly unitsRight = input<Array<any>>();\n readonly configUnitRight = input<IInputValidUnitConfig>({\n fieldKey: 'id',\n fieldLabel: 'label',\n });\n readonly keySelectedUnitRight = input<any>();\n\n readonly maxValueNumber = input<number>();\n readonly minValueNumber = input<number>();\n\n readonly ignoreContentLeft = input<boolean>();\n readonly ignoreContentRight = input<boolean>();\n readonly isBaselineStyle = input<boolean>(); // align-items-baseline dùng khi căn input thẳng hàng với tất cả các phần khác dù có validate hay bất cứ 1 cái gì\n\n readonly valuePatternShowError = input<boolean>(); // mặc định khi test pattern trả tề giá trị bằng false sẽ báo lỗi\n readonly validPattern = input<Array<IValidPattern>>();\n readonly validRequired = input<IValidRequired>();\n readonly validMinLength = input<IValidLength>();\n readonly validMinValue = input<IValid>();\n readonly validMaxValue = input<IValid>();\n readonly validMaxLength = input<IValid>();\n readonly functionValid = input<TYPE_FUNCTION_INPUT_VALID>();\n readonly maxLength = input<number>();\n readonly positionMessageErrorStartInput = input<boolean>(); // khi có template left và right mà muốn mesage error xuất hiện bắt đầu từ ô input thay vì bắt đầu từ template trái\n readonly classInclude = input<string>();\n readonly resize = input<'auto' | 'none'>();\n readonly templateLeftBottomInput = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly templateRightBottomInput = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly onlyAcceptNegativeValue = input<boolean>();\n readonly autoAddZeroLessThan10InTypeInt = input<boolean>();\n readonly maxLengthNumberCount = input<number>();\n readonly classMessageErrorInclude = input<string>();\n readonly ignoreStopPropagationEvent = input<boolean>();\n readonly ignoreUnitRightClassReadOnly = input<boolean>();\n readonly paddingRightCustomSpecific = input<number>(); // fix paddingRight count ko auto tính #52185\n readonly focusTimeOut = input<number>();\n\n /* OUTPUT */\n readonly outValueChange = output<any>();\n readonly outSelect = output<boolean>();\n readonly outIconLeft = output<string>();\n readonly outIconRight = output<string>();\n readonly outClickButtonLabel = output<IButton>();\n readonly outSwitchEventLabel = output<ISwitchEvent>();\n readonly outLabelRightClick = output<boolean>();\n readonly outEnterInputEvent = output<IEvent>();\n readonly outHeightAreaChange = output<{ isChange: boolean }>();\n readonly outFunctionsControl = output<IInputValidFunctionControlEvent>();\n readonly outFocusAndBlur = output<IFocusAndBlurEvent>();\n readonly outChangeValueByButtonUpDown = output<void>();\n\n /* VIEW CHILD */\n readonly elementLeftRef = viewChild<ElementRef>('elementLeftRef');\n\n constructor() {\n effect(() => {\n if (!this.item() || typeof this.item() !== 'object' || this.item() instanceof Array || this.item() instanceof Map && this.item() instanceof WeakMap || this.item() instanceof Set || this.item() instanceof WeakSet) {\n return;\n }\n this.getRectLeft();\n }, { allowSignalWrites: true });\n }\n\n ngOnInit() {\n this.outFunctionsControl.emit({\n checkIsValid: this.checkIsValid.bind(this),\n setMessageError: this.setMessageError.bind(this),\n blur: async () => await this.functionControlInput?.blur(),\n focus: async () => await this.functionControlInput?.focus(),\n insertContent: async (data: string | number) => await this.functionControlInput?.insertContent(data),\n resetValue: async () => await this.functionControlInput?.resetValue(),\n currentStateIsValid: this.currentStateIsValid.bind(this),\n getElementValue: this.getElementValue.bind(this),\n checkAndDisableUpDownButton: async (value) => await this.functionControlInput?.checkAndDisableUpDownButton(value)\n });\n }\n\n /* FUNCTIONS */\n private async currentStateIsValid() {\n return this.singleError().message ? false : true;\n }\n\n private getElementValue() {\n return this.functionControlInput?.getElementValue();\n }\n\n protected handlerSelect(value: boolean) {\n this.outSelect.emit(value);\n }\n protected handlerValueChange(value: string | number) {\n this.item.update(item => {\n return set(cloneDeep(item), this.fieldNameBind(), value);\n });\n if (!this.functionValid()) {\n this.validate(value);\n this.outValueChange.emit(value);\n\n return;\n }\n\n clearTimeout(this.timerValueChange());\n this.timerValueChange.set(setTimeout(() => {\n this.validate(value);\n this.outValueChange.emit(value);\n }, 1000));\n }\n\n protected handlerEventIconLeft(eventName: string) {\n this.outIconLeft.emit(eventName);\n }\n\n protected handlerEventIconRight(eventName: string) {\n this.outIconRight.emit(eventName);\n }\n\n protected handlerClickButtonLabel(button: IButton) {\n this.outClickButtonLabel.emit(button);\n }\n\n protected handlerSwitchLabel(toggleEvent: ISwitchEvent) {\n this.outSwitchEventLabel.emit(toggleEvent);\n }\n\n protected handlerEventLabelRightLabel() {\n this.outLabelRightClick.emit(true);\n }\n\n protected handlerEnterInput(e: IEvent) {\n this.outEnterInputEvent.emit(e);\n }\n\n protected handlerHeightAreaChange(event: { isChange: boolean }) {\n this.outHeightAreaChange.emit(event);\n }\n\n private async validate(value: string | number) {\n this.getRectLeft();\n this.singleError.update(obj => ({ ...obj, message: undefined }));\n if (this.validRequired() && this.validRequired()?.isRequired && ((typeof value === 'string' && !value.trim()) || (typeof value !== 'string' && isNil(value)))) {\n this.singleError.set({ message: (this.validRequired()?.message || ERROR_MESSAGE_EMPTY_VALID), interpolateParams: (this.validRequired()?.interpolateParams || {}) });\n\n return;\n }\n if (typeof value === 'string' && this.validMinLength()?.message && this.validMinLength?.length > value.length) {\n this.singleError.set({ message: (this.validMinLength()?.message || ERROR_MESSAGE_MIN_LENGTH), interpolateParams: (this.validMinLength()?.interpolateParams || {}) });\n\n return;\n }\n if (typeof value === 'string' && this.validPattern() && this.validPattern()?.length && value && value.trim()) {\n for (const valid of this.validPattern() || []) {\n if (!valid.pattern) {\n continue;\n }\n const pattern = `${valid.pattern}`;\n const indexOfSlash = pattern.lastIndexOf('/');\n\n if (!indexOfSlash) {\n continue;\n }\n const patternStr = pattern.substring(1, indexOfSlash);\n const patternFlag = pattern.substring(indexOfSlash + 1, pattern.length);\n\n if (new RegExp(patternStr, patternFlag).test(value) === (valid.valuePatternShowError ?? this.valuePatternShowError)) {\n this.singleError.set({ message: (valid.message || ERROR_MESSAGE_PATTEN_VALID), interpolateParams: (valid.interpolateParams || {}) });\n return;\n }\n }\n }\n if (this.validMinValue() && typeof value === 'number' && typeof this.minValueNumber() === 'number' && value < (this.minValueNumber() || Number.MIN_SAFE_INTEGER)) {\n this.singleError.set({ message: (this.validMinValue()?.message || ERROR_MESSAGE_MIN_VALID), interpolateParams: (this.validMinValue()?.interpolateParams || { value: this.minValueNumber() }) });\n return;\n }\n\n if ((this.ignoreBlockInputMaxValue() || this.validMaxValue()?.message) && typeof value === 'number' && typeof this.maxValueNumber() === 'number' && value > (this.maxValueNumber() || Number.MAX_SAFE_INTEGER)) {\n this.singleError.set({ message: (this.validMaxValue()?.message || ERROR_MESSAGE_MAX_VALID), interpolateParams: (this.validMaxValue()?.interpolateParams || { value: this.maxValueNumber() }) });\n return;\n }\n\n if (this.dataType() === 'bigint' && typeof value === 'string') {\n const maxMinValue = BigInt(922) * BigInt(10) ** BigInt(18) / BigInt(100);\n const [int, decimal] = value.split('.');\n let valueDivided = BigInt(1);\n for (let index = 0; index < (decimal?.length || 0); index++) {\n valueDivided *= BigInt(10);\n }\n\n const valueCompare = BigInt(`${int}${decimal || ''}`) * (BigInt(10000) / valueDivided);\n\n if (valueCompare < -maxMinValue) {\n this.singleError.set({ message: (this.validMinValue()?.message || ERROR_MESSAGE_MIN_VALID), interpolateParams: (this.validMinValue()?.interpolateParams || { value: viewDataNumberByLanguage(`-${maxMinValue / BigInt(10000)}`, true, 4, true, true) }) });\n return;\n }\n\n if (valueCompare > maxMinValue) {\n this.singleError.set({ message: (this.validMaxValue()?.message || ERROR_MESSAGE_MAX_VALID), interpolateParams: (this.validMaxValue()?.interpolateParams || { value: viewDataNumberByLanguage(`${maxMinValue / BigInt(10000)}`, true, 4, true, true) }) });\n return;\n }\n }\n\n if (this.maxLength && typeof value === 'string' && (this.maxLength() || Number.MAX_SAFE_INTEGER) < value.length) {\n this.singleError.set({ message: (this.validMaxLength()?.message || ERROR_MESSAGE_MAX_LENGTH), interpolateParams: (this.validMaxLength()?.interpolateParams || { number: this.maxLength }) });\n\n return;\n }\n\n if (!this.functionValid()) {\n return;\n }\n\n const result: any = this.functionValid()?.(value);\n\n if (result && result.then) {\n this.singleError.set((await result));\n\n return;\n }\n this.singleError.set(result);\n }\n\n private async checkIsValid() {\n if (this.item() && (this.readonly() || this.disable())) {\n return true;\n }\n clearTimeout(this.timerValueChange());\n await this.validate(this.item()[this.fieldNameBind()]);\n\n return this.singleError().message ? false : true;\n }\n\n private async setMessageError(message: string) {\n this.singleError.update(obj => ({ ...obj, message }));\n }\n\n protected handlerControlFunctionInput(event: IInputFunctionControlEvent) {\n this.functionControlInput = event;\n }\n\n protected handlerFocusAndBlur(event: IFocusAndBlurEvent) {\n this.outFocusAndBlur.emit(event);\n }\n\n private getRectLeft() {\n if (!this.rectLeft() || this.positionMessageErrorStartInput()) {\n this.timer.set(setTimeout(() => {\n this.rectLeft.set(this.elementLeftRef()?.nativeElement.getBoundingClientRect());\n }));\n }\n }\n\n protected handlerChangeValueByButtonUpDown() {\n this.outChangeValueByButtonUpDown.emit();\n }\n\n ngOnDestroy() {\n clearTimeout(this.timer());\n clearTimeout(this.timerValueChange());\n }\n}\n","@if (fieldNameBind() && item(); as item) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [classInclude]=\"labelConfig.classInclude\"\n [labelLeft]=\"labelConfig.labelLeft\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [required]=\"labelConfig.required \"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"disable() || labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"disable() || labelConfig.disableButtonsRight\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"disable() || labelConfig.toggleDisable\"\n [popover]=\"labelConfig.popover\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [limitLength]=\"labelConfig.limitLength\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription || disable()\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [count]=\"item[fieldNameBind()]?.length\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outSwitchEvent)=\"handlerSwitchLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n\n <div [class]=\"'libs-ui-input-valid w-full ' + (classInclude() ?? '')\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (!ignoreContentLeft()) {\n <div #elementLeftRef\n class=\"libs-ui-input-valid-left\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @if (typeComponentSelectItem(); as typeComponentSelectItem) {\n <div class=\"mr-[8px]\">\n @if (typeComponentSelectItem ==='checkbox') {\n <libs_ui-components-checkbox-single [checked]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.checked)\" />\n }\n @if (typeComponentSelectItem ==='radio') {\n <libs_ui-components-radio-single [active]=\"valueComponentSelectItem() || false\"\n [disable]=\"disable() || disableComponentSelectItem() || false\"\n (outChange)=\"handlerSelect($event.active)\" />\n }\n </div>\n }\n\n <ng-content select=\".libs-ui-input-valid-left-content-custom\" />\n @for (unit of unitsLeft(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-left !rounded-tr-none !rounded-br-none libs-ui-font-h5r {{ configUnitLeft().classInclude || '' }}\"\n [class.!flex]=\"unit[configUnitLeft().fieldKey] === keySelectedUnitLeft()\"\n [class.libs-ui-readonly]=\"readonly() || false\"\n [class.libs-ui-disable]=\"disable() || false\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitLeft().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n </div>\n }\n <libs_ui-components-inputs-input [tagInput]=\"tagInput()\"\n [dataType]=\"dataType() || 'string'\"\n [class.w-full]=\"!ignoreWidthInput100()\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [textAreaEnterNotNewLine]=\"textAreaEnterNotNewLine() || false\"\n [classInclude]=\"(classIncludeInput() || '')+(unitsLeft() && unitsLeft()?.length ? ' !rounded-tl-none !rounded-bl-none':'')+(unitsRight()?.length ? ' !rounded-tr-none !rounded-br-none':'')\"\n [hiddenContent]=\"hiddenContent() || false\"\n [maxValueNumber]=\"maxValueNumber()\"\n [minValueNumber]=\"minValueNumber()\"\n [fixedFloat]=\"fixedFloat() ?? 1\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber()\"\n [maxLength]=\"maxLength()\"\n [showCount]=\"showCount()\"\n [readonly]=\"readonly()\"\n [disable]=\"disable()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [placeholder]=\"placeholder() || ''\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [maxHeightTextArea]=\"maxHeightTextArea() || 250\"\n [minHeightTextArea]=\"minHeightTextArea()\"\n [borderError]=\"borderError() || (!!singleError().message && !ignoreShowError())\"\n [iconLeftClass]=\"iconLeftClass()\"\n [popoverContentIconLeft]=\"popoverContentIconLeft()\"\n [popoverContentIconRight]=\"popoverContentIconRight()\"\n [iconRightClass]=\"iconRightClass()\"\n [zIndexPopoverContent]=\"zIndexPopoverContent()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [ignoreBlockInputMaxValue]=\"!!ignoreBlockInputMaxValue() ? ignoreBlockInputMaxValue() :(validMaxValue()?.message ? true : false)\"\n [value]=\"item[fieldNameBind()]\"\n [classContainerInput]=\"classContainerInput()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [resize]=\"resize()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [templateLeftBottomInput]=\"templateLeftBottomInput()\"\n [templateRightBottomInput]=\"templateRightBottomInput()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (valueChange)=\"handlerValueChange($event)\"\n (outEnterEvent)=\"handlerEnterInput($event)\"\n (outIconLeft)=\"handlerEventIconLeft($event)\"\n (outIconRight)=\"handlerEventIconRight($event)\"\n (outHeightAreaChange)=\"handlerHeightAreaChange($event)\"\n (outFunctionsControl)=\"handlerControlFunctionInput($event)\"\n (outFocusAndBlurEvent)=\"handlerFocusAndBlur($event)\"\n (outChangeValueByButtonUpDown)=\"handlerChangeValueByButtonUpDown()\" />\n @if (!ignoreContentRight()) {\n <div class=\"libs-ui-input-valid-right\"\n [class.items-baseline]=\"isBaselineStyle()\">\n @for (unit of unitsRight(); track unit) {\n <div\n class=\"libs-ui-input-valid-unit libs-ui-input-valid-unit-right !rounded-tl-none !rounded-bl-none libs-ui-font-h5r {{ configUnitRight().classInclude || 'libs-ui-border-general' }}\"\n [class.!flex]=\"unit[configUnitRight().fieldKey] === keySelectedUnitRight()\"\n [class.libs-ui-readonly]=\"!ignoreUnitRightClassReadOnly() && (readonly() || false)\">\n <libs_ui-components-popover type=\"text\"\n [config]=\"{maxWidth:250,direction:'bottom', zIndex: zIndexPopoverContent()}\"\n [innerHtml]=\"(unit[configUnitRight().fieldLabel || 'label']|| ' ') | translate\" />\n </div>\n }\n <ng-content select=\".libs-ui-input-valid-right-content-custom\"></ng-content>\n </div>\n }\n\n </div>\n @if (!!singleError().message && !ignoreShowError()) {\n <div class=\"libs-ui-input-valid-error {{ classMessageErrorInclude() || '' }}\">\n <span class=\"libs-ui-message-error libs-ui-font-h7r libs-ui-text-error\"\n [style.marginLeft.px]='rectLeft()?.width'\n [innerHtml]=\"(singleError().message || ' ')| translate:singleError().interpolateParams\">\n </span>\n </div>\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
1
  import { IInputFunctionControlEvent } from "@libs-ui/components-inputs-input";
2
2
  export interface IInputValidFunctionControlEvent extends IInputFunctionControlEvent {
3
3
  checkIsValid: () => Promise<boolean>;
4
- detectChanges: () => void;
5
- setMessageError: (message: string) => void;
6
- currentStateIsValid?: () => boolean | undefined;
4
+ setMessageError: (message: string) => Promise<void>;
5
+ currentStateIsValid?: () => Promise<boolean>;
7
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@libs-ui/components-inputs-valid",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0"
@@ -1,14 +1,13 @@
1
- import { ChangeDetectorRef, ElementRef, OnDestroy, OnInit, TemplateRef } from '@angular/core';
1
+ import { ElementRef, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
2
  import { IButton } from '@libs-ui/components-buttons-button';
3
- import { IToggleEvent } from '@libs-ui/components-buttons-toggle';
4
3
  import { IFocusAndBlurEvent, IInputFunctionControlEvent } from '@libs-ui/components-inputs-input';
5
4
  import { ILabel } from '@libs-ui/components-label';
5
+ import { ISwitchEvent } from '@libs-ui/components-switch';
6
6
  import { IBoundingClientRect, IEvent } from '@libs-ui/interfaces-types';
7
7
  import { IInputValidFunctionControlEvent } from './interfaces/function-control-event.interface';
8
8
  import { IInputValidUnitConfig, IValid, IValidLength, IValidPattern, IValidRequired, TYPE_FUNCTION_INPUT_VALID } from './interfaces/valid.interface';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class LibsUiComponentsInputsValidComponent implements OnInit, OnDestroy {
11
- private cdr;
12
11
  protected singleError: import("@angular/core").WritableSignal<IValid>;
13
12
  protected rectLeft: import("@angular/core").WritableSignal<IBoundingClientRect | undefined>;
14
13
  private timer;
@@ -91,7 +90,7 @@ export declare class LibsUiComponentsInputsValidComponent implements OnInit, OnD
91
90
  readonly outIconLeft: import("@angular/core").OutputEmitterRef<string>;
92
91
  readonly outIconRight: import("@angular/core").OutputEmitterRef<string>;
93
92
  readonly outClickButtonLabel: import("@angular/core").OutputEmitterRef<IButton>;
94
- readonly outToggleEventLabel: import("@angular/core").OutputEmitterRef<IToggleEvent>;
93
+ readonly outSwitchEventLabel: import("@angular/core").OutputEmitterRef<ISwitchEvent>;
95
94
  readonly outLabelRightClick: import("@angular/core").OutputEmitterRef<boolean>;
96
95
  readonly outEnterInputEvent: import("@angular/core").OutputEmitterRef<IEvent>;
97
96
  readonly outHeightAreaChange: import("@angular/core").OutputEmitterRef<{
@@ -101,17 +100,16 @@ export declare class LibsUiComponentsInputsValidComponent implements OnInit, OnD
101
100
  readonly outFocusAndBlur: import("@angular/core").OutputEmitterRef<IFocusAndBlurEvent>;
102
101
  readonly outChangeValueByButtonUpDown: import("@angular/core").OutputEmitterRef<void>;
103
102
  readonly elementLeftRef: import("@angular/core").Signal<ElementRef<any> | undefined>;
104
- constructor(cdr: ChangeDetectorRef);
103
+ constructor();
105
104
  ngOnInit(): void;
106
105
  private currentStateIsValid;
107
106
  private getElementValue;
108
- private detectChanges;
109
107
  protected handlerSelect(value: boolean): void;
110
108
  protected handlerValueChange(value: string | number): void;
111
109
  protected handlerEventIconLeft(eventName: string): void;
112
110
  protected handlerEventIconRight(eventName: string): void;
113
111
  protected handlerClickButtonLabel(button: IButton): void;
114
- protected handlerSwitchToggleLabel(toggleEvent: IToggleEvent): void;
112
+ protected handlerSwitchLabel(toggleEvent: ISwitchEvent): void;
115
113
  protected handlerEventLabelRightLabel(): void;
116
114
  protected handlerEnterInput(e: IEvent): void;
117
115
  protected handlerHeightAreaChange(event: {
@@ -126,5 +124,5 @@ export declare class LibsUiComponentsInputsValidComponent implements OnInit, OnD
126
124
  protected handlerChangeValueByButtonUpDown(): void;
127
125
  ngOnDestroy(): void;
128
126
  static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsInputsValidComponent, never>;
129
- static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsInputsValidComponent, "libs_ui-components-inputs-valid", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "labelConfig": { "alias": "labelConfig"; "required": false; "isSignal": true; }; "emitEmptyInDataTypeNumber": { "alias": "emitEmptyInDataTypeNumber"; "required": false; "isSignal": true; }; "ignoreBlockInputMaxValue": { "alias": "ignoreBlockInputMaxValue"; "required": false; "isSignal": true; }; "fieldNameBind": { "alias": "fieldNameBind"; "required": true; "isSignal": true; }; "showCount": { "alias": "showCount"; "required": false; "isSignal": true; }; "typeComponentSelectItem": { "alias": "typeComponentSelectItem"; "required": false; "isSignal": true; }; "valueComponentSelectItem": { "alias": "valueComponentSelectItem"; "required": false; "isSignal": true; }; "disableComponentSelectItem": { "alias": "disableComponentSelectItem"; "required": false; "isSignal": true; }; "tagInput": { "alias": "tagInput"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "resetAutoCompletePassword": { "alias": "resetAutoCompletePassword"; "required": false; "isSignal": true; }; "textAreaEnterNotNewLine": { "alias": "textAreaEnterNotNewLine"; "required": false; "isSignal": true; }; "hiddenContent": { "alias": "hiddenContent"; "required": false; "isSignal": true; }; "fixedFloat": { "alias": "fixedFloat"; "required": false; "isSignal": true; }; "acceptNegativeValue": { "alias": "acceptNegativeValue"; "required": false; "isSignal": true; }; "valueUpDownNumber": { "alias": "valueUpDownNumber"; "required": false; "isSignal": true; }; "ignoreWidthInput100": { "alias": "ignoreWidthInput100"; "required": false; "isSignal": true; }; "classIncludeInput": { "alias": "classIncludeInput"; "required": false; "isSignal": true; }; "classContainerInput": { "alias": "classContainerInput"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "noBorder": { "alias": "noBorder"; "required": false; "isSignal": true; }; "backgroundNone": { "alias": "backgroundNone"; "required": false; "isSignal": true; }; "useColorModeExist": { "alias": "useColorModeExist"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "keepPlaceholderOnly": { "alias": "keepPlaceholderOnly"; "required": false; "isSignal": true; }; "classContainerBottomInput": { "alias": "classContainerBottomInput"; "required": false; "isSignal": true; }; "autoRemoveEmoji": { "alias": "autoRemoveEmoji"; "required": false; "isSignal": true; }; "defaultHeight": { "alias": "defaultHeight"; "required": false; "isSignal": true; }; "maxHeightTextArea": { "alias": "maxHeightTextArea"; "required": false; "isSignal": true; }; "minHeightTextArea": { "alias": "minHeightTextArea"; "required": false; "isSignal": true; }; "ignoreShowError": { "alias": "ignoreShowError"; "required": false; "isSignal": true; }; "borderError": { "alias": "borderError"; "required": false; "isSignal": true; }; "iconLeftClass": { "alias": "iconLeftClass"; "required": false; "isSignal": true; }; "popoverContentIconLeft": { "alias": "popoverContentIconLeft"; "required": false; "isSignal": true; }; "iconRightClass": { "alias": "iconRightClass"; "required": false; "isSignal": true; }; "popoverContentIconRight": { "alias": "popoverContentIconRight"; "required": false; "isSignal": true; }; "zIndexPopoverContent": { "alias": "zIndexPopoverContent"; "required": false; "isSignal": true; }; "unitsLeft": { "alias": "unitsLeft"; "required": false; "isSignal": true; }; "configUnitLeft": { "alias": "configUnitLeft"; "required": false; "isSignal": true; }; "keySelectedUnitLeft": { "alias": "keySelectedUnitLeft"; "required": false; "isSignal": true; }; "unitsRight": { "alias": "unitsRight"; "required": false; "isSignal": true; }; "configUnitRight": { "alias": "configUnitRight"; "required": false; "isSignal": true; }; "keySelectedUnitRight": { "alias": "keySelectedUnitRight"; "required": false; "isSignal": true; }; "maxValueNumber": { "alias": "maxValueNumber"; "required": false; "isSignal": true; }; "minValueNumber": { "alias": "minValueNumber"; "required": false; "isSignal": true; }; "ignoreContentLeft": { "alias": "ignoreContentLeft"; "required": false; "isSignal": true; }; "ignoreContentRight": { "alias": "ignoreContentRight"; "required": false; "isSignal": true; }; "isBaselineStyle": { "alias": "isBaselineStyle"; "required": false; "isSignal": true; }; "valuePatternShowError": { "alias": "valuePatternShowError"; "required": false; "isSignal": true; }; "validPattern": { "alias": "validPattern"; "required": false; "isSignal": true; }; "validRequired": { "alias": "validRequired"; "required": false; "isSignal": true; }; "validMinLength": { "alias": "validMinLength"; "required": false; "isSignal": true; }; "validMinValue": { "alias": "validMinValue"; "required": false; "isSignal": true; }; "validMaxValue": { "alias": "validMaxValue"; "required": false; "isSignal": true; }; "validMaxLength": { "alias": "validMaxLength"; "required": false; "isSignal": true; }; "functionValid": { "alias": "functionValid"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "positionMessageErrorStartInput": { "alias": "positionMessageErrorStartInput"; "required": false; "isSignal": true; }; "classInclude": { "alias": "classInclude"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "templateLeftBottomInput": { "alias": "templateLeftBottomInput"; "required": false; "isSignal": true; }; "templateRightBottomInput": { "alias": "templateRightBottomInput"; "required": false; "isSignal": true; }; "onlyAcceptNegativeValue": { "alias": "onlyAcceptNegativeValue"; "required": false; "isSignal": true; }; "autoAddZeroLessThan10InTypeInt": { "alias": "autoAddZeroLessThan10InTypeInt"; "required": false; "isSignal": true; }; "maxLengthNumberCount": { "alias": "maxLengthNumberCount"; "required": false; "isSignal": true; }; "classMessageErrorInclude": { "alias": "classMessageErrorInclude"; "required": false; "isSignal": true; }; "ignoreStopPropagationEvent": { "alias": "ignoreStopPropagationEvent"; "required": false; "isSignal": true; }; "ignoreUnitRightClassReadOnly": { "alias": "ignoreUnitRightClassReadOnly"; "required": false; "isSignal": true; }; "paddingRightCustomSpecific": { "alias": "paddingRightCustomSpecific"; "required": false; "isSignal": true; }; "focusTimeOut": { "alias": "focusTimeOut"; "required": false; "isSignal": true; }; }, { "item": "itemChange"; "outValueChange": "outValueChange"; "outSelect": "outSelect"; "outIconLeft": "outIconLeft"; "outIconRight": "outIconRight"; "outClickButtonLabel": "outClickButtonLabel"; "outToggleEventLabel": "outToggleEventLabel"; "outLabelRightClick": "outLabelRightClick"; "outEnterInputEvent": "outEnterInputEvent"; "outHeightAreaChange": "outHeightAreaChange"; "outFunctionsControl": "outFunctionsControl"; "outFocusAndBlur": "outFocusAndBlur"; "outChangeValueByButtonUpDown": "outChangeValueByButtonUpDown"; }, never, [".libs-ui-input-valid-left-content-custom", ".libs-ui-input-valid-right-content-custom"], true, never>;
127
+ static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsInputsValidComponent, "libs_ui-components-inputs-valid", never, { "item": { "alias": "item"; "required": true; "isSignal": true; }; "labelConfig": { "alias": "labelConfig"; "required": false; "isSignal": true; }; "emitEmptyInDataTypeNumber": { "alias": "emitEmptyInDataTypeNumber"; "required": false; "isSignal": true; }; "ignoreBlockInputMaxValue": { "alias": "ignoreBlockInputMaxValue"; "required": false; "isSignal": true; }; "fieldNameBind": { "alias": "fieldNameBind"; "required": true; "isSignal": true; }; "showCount": { "alias": "showCount"; "required": false; "isSignal": true; }; "typeComponentSelectItem": { "alias": "typeComponentSelectItem"; "required": false; "isSignal": true; }; "valueComponentSelectItem": { "alias": "valueComponentSelectItem"; "required": false; "isSignal": true; }; "disableComponentSelectItem": { "alias": "disableComponentSelectItem"; "required": false; "isSignal": true; }; "tagInput": { "alias": "tagInput"; "required": false; "isSignal": true; }; "dataType": { "alias": "dataType"; "required": false; "isSignal": true; }; "resetAutoCompletePassword": { "alias": "resetAutoCompletePassword"; "required": false; "isSignal": true; }; "textAreaEnterNotNewLine": { "alias": "textAreaEnterNotNewLine"; "required": false; "isSignal": true; }; "hiddenContent": { "alias": "hiddenContent"; "required": false; "isSignal": true; }; "fixedFloat": { "alias": "fixedFloat"; "required": false; "isSignal": true; }; "acceptNegativeValue": { "alias": "acceptNegativeValue"; "required": false; "isSignal": true; }; "valueUpDownNumber": { "alias": "valueUpDownNumber"; "required": false; "isSignal": true; }; "ignoreWidthInput100": { "alias": "ignoreWidthInput100"; "required": false; "isSignal": true; }; "classIncludeInput": { "alias": "classIncludeInput"; "required": false; "isSignal": true; }; "classContainerInput": { "alias": "classContainerInput"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "disable": { "alias": "disable"; "required": false; "isSignal": true; }; "noBorder": { "alias": "noBorder"; "required": false; "isSignal": true; }; "backgroundNone": { "alias": "backgroundNone"; "required": false; "isSignal": true; }; "useColorModeExist": { "alias": "useColorModeExist"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "keepPlaceholderOnly": { "alias": "keepPlaceholderOnly"; "required": false; "isSignal": true; }; "classContainerBottomInput": { "alias": "classContainerBottomInput"; "required": false; "isSignal": true; }; "autoRemoveEmoji": { "alias": "autoRemoveEmoji"; "required": false; "isSignal": true; }; "defaultHeight": { "alias": "defaultHeight"; "required": false; "isSignal": true; }; "maxHeightTextArea": { "alias": "maxHeightTextArea"; "required": false; "isSignal": true; }; "minHeightTextArea": { "alias": "minHeightTextArea"; "required": false; "isSignal": true; }; "ignoreShowError": { "alias": "ignoreShowError"; "required": false; "isSignal": true; }; "borderError": { "alias": "borderError"; "required": false; "isSignal": true; }; "iconLeftClass": { "alias": "iconLeftClass"; "required": false; "isSignal": true; }; "popoverContentIconLeft": { "alias": "popoverContentIconLeft"; "required": false; "isSignal": true; }; "iconRightClass": { "alias": "iconRightClass"; "required": false; "isSignal": true; }; "popoverContentIconRight": { "alias": "popoverContentIconRight"; "required": false; "isSignal": true; }; "zIndexPopoverContent": { "alias": "zIndexPopoverContent"; "required": false; "isSignal": true; }; "unitsLeft": { "alias": "unitsLeft"; "required": false; "isSignal": true; }; "configUnitLeft": { "alias": "configUnitLeft"; "required": false; "isSignal": true; }; "keySelectedUnitLeft": { "alias": "keySelectedUnitLeft"; "required": false; "isSignal": true; }; "unitsRight": { "alias": "unitsRight"; "required": false; "isSignal": true; }; "configUnitRight": { "alias": "configUnitRight"; "required": false; "isSignal": true; }; "keySelectedUnitRight": { "alias": "keySelectedUnitRight"; "required": false; "isSignal": true; }; "maxValueNumber": { "alias": "maxValueNumber"; "required": false; "isSignal": true; }; "minValueNumber": { "alias": "minValueNumber"; "required": false; "isSignal": true; }; "ignoreContentLeft": { "alias": "ignoreContentLeft"; "required": false; "isSignal": true; }; "ignoreContentRight": { "alias": "ignoreContentRight"; "required": false; "isSignal": true; }; "isBaselineStyle": { "alias": "isBaselineStyle"; "required": false; "isSignal": true; }; "valuePatternShowError": { "alias": "valuePatternShowError"; "required": false; "isSignal": true; }; "validPattern": { "alias": "validPattern"; "required": false; "isSignal": true; }; "validRequired": { "alias": "validRequired"; "required": false; "isSignal": true; }; "validMinLength": { "alias": "validMinLength"; "required": false; "isSignal": true; }; "validMinValue": { "alias": "validMinValue"; "required": false; "isSignal": true; }; "validMaxValue": { "alias": "validMaxValue"; "required": false; "isSignal": true; }; "validMaxLength": { "alias": "validMaxLength"; "required": false; "isSignal": true; }; "functionValid": { "alias": "functionValid"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "positionMessageErrorStartInput": { "alias": "positionMessageErrorStartInput"; "required": false; "isSignal": true; }; "classInclude": { "alias": "classInclude"; "required": false; "isSignal": true; }; "resize": { "alias": "resize"; "required": false; "isSignal": true; }; "templateLeftBottomInput": { "alias": "templateLeftBottomInput"; "required": false; "isSignal": true; }; "templateRightBottomInput": { "alias": "templateRightBottomInput"; "required": false; "isSignal": true; }; "onlyAcceptNegativeValue": { "alias": "onlyAcceptNegativeValue"; "required": false; "isSignal": true; }; "autoAddZeroLessThan10InTypeInt": { "alias": "autoAddZeroLessThan10InTypeInt"; "required": false; "isSignal": true; }; "maxLengthNumberCount": { "alias": "maxLengthNumberCount"; "required": false; "isSignal": true; }; "classMessageErrorInclude": { "alias": "classMessageErrorInclude"; "required": false; "isSignal": true; }; "ignoreStopPropagationEvent": { "alias": "ignoreStopPropagationEvent"; "required": false; "isSignal": true; }; "ignoreUnitRightClassReadOnly": { "alias": "ignoreUnitRightClassReadOnly"; "required": false; "isSignal": true; }; "paddingRightCustomSpecific": { "alias": "paddingRightCustomSpecific"; "required": false; "isSignal": true; }; "focusTimeOut": { "alias": "focusTimeOut"; "required": false; "isSignal": true; }; }, { "item": "itemChange"; "outValueChange": "outValueChange"; "outSelect": "outSelect"; "outIconLeft": "outIconLeft"; "outIconRight": "outIconRight"; "outClickButtonLabel": "outClickButtonLabel"; "outSwitchEventLabel": "outSwitchEventLabel"; "outLabelRightClick": "outLabelRightClick"; "outEnterInputEvent": "outEnterInputEvent"; "outHeightAreaChange": "outHeightAreaChange"; "outFunctionsControl": "outFunctionsControl"; "outFocusAndBlur": "outFocusAndBlur"; "outChangeValueByButtonUpDown": "outChangeValueByButtonUpDown"; }, never, [".libs-ui-input-valid-left-content-custom", ".libs-ui-input-valid-right-content-custom"], true, never>;
130
128
  }