appproject-components 1.0.16 → 1.0.18

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,4 +1,4 @@
1
- import { Component, Input } from '@angular/core';
1
+ import { Component, ElementRef, Input, ViewChild } from '@angular/core';
2
2
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
3
  import { BaseInputComponent } from '../baseInputComponent';
4
4
  import * as i0 from "@angular/core";
@@ -19,8 +19,9 @@ export class InputAreaComponent extends BaseInputComponent {
19
19
  setDisabledState(isDisabled) {
20
20
  this.disabled = this.disabled;
21
21
  }
22
- constructor() {
22
+ constructor(renderer) {
23
23
  super();
24
+ this.renderer = renderer;
24
25
  this.linhas = 5;
25
26
  this.onChange = (data) => { };
26
27
  this.onTouch = () => { };
@@ -29,16 +30,31 @@ export class InputAreaComponent extends BaseInputComponent {
29
30
  }
30
31
  ngOnInit() { }
31
32
  onBlur() {
33
+ //remover classe do ion-item
34
+ setTimeout(() => {
35
+ //this.renderer.addClass(document.getElementById("item-select"), "item-has-focus");
36
+ this.renderer.removeClass(this.itemArea.nativeElement, "item-has-focus");
37
+ //console.log('select focused', document.getElementById("item-select"));
38
+ }, 200);
32
39
  if (this.form) {
33
40
  this.form.get(this.formControlName)?.markAsTouched();
34
41
  }
35
42
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
43
+ entered() {
44
+ //adicionar classe ao ion-item
45
+ // console.log('select focused');
46
+ setTimeout(() => {
47
+ //this.renderer.addClass(document.getElementById("item-select"), "item-has-focus");
48
+ this.renderer.addClass(this.itemArea.nativeElement, "item-has-focus");
49
+ //console.log('select focused', document.getElementById("item-select"));
50
+ }, 200);
51
+ }
52
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputAreaComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
37
53
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: InputAreaComponent, selector: "kb-input-area", inputs: { linhas: "linhas" }, providers: [{
38
54
  provide: NG_VALUE_ACCESSOR,
39
55
  useExisting: InputAreaComponent,
40
56
  multi: true
41
- }], usesInheritance: true, ngImport: i0, template: "<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\">\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <ion-textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n maxlength=\"{{ max }}\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"></ion-textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>", styles: ["ion-label{margin-bottom:4px!important}ion-textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] }); }
57
+ }], viewQueries: [{ propertyName: "itemArea", first: true, predicate: ["itemArea"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<!-- \r\n maxlength=\"{{ max }}\"\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\" #itemArea>\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n [maxLength]=\"max\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"\r\n (focus)=\"entered()\"\r\n ></textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>", styles: ["@charset \"UTF-8\";ion-label{margin-bottom:4px!important}ion-textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;resize:none}textarea::-webkit-scrollbar{width:10px;height:10px}textarea::-webkit-scrollbar-track{background:#f1f1f1}textarea::-webkit-scrollbar-thumb{border-radius:12px;background:var(--scroll-color-thumb, #808080)}textarea::-webkit-scrollbar-thumb:hover{background:var(--scroll-color-hover, #5c5c5c)}textarea:focus{outline:none!important;border:1px solid lightblue!important}textarea:focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
42
58
  }
43
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputAreaComponent, decorators: [{
44
60
  type: Component,
@@ -46,8 +62,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
46
62
  provide: NG_VALUE_ACCESSOR,
47
63
  useExisting: InputAreaComponent,
48
64
  multi: true
49
- }], template: "<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\">\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <ion-textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n maxlength=\"{{ max }}\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"></ion-textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>", styles: ["ion-label{margin-bottom:4px!important}ion-textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
50
- }], ctorParameters: () => [], propDecorators: { linhas: [{
65
+ }], template: "<!-- \r\n maxlength=\"{{ max }}\"\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\" #itemArea>\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n [maxLength]=\"max\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"\r\n (focus)=\"entered()\"\r\n ></textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>", styles: ["@charset \"UTF-8\";ion-label{margin-bottom:4px!important}ion-textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;resize:none}textarea::-webkit-scrollbar{width:10px;height:10px}textarea::-webkit-scrollbar-track{background:#f1f1f1}textarea::-webkit-scrollbar-thumb{border-radius:12px;background:var(--scroll-color-thumb, #808080)}textarea::-webkit-scrollbar-thumb:hover{background:var(--scroll-color-hover, #5c5c5c)}textarea:focus{outline:none!important;border:1px solid lightblue!important}textarea:focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
66
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { linhas: [{
51
67
  type: Input
68
+ }], itemArea: [{
69
+ type: ViewChild,
70
+ args: ["itemArea", { read: ElementRef }]
52
71
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBwcm9qZWN0LWNvbXBvbmVudHMvc3JjL2xpYi9pbnB1dC1hcmVhL2lucHV0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtYXJlYS9pbnB1dC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQVkzRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsa0JBQWtCO0lBVXhELFVBQVUsQ0FBQyxLQUFtQjtRQUM1QixvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFDRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBeEJELFdBQU0sR0FBVyxDQUFDLENBQUM7UUFJcEIsYUFBUSxHQUFhLENBQUMsSUFBWSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUMsWUFBTyxHQUFhLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxPQUFPLENBQUM7SUFrQnpCLENBQUM7SUFFUSxRQUFRLEtBQUksQ0FBQztJQUV0QixNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO1NBQ3REO0lBQ0gsQ0FBQzs4R0FsQ1Usa0JBQWtCO2tHQUFsQixrQkFBa0Isc0VBTmxCLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLGtCQUFrQjtnQkFDL0IsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLGlEQ1pKLG1oQ0F3QlE7OzJGRFZLLGtCQUFrQjtrQkFWOUIsU0FBUzsrQkFDRSxlQUFlLGFBR2QsQ0FBQzs0QkFDVixPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLG9CQUFvQjs0QkFDL0IsS0FBSyxFQUFFLElBQUk7eUJBQ1osQ0FBQzt3REFHTyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2VJbnB1dENvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tiLWlucHV0LWFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2lucHV0LWFyZWEuY29tcG9uZW50LnNjc3MnLCAnLi8uLi9iYXNlQ29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBJbnB1dEFyZWFDb21wb25lbnQsXG4gICAgbXVsdGk6IHRydWVcbiAgfV1cbn0pXG5leHBvcnQgY2xhc3MgSW5wdXRBcmVhQ29tcG9uZW50IGV4dGVuZHMgQmFzZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBJbnB1dCgpIGxpbmhhczogbnVtYmVyID0gNTtcbiAgXG4gIC8vY29udHJvbCB2YWx1ZSBhY2Vzc29yXG4gIHB1YmxpYyBkYXRhOiBzdHJpbmcgfCBhbnk7XG4gIHByaXZhdGUgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKGRhdGE6IHN0cmluZykgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaDogRnVuY3Rpb24gPSAoKSA9PiB7fTtcbiAgcHJpdmF0ZSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY29uc29sZSA9IGNvbnNvbGU7XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgYW55KTogdm9pZCB7XG4gICAgLy9jb25zb2xlLmxvZygnd3JpdGUgdmFsdWUnLCB2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy5kYXRhID0gdmFsdWU7XG4gIH1cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQ7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7IFxuICAgIHN1cGVyKCk7XG4gIH1cblxuICBvdmVycmlkZSBuZ09uSW5pdCgpIHt9XG5cbiAgb25CbHVyKCkge1xuICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5mb3JtQ29udHJvbE5hbWUpPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2PlxyXG4gICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIHN0eWxlPVwiLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6IHRyYW5zcGFyZW50O1wiIFtjbGFzc109XCJpdGVtQ2xhc3NcIj5cclxuICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cInt7IGxhYmVsUG9zaXRpb24gfX1cIj57eyBsYWJlbCB9fTwvaW9uLWxhYmVsPlxyXG4gICAgICA8IS0tIGZvcm1Db250cm9sTmFtZT1cInt7IGZvcm1Db250cm9sTmFtZSB9fVwiICAtLT5cclxuICAgICAgPGlvbi10ZXh0YXJlYSAjaW5wdXRBcmVhICAgICAgICBcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiAgICAgICBcclxuICAgICAgICBtYXhsZW5ndGg9XCJ7eyBtYXggfX1cIlxyXG4gICAgICAgIChpb25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgICBbdmFsdWVdPVwiZGF0YVwiXHJcbiAgICAgICAgW3Jvd3NdPVwibGluaGFzXCIgICAgICBcclxuICAgICAgICAoaW5wdXQpPVwid3JpdGVWYWx1ZShpbnB1dEFyZWEudmFsdWUpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwicmVhZG9ubHlcIj48L2lvbi10ZXh0YXJlYT5cclxuICAgIDwvaW9uLWl0ZW0+XHJcbiAgXHJcbiAgICA8ZGl2IGNsYXNzPVwidmFsaWRhdGlvbi1lcnJvcnNcIiAqbmdJZj1cImZvcm1cIj5cclxuICBcclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9uX21lc3NhZ2VzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIlxyXG4gICAgICAgICAgKm5nSWY9XCJmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy5oYXNFcnJvcih2YWxpZGF0aW9uLnR5cGUpICYmIChmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy5kaXJ0eSB8fCBmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgJiM4MjI2OyB7eyB2YWxpZGF0aW9uLm1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgXHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBwcm9qZWN0LWNvbXBvbmVudHMvc3JjL2xpYi9pbnB1dC1hcmVhL2lucHV0LWFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtYXJlYS9pbnB1dC1hcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQVkzRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsa0JBQWtCO0lBV3hELFVBQVUsQ0FBQyxLQUFtQjtRQUM1QixvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxZQUFvQixRQUFtQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF4QjlCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFLcEIsYUFBUSxHQUFhLENBQUMsSUFBWSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUMsWUFBTyxHQUFhLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM3QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzNCLFlBQU8sR0FBRyxPQUFPLENBQUM7SUFrQnpCLENBQUM7SUFFUSxRQUFRLEtBQUksQ0FBQztJQUV0QixNQUFNO1FBQ0osNEJBQTRCO1FBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxtRkFBbUY7WUFDbkYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUN6RSx3RUFBd0U7UUFDMUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRVIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxDQUFDO1NBQ3REO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCw4QkFBOEI7UUFDOUIsaUNBQWlDO1FBQ2pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxtRkFBbUY7WUFDbkYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUN0RSx3RUFBd0U7UUFDMUUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRVYsQ0FBQzs4R0FyRFUsa0JBQWtCO2tHQUFsQixrQkFBa0Isc0VBTmxCLENBQUM7Z0JBQ1YsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLGtCQUFrQjtnQkFDL0IsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDLDJHQUs0QixVQUFVLG9EQ2pCMUMsMm1DQTZCUTs7MkZEZkssa0JBQWtCO2tCQVY5QixTQUFTOytCQUNFLGVBQWUsYUFHZCxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsb0JBQW9COzRCQUMvQixLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDOzhFQUdPLE1BQU07c0JBQWQsS0FBSztnQkFFcUMsUUFBUTtzQkFBbEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZUlucHV0Q29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2ItaW5wdXQtYXJlYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtYXJlYS5jb21wb25lbnQuc2NzcycsICcuLy4uL2Jhc2VDb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IElucHV0QXJlYUNvbXBvbmVudCxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEFyZWFDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgbGluaGFzOiBudW1iZXIgPSA1O1xuICBcbiAgQFZpZXdDaGlsZChcIml0ZW1BcmVhXCIsIHtyZWFkOiBFbGVtZW50UmVmfSkgaXRlbUFyZWE6IGFueTtcbiAgLy9jb250cm9sIHZhbHVlIGFjZXNzb3JcbiAgcHVibGljIGRhdGE6IHN0cmluZyB8IGFueTtcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAoZGF0YTogc3RyaW5nKSA9PiB7fTtcbiAgcHJpdmF0ZSBvblRvdWNoOiBGdW5jdGlvbiA9ICgpID0+IHt9O1xuICBwcml2YXRlIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHB1YmxpYyBjb25zb2xlID0gY29uc29sZTtcblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBhbnkpOiB2b2lkIHtcbiAgICAvL2NvbnNvbGUubG9nKCd3cml0ZSB2YWx1ZScsIHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB0aGlzLmRhdGEgPSB2YWx1ZTtcbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZDtcbiAgfVxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgXG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge31cblxuICBvbkJsdXIoKSB7XG4gICAgLy9yZW1vdmVyIGNsYXNzZSBkbyBpb24taXRlbVxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgLy90aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiaXRlbS1zZWxlY3RcIiksIFwiaXRlbS1oYXMtZm9jdXNcIik7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaXRlbUFyZWEubmF0aXZlRWxlbWVudCwgXCJpdGVtLWhhcy1mb2N1c1wiKTtcbiAgICAgIC8vY29uc29sZS5sb2coJ3NlbGVjdCBmb2N1c2VkJywgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJpdGVtLXNlbGVjdFwiKSk7XG4gICAgfSwgMjAwKTtcbiAgICBcbiAgICBpZiAodGhpcy5mb3JtKSB7XG4gICAgICB0aGlzLmZvcm0uZ2V0KHRoaXMuZm9ybUNvbnRyb2xOYW1lKT8ubWFya0FzVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGVudGVyZWQoKSB7XG4gICAgLy9hZGljaW9uYXIgY2xhc3NlIGFvIGlvbi1pdGVtXG4gICAgLy8gY29uc29sZS5sb2coJ3NlbGVjdCBmb2N1c2VkJyk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvL3RoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJpdGVtLXNlbGVjdFwiKSwgXCJpdGVtLWhhcy1mb2N1c1wiKTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5pdGVtQXJlYS5uYXRpdmVFbGVtZW50LCBcIml0ZW0taGFzLWZvY3VzXCIpO1xuICAgICAgLy9jb25zb2xlLmxvZygnc2VsZWN0IGZvY3VzZWQnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIml0ZW0tc2VsZWN0XCIpKTtcbiAgICB9LCAyMDApO1xuICAgIFxuICB9XG59XG4iLCI8IS0tIFxyXG4gIG1heGxlbmd0aD1cInt7IG1heCB9fVwiXHJcbi0tPlxyXG48ZGl2PlxyXG4gICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIHN0eWxlPVwiLS1iYWNrZ3JvdW5kLWZvY3VzZWQ6IHRyYW5zcGFyZW50O1wiIFtjbGFzc109XCJpdGVtQ2xhc3NcIiAjaXRlbUFyZWE+XHJcbiAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJ7eyBsYWJlbFBvc2l0aW9uIH19XCI+e3sgbGFiZWwgfX08L2lvbi1sYWJlbD5cclxuICAgICAgPCEtLSBmb3JtQ29udHJvbE5hbWU9XCJ7eyBmb3JtQ29udHJvbE5hbWUgfX1cIiAgLS0+XHJcbiAgICAgIDx0ZXh0YXJlYSAjaW5wdXRBcmVhICAgICAgICBcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiAgICAgICBcclxuICAgICAgICBbbWF4TGVuZ3RoXT1cIm1heFwiXHJcbiAgICAgICAgKGlvbkJsdXIpPVwib25CbHVyKClcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJkYXRhXCJcclxuICAgICAgICBbcm93c109XCJsaW5oYXNcIiAgICAgIFxyXG4gICAgICAgIChpbnB1dCk9XCJ3cml0ZVZhbHVlKGlucHV0QXJlYS52YWx1ZSlcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seVwiXHJcbiAgICAgICAgKGZvY3VzKT1cImVudGVyZWQoKVwiXHJcbiAgICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICA8L2lvbi1pdGVtPlxyXG4gIFxyXG4gICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JzXCIgKm5nSWY9XCJmb3JtXCI+XHJcbiAgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbl9tZXNzYWdlc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uaGFzRXJyb3IodmFsaWRhdGlvbi50eXBlKSAmJiAoZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uZGlydHkgfHwgZm9ybS5nZXQoZm9ybUNvbnRyb2xOYW1lKT8udG91Y2hlZClcIj5cclxuICAgICAgICAgICYjODIyNjsge3sgdmFsaWRhdGlvbi5tZXNzYWdlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gIFxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+Il19
@@ -70,7 +70,7 @@ export class InputSelectComponent extends BaseInputComponent {
70
70
  provide: NG_VALUE_ACCESSOR,
71
71
  useExisting: InputSelectComponent,
72
72
  multi: true
73
- }], viewQueries: [{ propertyName: "itemSelect", first: true, predicate: ["itemSelect"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\"\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] }); }
73
+ }], viewQueries: [{ propertyName: "itemSelect", first: true, predicate: ["itemSelect"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\" #itemSelect\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{outline:none!important;border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] }); }
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputSelectComponent, decorators: [{
76
76
  type: Component,
@@ -78,7 +78,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
78
78
  provide: NG_VALUE_ACCESSOR,
79
79
  useExisting: InputSelectComponent,
80
80
  multi: true
81
- }], template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\"\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
81
+ }], template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\" #itemSelect\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{outline:none!important;border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
82
82
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { selectChange: [{
83
83
  type: Output
84
84
  }], selectChangeEntity: [{
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
99
99
  type: ViewChild,
100
100
  args: ["itemSelect", { read: ElementRef }]
101
101
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVkzRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBb0IxRCxVQUFVLENBQUMsS0FBYTtRQUN0QiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFvQixRQUFtQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEs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LEVBQUUsVUFBVSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlSW5wdXRDb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrYi1pbnB1dC1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXNlbGVjdC5jb21wb25lbnQuc2NzcycsICcuLy4uL2Jhc2VDb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IElucHV0U2VsZWN0Q29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHsgIFxyXG4gIEBPdXRwdXQoKSBzZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdENoYW5nZUVudGl0eSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBpdGVuczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpdGVtSWQ6IHN0cmluZyA9IFwiSWRcIjtcclxuICBASW5wdXQoKSBpdGVtTm9tZTogc3RyaW5nID0gXCJOb21lXCI7XHJcbiAgQElucHV0KCkgc2hvd05vdm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpdGVtTnVsbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgb3BjYW9EZWZhdWx0OiBzdHJpbmcgPSAnU2VsZWNpb25hcic7XHJcblxyXG4gIC8vcGFyYSAnaW5qZcOnw6NvJyBkZSBlc3RpbG8gbm8gZm9jb1xyXG4gIEBWaWV3Q2hpbGQoXCJpdGVtU2VsZWN0XCIsIHtyZWFkOiBFbGVtZW50UmVmfSkgaXRlbVNlbGVjdDogYW55O1xyXG5cclxuICAvL2NvbnRyb2wgdmFsdWUgYWNlc3NvclxyXG4gIHB1YmxpYyBkYXRhOiBzdHJpbmcgfCBhbnk7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAoZGF0YTogc3RyaW5nKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2g6IEZ1bmN0aW9uID0gKCkgPT4ge307XHJcbiAgcHJpdmF0ZSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjb25zb2xlID0gY29uc29sZTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCd3cml0ZSB2YWx1ZSBzZWxlY3QnLCB2YWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIHRoaXMuZGF0YSA9IHZhbHVlO1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IFxyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBvblNlbGVjdENoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0Q2hhbmdlICE9IG51bGwpIHtcclxuICAgICAgLy9jb25zb2xlLmxvZygnZW1pdCcsIHZhbHVlKTtcclxuICAgICAgdGhpcy5zZWxlY3RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RDaGFuZ2VFbnRpdHkgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBleGlzdGUgPSB0aGlzLml0ZW5zLmZpbmQoaSA9PiBpW3RoaXMuaXRlbUlkXSA9PSB2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0Q2hhbmdlRW50aXR5LmVtaXQoZXhpc3RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQmx1cigpIHtcclxuICAgIC8vY29uc29sZS5sb2coJ2lucHV0IHNlbGVjdCBibHVyJylcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaXRlbVNlbGVjdC5uYXRpdmVFbGVtZW50LCBcIml0ZW0taGFzLWZvY3VzXCIpO1xyXG4gICAgfSwgMjAwKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5mb3JtQ29udHJvbE5hbWUpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKCkge1xyXG4gICAgLy9hZGljaW9uYXIgY2xhc3NlIGFvIGlvbi1pdGVtXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLml0ZW1TZWxlY3QubmF0aXZlRWxlbWVudCwgXCJpdGVtLWhhcy1mb2N1c1wiKTtcclxuICAgICAgLy9jb25zb2xlLmxvZygnc2VsZWN0IGZvY3VzZWQnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIml0ZW0tc2VsZWN0XCIpKTtcclxuICAgIH0sIDIwMCk7ICAgIFxyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLVxyXG48ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4tLT5cclxuPGRpdj5cclxuICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiBzdHlsZT1cIi0tYmFja2dyb3VuZDogaW5oZXJpdGVkOyAtLWJhY2tncm91bmQtZm9jdXNlZDogdHJhbnNwYXJlbnQ7XCIgW2NsYXNzXT1cIml0ZW1DbGFzc1wiXHJcbiAgICBbbmdDbGFzc109XCJmb3JtPy5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uZXJyb3JzICYmIChmb3JtPy5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uZGlydHkgfHwgZm9ybT8uZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWQpID8gJ2Vycm9yLXNoYWtlJyA6ICcnIFwiXHJcbiAgICA+XHJcbiAgICAgIDxpb24tbGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtwb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uXCIgY2xhc3M9XCJmb2N1cy1sYWJlbFwiPnt7IGxhYmVsIH19PC9pb24tbGFiZWw+XHJcbiAgICAgIDwhLS0gZm9ybUNvbnRyb2xOYW1lPVwie3sgZm9ybUNvbnRyb2xOYW1lIH19XCIgIC0tPlxyXG4gICAgICA8c2VsZWN0ICNpbnB1dFNlbGVjdFxyXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgKGNoYW5nZSk9XCJvblNlbGVjdENoYW5nZShpbnB1dFNlbGVjdC52YWx1ZSlcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgKGZvY3VzKT1cIm9uRW50ZXIoKVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPlxyXG4gICAgICAgIDxvcHRpb24gKm5nSWY9XCJpdGVtTnVsbFwiIFt2YWx1ZV09XCInJ1wiIHNlbGVjdGVkPnt7IG9wY2FvRGVmYXVsdCB9fTwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbnNcIiBbdmFsdWVdPVwiaXRlbVtpdGVtSWRdXCIgW3NlbGVjdGVkXT1cIml0ZW1baXRlbUlkXSA9PSBkYXRhXCI+e3sgaXRlbVtpdGVtTm9tZV0gfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+ICAgIFxyXG4gICAgPC9pb24taXRlbT5cclxuICBcclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JzXCIgKm5nSWY9XCJmb3JtXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbl9tZXNzYWdlc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZm9ybSAmJiBmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy5oYXNFcnJvcih2YWxpZGF0aW9uLnR5cGUpICYmIChmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgJiM4MjI2OyB7eyB2YWxpZGF0aW9uLm1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gIDwvZGl2PiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2lucHV0LXNlbGVjdC9pbnB1dC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvaW5wdXQtc2VsZWN0L2lucHV0LXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVkzRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsa0JBQWtCO0lBb0IxRCxVQUFVLENBQUMsS0FBYTtRQUN0QiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUUsVUFBbUI7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxZQUFvQixRQUFtQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEs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LEVBQUUsVUFBVSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlSW5wdXRDb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrYi1pbnB1dC1zZWxlY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2lucHV0LXNlbGVjdC5jb21wb25lbnQuc2NzcycsICcuLy4uL2Jhc2VDb21wb25lbnQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IElucHV0U2VsZWN0Q29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWVcclxuICB9XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHsgIFxyXG4gIEBPdXRwdXQoKSBzZWxlY3RDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdENoYW5nZUVudGl0eSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBASW5wdXQoKSBpdGVuczogYW55W10gPSBbXTtcclxuICBASW5wdXQoKSBpdGVtSWQ6IHN0cmluZyA9IFwiSWRcIjtcclxuICBASW5wdXQoKSBpdGVtTm9tZTogc3RyaW5nID0gXCJOb21lXCI7XHJcbiAgQElucHV0KCkgc2hvd05vdm86IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBpdGVtTnVsbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgb3BjYW9EZWZhdWx0OiBzdHJpbmcgPSAnU2VsZWNpb25hcic7XHJcblxyXG4gIC8vcGFyYSAnaW5qZcOnw6NvJyBkZSBlc3RpbG8gbm8gZm9jb1xyXG4gIEBWaWV3Q2hpbGQoXCJpdGVtU2VsZWN0XCIsIHtyZWFkOiBFbGVtZW50UmVmfSkgaXRlbVNlbGVjdDogYW55O1xyXG5cclxuICAvL2NvbnRyb2wgdmFsdWUgYWNlc3NvclxyXG4gIHB1YmxpYyBkYXRhOiBzdHJpbmcgfCBhbnk7XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAoZGF0YTogc3RyaW5nKSA9PiB7fTtcclxuICBwcml2YXRlIG9uVG91Y2g6IEZ1bmN0aW9uID0gKCkgPT4ge307XHJcbiAgcHJpdmF0ZSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBjb25zb2xlID0gY29uc29sZTtcclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvL2NvbnNvbGUubG9nKCd3cml0ZSB2YWx1ZSBzZWxlY3QnLCB2YWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIHRoaXMuZGF0YSA9IHZhbHVlO1xyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7IFxyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlIG5nT25Jbml0KCkge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBvblNlbGVjdENoYW5nZSh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLndyaXRlVmFsdWUodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0Q2hhbmdlICE9IG51bGwpIHtcclxuICAgICAgLy9jb25zb2xlLmxvZygnZW1pdCcsIHZhbHVlKTtcclxuICAgICAgdGhpcy5zZWxlY3RDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zZWxlY3RDaGFuZ2VFbnRpdHkgIT0gbnVsbCkge1xyXG4gICAgICBjb25zdCBleGlzdGUgPSB0aGlzLml0ZW5zLmZpbmQoaSA9PiBpW3RoaXMuaXRlbUlkXSA9PSB2YWx1ZSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0Q2hhbmdlRW50aXR5LmVtaXQoZXhpc3RlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uQmx1cigpIHtcclxuICAgIC8vY29uc29sZS5sb2coJ2lucHV0IHNlbGVjdCBibHVyJylcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaXRlbVNlbGVjdC5uYXRpdmVFbGVtZW50LCBcIml0ZW0taGFzLWZvY3VzXCIpO1xyXG4gICAgfSwgMjAwKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtKSB7XHJcbiAgICAgIHRoaXMuZm9ybS5nZXQodGhpcy5mb3JtQ29udHJvbE5hbWUpPy5tYXJrQXNUb3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkVudGVyKCkge1xyXG4gICAgLy9hZGljaW9uYXIgY2xhc3NlIGFvIGlvbi1pdGVtXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLml0ZW1TZWxlY3QubmF0aXZlRWxlbWVudCwgXCJpdGVtLWhhcy1mb2N1c1wiKTtcclxuICAgICAgLy9jb25zb2xlLmxvZygnc2VsZWN0IGZvY3VzZWQnLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIml0ZW0tc2VsZWN0XCIpKTtcclxuICAgIH0sIDIwMCk7ICAgIFxyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLVxyXG48ZGl2IFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4tLT5cclxuPGRpdj5cclxuICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIiBzdHlsZT1cIi0tYmFja2dyb3VuZDogaW5oZXJpdGVkOyAtLWJhY2tncm91bmQtZm9jdXNlZDogdHJhbnNwYXJlbnQ7XCIgW2NsYXNzXT1cIml0ZW1DbGFzc1wiICNpdGVtU2VsZWN0XHJcbiAgICBbbmdDbGFzc109XCJmb3JtPy5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uZXJyb3JzICYmIChmb3JtPy5nZXQoZm9ybUNvbnRyb2xOYW1lKT8uZGlydHkgfHwgZm9ybT8uZ2V0KGZvcm1Db250cm9sTmFtZSk/LnRvdWNoZWQpID8gJ2Vycm9yLXNoYWtlJyA6ICcnIFwiXHJcbiAgICA+XHJcbiAgICAgIDxpb24tbGFiZWwgKm5nSWY9XCJsYWJlbFwiIFtwb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uXCIgY2xhc3M9XCJmb2N1cy1sYWJlbFwiPnt7IGxhYmVsIH19PC9pb24tbGFiZWw+XHJcbiAgICAgIDwhLS0gZm9ybUNvbnRyb2xOYW1lPVwie3sgZm9ybUNvbnRyb2xOYW1lIH19XCIgIC0tPlxyXG4gICAgICA8c2VsZWN0ICNpbnB1dFNlbGVjdFxyXG4gICAgICAgIHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgKGNoYW5nZSk9XCJvblNlbGVjdENoYW5nZShpbnB1dFNlbGVjdC52YWx1ZSlcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCIgKGZvY3VzKT1cIm9uRW50ZXIoKVwiIFtkaXNhYmxlZF09XCJyZWFkb25seVwiPlxyXG4gICAgICAgIDxvcHRpb24gKm5nSWY9XCJpdGVtTnVsbFwiIFt2YWx1ZV09XCInJ1wiIHNlbGVjdGVkPnt7IG9wY2FvRGVmYXVsdCB9fTwvb3B0aW9uPlxyXG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbnNcIiBbdmFsdWVdPVwiaXRlbVtpdGVtSWRdXCIgW3NlbGVjdGVkXT1cIml0ZW1baXRlbUlkXSA9PSBkYXRhXCI+e3sgaXRlbVtpdGVtTm9tZV0gfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+ICAgIFxyXG4gICAgPC9pb24taXRlbT5cclxuICBcclxuICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cInZhbGlkYXRpb24tZXJyb3JzXCIgKm5nSWY9XCJmb3JtXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHZhbGlkYXRpb24gb2YgdmFsaWRhdGlvbl9tZXNzYWdlc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCJcclxuICAgICAgICAgICpuZ0lmPVwiZm9ybSAmJiBmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy5oYXNFcnJvcih2YWxpZGF0aW9uLnR5cGUpICYmIChmb3JtLmdldChmb3JtQ29udHJvbE5hbWUpPy50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgJiM4MjI2OyB7eyB2YWxpZGF0aW9uLm1lc3NhZ2UgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIFxyXG4gIDwvZGl2PiJdfQ==
@@ -374,7 +374,7 @@ class InputSelectComponent extends BaseInputComponent {
374
374
  provide: NG_VALUE_ACCESSOR,
375
375
  useExisting: InputSelectComponent,
376
376
  multi: true
377
- }], viewQueries: [{ propertyName: "itemSelect", first: true, predicate: ["itemSelect"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\"\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] }); }
377
+ }], viewQueries: [{ propertyName: "itemSelect", first: true, predicate: ["itemSelect"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\" #itemSelect\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{outline:none!important;border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] }); }
378
378
  }
379
379
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputSelectComponent, decorators: [{
380
380
  type: Component,
@@ -382,7 +382,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
382
382
  provide: NG_VALUE_ACCESSOR,
383
383
  useExisting: InputSelectComponent,
384
384
  multi: true
385
- }], template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\"\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
385
+ }], template: "<!--\r\n<div [formGroup]=\"form\">\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background: inherited; --background-focused: transparent;\" [class]=\"itemClass\" #itemSelect\r\n [ngClass]=\"form?.get(formControlName)?.errors && (form?.get(formControlName)?.dirty || form?.get(formControlName)?.touched) ? 'error-shake' : '' \"\r\n >\r\n <ion-label *ngIf=\"label\" [position]=\"labelPosition\" class=\"focus-label\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <select #inputSelect\r\n style=\"width: 100%;\" (change)=\"onSelectChange(inputSelect.value)\"\r\n (blur)=\"onBlur()\" (focus)=\"onEnter()\" [disabled]=\"readonly\">\r\n <option *ngIf=\"itemNull\" [value]=\"''\" selected>{{ opcaoDefault }}</option>\r\n <option *ngFor=\"let item of itens\" [value]=\"item[itemId]\" [selected]=\"item[itemId] == data\">{{ item[itemNome] }}\r\n </option>\r\n </select> \r\n </ion-item>\r\n \r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form && form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>", styles: ["select{padding:var(--select-padding, 4px);border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;height:var(--select-height, 28px);margin-left:0}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:42px!important}select:focus{outline:none!important;border:1px solid lightblue!important}select:focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
386
386
  }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { selectChange: [{
387
387
  type: Output
388
388
  }], selectChangeEntity: [{
@@ -1126,8 +1126,9 @@ class InputAreaComponent extends BaseInputComponent {
1126
1126
  setDisabledState(isDisabled) {
1127
1127
  this.disabled = this.disabled;
1128
1128
  }
1129
- constructor() {
1129
+ constructor(renderer) {
1130
1130
  super();
1131
+ this.renderer = renderer;
1131
1132
  this.linhas = 5;
1132
1133
  this.onChange = (data) => { };
1133
1134
  this.onTouch = () => { };
@@ -1136,16 +1137,31 @@ class InputAreaComponent extends BaseInputComponent {
1136
1137
  }
1137
1138
  ngOnInit() { }
1138
1139
  onBlur() {
1140
+ //remover classe do ion-item
1141
+ setTimeout(() => {
1142
+ //this.renderer.addClass(document.getElementById("item-select"), "item-has-focus");
1143
+ this.renderer.removeClass(this.itemArea.nativeElement, "item-has-focus");
1144
+ //console.log('select focused', document.getElementById("item-select"));
1145
+ }, 200);
1139
1146
  if (this.form) {
1140
1147
  this.form.get(this.formControlName)?.markAsTouched();
1141
1148
  }
1142
1149
  }
1143
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputAreaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1150
+ entered() {
1151
+ //adicionar classe ao ion-item
1152
+ // console.log('select focused');
1153
+ setTimeout(() => {
1154
+ //this.renderer.addClass(document.getElementById("item-select"), "item-has-focus");
1155
+ this.renderer.addClass(this.itemArea.nativeElement, "item-has-focus");
1156
+ //console.log('select focused', document.getElementById("item-select"));
1157
+ }, 200);
1158
+ }
1159
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputAreaComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
1144
1160
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: InputAreaComponent, selector: "kb-input-area", inputs: { linhas: "linhas" }, providers: [{
1145
1161
  provide: NG_VALUE_ACCESSOR,
1146
1162
  useExisting: InputAreaComponent,
1147
1163
  multi: true
1148
- }], usesInheritance: true, ngImport: i0, template: "<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\">\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <ion-textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n maxlength=\"{{ max }}\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"></ion-textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>", styles: ["ion-label{margin-bottom:4px!important}ion-textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonTextarea, selector: "ion-textarea", inputs: ["autoGrow", "autocapitalize", "autofocus", "clearOnEdit", "color", "cols", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "legacy", "maxlength", "minlength", "mode", "name", "placeholder", "readonly", "required", "rows", "shape", "spellcheck", "value", "wrap"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }] }); }
1164
+ }], viewQueries: [{ propertyName: "itemArea", first: true, predicate: ["itemArea"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<!-- \r\n maxlength=\"{{ max }}\"\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\" #itemArea>\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n [maxLength]=\"max\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"\r\n (focus)=\"entered()\"\r\n ></textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>", styles: ["@charset \"UTF-8\";ion-label{margin-bottom:4px!important}ion-textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;resize:none}textarea::-webkit-scrollbar{width:10px;height:10px}textarea::-webkit-scrollbar-track{background:#f1f1f1}textarea::-webkit-scrollbar-thumb{border-radius:12px;background:var(--scroll-color-thumb, #808080)}textarea::-webkit-scrollbar-thumb:hover{background:var(--scroll-color-hover, #5c5c5c)}textarea:focus{outline:none!important;border:1px solid lightblue!important}textarea:focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
1149
1165
  }
1150
1166
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: InputAreaComponent, decorators: [{
1151
1167
  type: Component,
@@ -1153,9 +1169,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
1153
1169
  provide: NG_VALUE_ACCESSOR,
1154
1170
  useExisting: InputAreaComponent,
1155
1171
  multi: true
1156
- }], template: "<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\">\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <ion-textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n maxlength=\"{{ max }}\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"></ion-textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>", styles: ["ion-label{margin-bottom:4px!important}ion-textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
1157
- }], ctorParameters: () => [], propDecorators: { linhas: [{
1172
+ }], template: "<!-- \r\n maxlength=\"{{ max }}\"\r\n-->\r\n<div>\r\n <ion-item lines=\"none\" style=\"--background-focused: transparent;\" [class]=\"itemClass\" #itemArea>\r\n <ion-label position=\"{{ labelPosition }}\">{{ label }}</ion-label>\r\n <!-- formControlName=\"{{ formControlName }}\" -->\r\n <textarea #inputArea \r\n [placeholder]=\"placeholder\" \r\n [maxLength]=\"max\"\r\n (ionBlur)=\"onBlur()\"\r\n [value]=\"data\"\r\n [rows]=\"linhas\" \r\n (input)=\"writeValue(inputArea.value)\"\r\n [disabled]=\"readonly\"\r\n (focus)=\"entered()\"\r\n ></textarea>\r\n </ion-item>\r\n \r\n <div class=\"validation-errors\" *ngIf=\"form\">\r\n \r\n <ng-container *ngFor=\"let validation of validation_messages\">\r\n <div class=\"error-message\"\r\n *ngIf=\"form.get(formControlName)?.hasError(validation.type) && (form.get(formControlName)?.dirty || form.get(formControlName)?.touched)\">\r\n &#8226; {{ validation.message }}\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n </div>", styles: ["@charset \"UTF-8\";ion-label{margin-bottom:4px!important}ion-textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px}textarea{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;resize:none}textarea::-webkit-scrollbar{width:10px;height:10px}textarea::-webkit-scrollbar-track{background:#f1f1f1}textarea::-webkit-scrollbar-thumb{border-radius:12px;background:var(--scroll-color-thumb, #808080)}textarea::-webkit-scrollbar-thumb:hover{background:var(--scroll-color-hover, #5c5c5c)}textarea:focus{outline:none!important;border:1px solid lightblue!important}textarea:focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}\n", "@charset \"UTF-8\";ion-label{margin-bottom:4px!important;--color: var(--ion-color-label, auto) !important}ion-item ion-label{overflow:initial!important}ion-input{padding:var(--input-padding, 8px)!important;border:1px solid darkgray;border-radius:4px;width:100%;margin-top:2px;max-height:var(--input-max-height, 29px);transition:.2s ease}.has-focus{border:1px solid var(--ion-color-bluetool, #1f477d)}input:focus{border:1px solid lightblue!important}input:focus ion-input,input:focus ion-textarea{border:1px solid lightblue!important}input:focus ion-label{--color: var(--ion-color-label-focus, blue) !important}.item-has-focus ion-label{color:var(--ion-color-label-focus, blue)!important}.item-has-focus ion-input,.item-has-focus ion-textarea{border:1px solid lightblue!important}input:disabled{opacity:.9!important}.error-message{font-size:small;color:var(--error-text-color, red);margin-left:15px}.padding{padding:auto}.no-padding{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px;height:55px!important}.no-padding-end{--inner-padding-end: 0px}.no-padding-no-height{--inner-padding-end: 0px;--padding-start: 0px;--padding-bottom: 0px;--inner-padding-bottom: 0px}.padding-top{--padding-top: 0px}.item-inner{padding-right:0!important}.label-right ion-label{transform-origin:right top;align-self:flex-end;margin-bottom:4%!important}.align-to-right ion-label{position:relative;left:25%;text-align:end}.error-input ion-input,.error-shake ion-input{animation:shake .4s 1 linear;border:1px solid var(--error-text-color, red)!important}@keyframes shake{0%{transform:translate(20px)}20%{transform:translate(-20px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(4px)}to{transform:translate(0)}}.error-input ion-label,.error-shake ion-label{color:var(--error-text-color, red)!important}.error-input ion-input,.error-shake ion-input{border:1px solid red!important}.error-shake ion-input{animation:shake .4s 1 linear}\n"] }]
1173
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { linhas: [{
1158
1174
  type: Input
1175
+ }], itemArea: [{
1176
+ type: ViewChild,
1177
+ args: ["itemArea", { read: ElementRef }]
1159
1178
  }] } });
1160
1179
 
1161
1180
  class InputCepComponent extends BaseInputComponent {