appproject-components 1.0.48 → 1.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,24 +1,24 @@
1
- # AppprojectComponents
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.0.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project appproject-components` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project appproject-components`.
8
- > Note: Don't forget to add `--project appproject-components` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build appproject-components` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build appproject-components`, go to the dist folder `cd dist/appproject-components` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test appproject-components` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
1
+ # AppprojectComponents
2
+
3
+ This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.1.0.
4
+
5
+ ## Code scaffolding
6
+
7
+ Run `ng generate component component-name --project appproject-components` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project appproject-components`.
8
+ > Note: Don't forget to add `--project appproject-components` or else it will be added to the default project in your `angular.json` file.
9
+
10
+ ## Build
11
+
12
+ Run `ng build appproject-components` to build the project. The build artifacts will be stored in the `dist/` directory.
13
+
14
+ ## Publishing
15
+
16
+ After building your library with `ng build appproject-components`, go to the dist folder `cd dist/appproject-components` and run `npm publish`.
17
+
18
+ ## Running unit tests
19
+
20
+ Run `ng test appproject-components` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
+
22
+ ## Further help
23
+
24
+ To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
@@ -5,18 +5,18 @@ export class AppprojectComponentsComponent {
5
5
  ngOnInit() {
6
6
  }
7
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: AppprojectComponentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: AppprojectComponentsComponent, selector: "kb-appproject-components", ngImport: i0, template: `
9
- <p>
10
- appproject-components works!
11
- </p>
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: AppprojectComponentsComponent, selector: "kb-appproject-components", ngImport: i0, template: `
9
+ <p>
10
+ appproject-components works!
11
+ </p>
12
12
  `, isInline: true }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: AppprojectComponentsComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'kb-appproject-components', template: `
17
- <p>
18
- appproject-components works!
19
- </p>
16
+ args: [{ selector: 'kb-appproject-components', template: `
17
+ <p>
18
+ appproject-components works!
19
+ </p>
20
20
  ` }]
21
21
  }], ctorParameters: () => [] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcHJvamVjdC1jb21wb25lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2FwcHByb2plY3QtY29tcG9uZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLDZCQUE2QjtJQUV4QyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs4R0FMVSw2QkFBNkI7a0dBQTdCLDZCQUE2QixnRUFSOUI7Ozs7R0FJVDs7MkZBSVUsNkJBQTZCO2tCQVZ6QyxTQUFTOytCQUNFLDBCQUEwQixZQUMxQjs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2ItYXBwcHJvamVjdC1jb21wb25lbnRzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cD5cbiAgICAgIGFwcHByb2plY3QtY29tcG9uZW50cyB3b3JrcyFcbiAgICA8L3A+XG4gIGAsXG4gIHN0eWxlczogW1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIEFwcHByb2plY3RDb21wb25lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbn1cbiJdfQ==
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcHJvamVjdC1jb21wb25lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2FwcHByb2plY3QtY29tcG9uZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLDZCQUE2QjtJQUV4QyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs4R0FMVSw2QkFBNkI7a0dBQTdCLDZCQUE2QixnRUFSOUI7Ozs7R0FJVDs7MkZBSVUsNkJBQTZCO2tCQVZ6QyxTQUFTOytCQUNFLDBCQUEwQixZQUMxQjs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAna2ItYXBwcHJvamVjdC1jb21wb25lbnRzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHA+XHJcbiAgICAgIGFwcHByb2plY3QtY29tcG9uZW50cyB3b3JrcyFcclxuICAgIDwvcD5cclxuICBgLFxyXG4gIHN0eWxlczogW1xyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcHByb2plY3RDb21wb25lbnRzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -11,4 +11,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
11
11
  providedIn: 'root'
12
12
  }]
13
13
  }], ctorParameters: () => [] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcHJvamVjdC1jb21wb25lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBwcm9qZWN0LWNvbXBvbmVudHMvc3JjL2xpYi9hcHBwcm9qZWN0LWNvbXBvbmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLGdCQUFnQixDQUFDOzhHQUZOLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEFwcHByb2plY3RDb21wb25lbnRzU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwcHJvamVjdC1jb21wb25lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hcHBwcm9qZWN0LWNvbXBvbmVudHMvc3JjL2xpYi9hcHBwcm9qZWN0LWNvbXBvbmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sMkJBQTJCO0lBRXRDLGdCQUFnQixDQUFDOzhHQUZOLDJCQUEyQjtrSEFBM0IsMkJBQTJCLGNBRjFCLE1BQU07OzJGQUVQLDJCQUEyQjtrQkFIdkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBcHBwcm9qZWN0Q29tcG9uZW50c1NlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG59XHJcbiJdfQ==
@@ -32,11 +32,11 @@ export class EntityEditComponent {
32
32
  emptyHandler() {
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: EntityEditComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: EntityEditComponent, selector: "kb-entity-edit", inputs: { entidade: "entidade", campos: "campos", entidadeForm: "entidadeForm", validation_messages: "validation_messages", itemClass: "itemClass", rowClass: "rowClass" }, ngImport: i0, template: "<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\n\n\n <ion-row *ngFor=\"let linha of campos\" [class]=\"rowClass\">\n <ng-container *ngFor=\"let campo of linha.Linha\">\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\">\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [type]=\"campo.TipoInput ?? 'text'\" \n [showSeePassword]=\"campo.TipoInput == 'password'\"\n [showCustomAction]=\"campo.InputAction\"\n [customActionIcon]=\"campo.InputActionIcon ?? 'search-outline'\"\n (customActionClick)=\"campo.click ? campo.click($event) : emptyHandler()\"\n\n [itemClass]=\"itemClass\">\n </kb-input-text>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\">\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [linhas]=\"campo.Linhas ?? 5\"\n [itemClass]=\"itemClass\">\n </kb-input-area>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\">\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\"\n (getResultados)=\"campo.change ? campo.change($event) : emptyHandler()\"\n >\n </kb-input-cep>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\">\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-valor>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\">\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"campo.Formato ?? ''\"\n [itemClass]=\"itemClass\">\n </kb-input-format>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\">\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [itemClass]=\"itemClass\"\n [labelColor]=\"campo.BtnColor\">\n\n </kb-input-checkbox>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\">\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId ?? 'Id'\"\n [itemNome]=\"campo.ItemNome ?? 'Nome'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-select>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\">\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-radio>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\">\n <kb-input-pesquisa #pesquisaCentroCustoPai \n [label]=\"campo.Label ?? campo.Nome\" \n [campoId]=\"campo.ItemId\"\n [focusField]=\"campo.focusField\"\n [formControlName]=\"campo.Nome\" \n placeholder=\"Pesquisar...\" \n [campoDisplay]=\"campo.ItemNome ?? 'Nome'\" \n [form]=\"entidadeForm\"\n [tipo]=\"campo.TipoPesquisa\" \n [urlItem]=\"campo.UrlItem\" \n [max]=\"campo.Tamanho ?? '50'\" \n [url]=\"campo.UrlPesquisa\" \n [readonly]=\"campo.ReadOnly\"\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\"\n [itemClass]=\"itemClass\">\n </kb-input-pesquisa>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-button'\">\n <!-- \n <kb-btn-action [title]=\"campo.Label\" [icon]=\"campo.Icon\" [iconSrc]=\"campo.IconSrc\" [color]=\"campo.BtnColor ?? 'light'\" \n [expand]=\"campo.BtnExpand ?? 'block'\" style=\"margin-top: var(--btn-action-margin-top, auto);\">\n </kb-btn-action>\n -->\n <ion-button [expand]=\"campo.BtnExpand ?? 'block'\" [color]=\"campo.BtnColor ?? 'light'\"\n (click)=\"campo.click ? campo.click($event) : emptyHandler()\" [size]=\"campo.BtnSize ?? 'default'\"\n [disabled]=\"campo.ReadOnly\">\n <ion-icon *ngIf=\"campo.Icon || campo.IconSrc\" [name]=\"campo.Icon\" [src]=\"campo.IconSrc\"></ion-icon>\n {{ campo.Label }}\n </ion-button>\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\n\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\n <ion-list lines=\"none\" class=\"ion-no-padding\">\n <ion-list-header color=\"primary\" [style]=\"campo.CampoStyle ?? ''\"> \n <ion-label [style]=\"campo.LabelStyle ?? ''\">{{ campo.Label }}</ion-label>\n </ion-list-header>\n </ion-list>\n </ion-col>\n </ng-container>\n </ion-row>\n\n <!--\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Totalizador</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\n </ion-item>\n </ion-col>\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Inativo</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\n </ion-item>\n </ion-col>\n -->\n</form>", styles: ["ion-list-header{text-align:center;font-size:large}\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.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.InputTextComponent, selector: "kb-input-text", inputs: ["iconInput", "inputSpanAfter", "campoFoco", "showCustomAction", "customActionIcon"], outputs: ["customActionClick"] }, { kind: "component", type: i5.InputFormatComponent, selector: "kb-input-format", inputs: ["formato", "keyEnter"] }, { kind: "component", type: i6.InputSelectComponent, selector: "kb-input-select", inputs: ["itens", "itemId", "itemNome", "showNovo", "itemNull", "opcaoDefault"], outputs: ["selectChange", "selectChangeEntity"] }, { kind: "component", type: i7.InputPesquisaComponent, selector: "kb-input-pesquisa", inputs: ["textoPesquisa", "max", "filterFunction", "selectId", "campoId", "campoPaiId", "campoDisplay", "tipo", "pesquisaChange", "pesquisaAction", "limpar", "url", "urlItem", "urlTree", "empresa", "loadInit", "treeTitulo"] }, { kind: "component", type: i8.InputValorComponent, selector: "kb-input-valor", inputs: ["maxValor"] }, { kind: "component", type: i9.InputAreaComponent, selector: "kb-input-area", inputs: ["linhas"] }, { kind: "component", type: i10.InputCepComponent, selector: "kb-input-cep", inputs: ["formato", "keyEnter"], outputs: ["getResultados"] }, { kind: "component", type: i11.InputCheckboxComponent, selector: "kb-input-checkbox", inputs: ["justify", "labelPlacement"] }, { kind: "component", type: i12.InputRadioComponent, selector: "kb-input-radio", inputs: ["itens", "itemId", "itemNome", "color"] }] }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: EntityEditComponent, selector: "kb-entity-edit", inputs: { entidade: "entidade", campos: "campos", entidadeForm: "entidadeForm", validation_messages: "validation_messages", itemClass: "itemClass", rowClass: "rowClass" }, ngImport: i0, template: "<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\r\n\r\n\r\n <ion-row *ngFor=\"let linha of campos\" [class]=\"rowClass\">\r\n <ng-container *ngFor=\"let campo of linha.Linha\">\r\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\">\r\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\r\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \r\n [type]=\"campo.TipoInput ?? 'text'\" \r\n [showSeePassword]=\"campo.TipoInput == 'password'\"\r\n [showCustomAction]=\"campo.InputAction\"\r\n [customActionIcon]=\"campo.InputActionIcon ?? 'search-outline'\"\r\n (customActionClick)=\"campo.click ? campo.click($event) : emptyHandler()\"\r\n\r\n [itemClass]=\"itemClass\">\r\n </kb-input-text>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\">\r\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\r\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [linhas]=\"campo.Linhas ?? 5\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-area>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\">\r\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\"\r\n (getResultados)=\"campo.change ? campo.change($event) : emptyHandler()\"\r\n >\r\n </kb-input-cep>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\">\r\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-valor>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\">\r\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"campo.Formato ?? ''\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-format>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\">\r\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \r\n [itemClass]=\"itemClass\"\r\n [labelColor]=\"campo.BtnColor\">\r\n\r\n </kb-input-checkbox>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\">\r\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\r\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId ?? 'Id'\"\r\n [itemNome]=\"campo.ItemNome ?? 'Nome'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-select>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\">\r\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\r\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-radio>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\">\r\n <kb-input-pesquisa #pesquisaCentroCustoPai \r\n [label]=\"campo.Label ?? campo.Nome\" \r\n [campoId]=\"campo.ItemId\"\r\n [focusField]=\"campo.focusField\"\r\n [formControlName]=\"campo.Nome\" \r\n placeholder=\"Pesquisar...\" \r\n [campoDisplay]=\"campo.ItemNome ?? 'Nome'\" \r\n [form]=\"entidadeForm\"\r\n [tipo]=\"campo.TipoPesquisa\" \r\n [urlItem]=\"campo.UrlItem\" \r\n [max]=\"campo.Tamanho ?? '50'\" \r\n [url]=\"campo.UrlPesquisa\" \r\n [readonly]=\"campo.ReadOnly\"\r\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-pesquisa>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-button'\">\r\n <!-- \r\n <kb-btn-action [title]=\"campo.Label\" [icon]=\"campo.Icon\" [iconSrc]=\"campo.IconSrc\" [color]=\"campo.BtnColor ?? 'light'\" \r\n [expand]=\"campo.BtnExpand ?? 'block'\" style=\"margin-top: var(--btn-action-margin-top, auto);\">\r\n </kb-btn-action>\r\n -->\r\n <ion-button [expand]=\"campo.BtnExpand ?? 'block'\" [color]=\"campo.BtnColor ?? 'light'\"\r\n (click)=\"campo.click ? campo.click($event) : emptyHandler()\" [size]=\"campo.BtnSize ?? 'default'\"\r\n [disabled]=\"campo.ReadOnly\">\r\n <ion-icon *ngIf=\"campo.Icon || campo.IconSrc\" [name]=\"campo.Icon\" [src]=\"campo.IconSrc\"></ion-icon>\r\n {{ campo.Label }}\r\n </ion-button>\r\n </ion-col>\r\n\r\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\r\n\r\n </ion-col>\r\n\r\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\r\n <ion-list lines=\"none\" class=\"ion-no-padding\">\r\n <ion-list-header color=\"primary\" [style]=\"campo.CampoStyle ?? ''\"> \r\n <ion-label [style]=\"campo.LabelStyle ?? ''\">{{ campo.Label }}</ion-label>\r\n </ion-list-header>\r\n </ion-list>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n\r\n <!--\r\n <ion-col class=\"select ion-no-margin ion-no-padding\">\r\n <ion-item lines=\"none\">\r\n <ion-label>Totalizador</ion-label>\r\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col class=\"select ion-no-margin ion-no-padding\">\r\n <ion-item lines=\"none\">\r\n <ion-label>Inativo</ion-label>\r\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\r\n </ion-item>\r\n </ion-col>\r\n -->\r\n</form>", styles: ["ion-list-header{text-align:center;font-size:large}\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.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.InputTextComponent, selector: "kb-input-text", inputs: ["iconInput", "inputSpanAfter", "campoFoco", "showCustomAction", "customActionIcon"], outputs: ["customActionClick"] }, { kind: "component", type: i5.InputFormatComponent, selector: "kb-input-format", inputs: ["formato", "keyEnter"] }, { kind: "component", type: i6.InputSelectComponent, selector: "kb-input-select", inputs: ["itens", "itemId", "itemNome", "showNovo", "itemNull", "opcaoDefault"], outputs: ["selectChange", "selectChangeEntity"] }, { kind: "component", type: i7.InputPesquisaComponent, selector: "kb-input-pesquisa", inputs: ["textoPesquisa", "max", "filterFunction", "selectId", "campoId", "campoPaiId", "campoDisplay", "tipo", "pesquisaAction", "limpar", "url", "urlItem", "urlTree", "empresa", "loadInit", "treeTitulo"], outputs: ["pesquisaChange"] }, { kind: "component", type: i8.InputValorComponent, selector: "kb-input-valor", inputs: ["maxValor"] }, { kind: "component", type: i9.InputAreaComponent, selector: "kb-input-area", inputs: ["linhas"] }, { kind: "component", type: i10.InputCepComponent, selector: "kb-input-cep", inputs: ["formato", "keyEnter"], outputs: ["getResultados"] }, { kind: "component", type: i11.InputCheckboxComponent, selector: "kb-input-checkbox", inputs: ["justify", "labelPlacement"] }, { kind: "component", type: i12.InputRadioComponent, selector: "kb-input-radio", inputs: ["itens", "itemId", "itemNome", "color"] }] }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: EntityEditComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'kb-entity-edit', template: "<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\n\n\n <ion-row *ngFor=\"let linha of campos\" [class]=\"rowClass\">\n <ng-container *ngFor=\"let campo of linha.Linha\">\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\">\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [type]=\"campo.TipoInput ?? 'text'\" \n [showSeePassword]=\"campo.TipoInput == 'password'\"\n [showCustomAction]=\"campo.InputAction\"\n [customActionIcon]=\"campo.InputActionIcon ?? 'search-outline'\"\n (customActionClick)=\"campo.click ? campo.click($event) : emptyHandler()\"\n\n [itemClass]=\"itemClass\">\n </kb-input-text>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\">\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [linhas]=\"campo.Linhas ?? 5\"\n [itemClass]=\"itemClass\">\n </kb-input-area>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\">\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\"\n (getResultados)=\"campo.change ? campo.change($event) : emptyHandler()\"\n >\n </kb-input-cep>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\">\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-valor>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\">\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"campo.Formato ?? ''\"\n [itemClass]=\"itemClass\">\n </kb-input-format>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\">\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \n [itemClass]=\"itemClass\"\n [labelColor]=\"campo.BtnColor\">\n\n </kb-input-checkbox>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\">\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId ?? 'Id'\"\n [itemNome]=\"campo.ItemNome ?? 'Nome'\" [validation_messages]=\"validation_messages[campo.Nome]\"\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-select>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\">\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\"\n [itemClass]=\"itemClass\">\n </kb-input-radio>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\">\n <kb-input-pesquisa #pesquisaCentroCustoPai \n [label]=\"campo.Label ?? campo.Nome\" \n [campoId]=\"campo.ItemId\"\n [focusField]=\"campo.focusField\"\n [formControlName]=\"campo.Nome\" \n placeholder=\"Pesquisar...\" \n [campoDisplay]=\"campo.ItemNome ?? 'Nome'\" \n [form]=\"entidadeForm\"\n [tipo]=\"campo.TipoPesquisa\" \n [urlItem]=\"campo.UrlItem\" \n [max]=\"campo.Tamanho ?? '50'\" \n [url]=\"campo.UrlPesquisa\" \n [readonly]=\"campo.ReadOnly\"\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\"\n [itemClass]=\"itemClass\">\n </kb-input-pesquisa>\n </ion-col>\n\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-button'\">\n <!-- \n <kb-btn-action [title]=\"campo.Label\" [icon]=\"campo.Icon\" [iconSrc]=\"campo.IconSrc\" [color]=\"campo.BtnColor ?? 'light'\" \n [expand]=\"campo.BtnExpand ?? 'block'\" style=\"margin-top: var(--btn-action-margin-top, auto);\">\n </kb-btn-action>\n -->\n <ion-button [expand]=\"campo.BtnExpand ?? 'block'\" [color]=\"campo.BtnColor ?? 'light'\"\n (click)=\"campo.click ? campo.click($event) : emptyHandler()\" [size]=\"campo.BtnSize ?? 'default'\"\n [disabled]=\"campo.ReadOnly\">\n <ion-icon *ngIf=\"campo.Icon || campo.IconSrc\" [name]=\"campo.Icon\" [src]=\"campo.IconSrc\"></ion-icon>\n {{ campo.Label }}\n </ion-button>\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\n\n </ion-col>\n\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\n <ion-list lines=\"none\" class=\"ion-no-padding\">\n <ion-list-header color=\"primary\" [style]=\"campo.CampoStyle ?? ''\"> \n <ion-label [style]=\"campo.LabelStyle ?? ''\">{{ campo.Label }}</ion-label>\n </ion-list-header>\n </ion-list>\n </ion-col>\n </ng-container>\n </ion-row>\n\n <!--\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Totalizador</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\n </ion-item>\n </ion-col>\n <ion-col class=\"select ion-no-margin ion-no-padding\">\n <ion-item lines=\"none\">\n <ion-label>Inativo</ion-label>\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\n </ion-item>\n </ion-col>\n -->\n</form>", styles: ["ion-list-header{text-align:center;font-size:large}\n"] }]
39
+ args: [{ selector: 'kb-entity-edit', template: "<form *ngIf=\"campos && campos.length\" [formGroup]=\"entidadeForm\" style=\"width: 100%;\">\r\n\r\n\r\n <ion-row *ngFor=\"let linha of campos\" [class]=\"rowClass\">\r\n <ng-container *ngFor=\"let campo of linha.Linha\">\r\n <!-- {{ campo.Nome }} {{ campo.Tipo }} -->\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-text'\">\r\n <kb-input-text label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\r\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \r\n [type]=\"campo.TipoInput ?? 'text'\" \r\n [showSeePassword]=\"campo.TipoInput == 'password'\"\r\n [showCustomAction]=\"campo.InputAction\"\r\n [customActionIcon]=\"campo.InputActionIcon ?? 'search-outline'\"\r\n (customActionClick)=\"campo.click ? campo.click($event) : emptyHandler()\"\r\n\r\n [itemClass]=\"itemClass\">\r\n </kb-input-text>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-area'\">\r\n <kb-input-area label=\"{{campo.Label ?? campo.Nome}}\" [placeholder]=\"campo.PlaceHolderVisivel ? (campo.Label ?? campo.Nome + '...') : ''\"\r\n [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n [formControlName]=\"campo.Nome\" [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [linhas]=\"campo.Linhas ?? 5\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-area>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-cep'\">\r\n <kb-input-cep label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\"\r\n (getResultados)=\"campo.change ? campo.change($event) : emptyHandler()\"\r\n >\r\n </kb-input-cep>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-valor'\">\r\n <kb-input-valor label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-valor>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-format'\">\r\n <kb-input-format label=\"{{campo.Label ?? campo.Nome}}\" [form]=\"entidadeForm\" [max]=\"campo.Tamanho ?? '50'\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" [formato]=\"campo.Formato ?? ''\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-format>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-checkbox'\">\r\n <kb-input-checkbox label=\"{{ campo.Label }}\" [form]=\"entidadeForm\"\r\n [validation_messages]=\"validation_messages[campo.Nome]\" [formControlName]=\"campo.Nome\"\r\n [campoFoco]=\"campo.CampoFoco\" [readonly]=\"campo.ReadOnly\" \r\n [itemClass]=\"itemClass\"\r\n [labelColor]=\"campo.BtnColor\">\r\n\r\n </kb-input-checkbox>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-select'\">\r\n <kb-input-select [label]=\"campo.Label ?? campo.Nome\" [placeholder]=\"'Selecionar...'\"\r\n [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\" [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId ?? 'Id'\"\r\n [itemNome]=\"campo.ItemNome ?? 'Nome'\" [validation_messages]=\"validation_messages[campo.Nome]\"\r\n (selectChangeEntity)=\"campo.change ? campo.change($event) : emptyHandler()\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-select>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-radio'\">\r\n <kb-input-radio [label]=\"campo.Label ?? campo.Nome\" [formControlName]=\"campo.Nome\" [form]=\"entidadeForm\"\r\n [itens]=\"campo.Itens\" [itemId]=\"campo.ItemId\" [itemNome]=\"campo.ItemNome\" [readonly]=\"campo.ReadOnly\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-radio>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-pesquisa'\">\r\n <kb-input-pesquisa #pesquisaCentroCustoPai \r\n [label]=\"campo.Label ?? campo.Nome\" \r\n [campoId]=\"campo.ItemId\"\r\n [focusField]=\"campo.focusField\"\r\n [formControlName]=\"campo.Nome\" \r\n placeholder=\"Pesquisar...\" \r\n [campoDisplay]=\"campo.ItemNome ?? 'Nome'\" \r\n [form]=\"entidadeForm\"\r\n [tipo]=\"campo.TipoPesquisa\" \r\n [urlItem]=\"campo.UrlItem\" \r\n [max]=\"campo.Tamanho ?? '50'\" \r\n [url]=\"campo.UrlPesquisa\" \r\n [readonly]=\"campo.ReadOnly\"\r\n (pesquisaChange)=\"campo.change ? campo.change($event) : emptyHandler()\"\r\n [itemClass]=\"itemClass\">\r\n </kb-input-pesquisa>\r\n </ion-col>\r\n\r\n <ion-col [sizeMd]=\"campo.Size\" *ngIf=\"campo.Tipo == 'input-button'\">\r\n <!-- \r\n <kb-btn-action [title]=\"campo.Label\" [icon]=\"campo.Icon\" [iconSrc]=\"campo.IconSrc\" [color]=\"campo.BtnColor ?? 'light'\" \r\n [expand]=\"campo.BtnExpand ?? 'block'\" style=\"margin-top: var(--btn-action-margin-top, auto);\">\r\n </kb-btn-action>\r\n -->\r\n <ion-button [expand]=\"campo.BtnExpand ?? 'block'\" [color]=\"campo.BtnColor ?? 'light'\"\r\n (click)=\"campo.click ? campo.click($event) : emptyHandler()\" [size]=\"campo.BtnSize ?? 'default'\"\r\n [disabled]=\"campo.ReadOnly\">\r\n <ion-icon *ngIf=\"campo.Icon || campo.IconSrc\" [name]=\"campo.Icon\" [src]=\"campo.IconSrc\"></ion-icon>\r\n {{ campo.Label }}\r\n </ion-button>\r\n </ion-col>\r\n\r\n <ion-col *ngIf=\"campo.Tipo == 'col'\" size-md=\"1\" size-xs=\"0\">\r\n\r\n </ion-col>\r\n\r\n <ion-col *ngIf=\"campo.Tipo == 'sub-titulo'\" size=\"12\">\r\n <ion-list lines=\"none\" class=\"ion-no-padding\">\r\n <ion-list-header color=\"primary\" [style]=\"campo.CampoStyle ?? ''\"> \r\n <ion-label [style]=\"campo.LabelStyle ?? ''\">{{ campo.Label }}</ion-label>\r\n </ion-list-header>\r\n </ion-list>\r\n </ion-col>\r\n </ng-container>\r\n </ion-row>\r\n\r\n <!--\r\n <ion-col class=\"select ion-no-margin ion-no-padding\">\r\n <ion-item lines=\"none\">\r\n <ion-label>Totalizador</ion-label>\r\n <ion-checkbox slot=\"start\" formControlName=\"Totalizador\"></ion-checkbox>\r\n </ion-item>\r\n </ion-col>\r\n <ion-col class=\"select ion-no-margin ion-no-padding\">\r\n <ion-item lines=\"none\">\r\n <ion-label>Inativo</ion-label>\r\n <ion-checkbox slot=\"start\" formControlName=\"Inativo\"></ion-checkbox>\r\n </ion-item>\r\n </ion-col>\r\n -->\r\n</form>", styles: ["ion-list-header{text-align:center;font-size:large}\n"] }]
40
40
  }], ctorParameters: () => [{ type: i0.NgZone }], propDecorators: { entidade: [{
41
41
  type: Input
42
42
  }], campos: [{
@@ -50,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
50
50
  }], rowClass: [{
51
51
  type: Input
52
52
  }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvZW50aXR5LWVkaXQvZW50aXR5LWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvZW50aXR5LWVkaXQvZW50aXR5LWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVVqRSxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRnpCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUFXLEVBQUUsQ0FBQztJQUcvQixDQUFDO0lBRUQsUUFBUTtRQUNOLDJCQUEyQjtJQUM3QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsMENBQTBDO1FBRTFDLDhCQUE4QjtRQUM5Qix5QkFBeUI7UUFDekIsOENBQThDO1FBQzlDLEtBQUs7UUFDTCw0QkFBNEI7SUFDOUIsQ0FBQztJQUVELFlBQVk7SUFFWixDQUFDOzhHQS9CVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrT0NWaEMsa3RPQThJTzs7MkZEcElNLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxnQkFBZ0I7MkVBTWpCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE5nWm9uZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlTW9kZWwsIEh0bWxSb3cgfSBmcm9tICdhcHBwcm9qZWN0LWxpYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2tiLWVudGl0eS1lZGl0JyxcbiAgLy9zdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogJy4vZW50aXR5LWVkaXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZW50aXR5LWVkaXQuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIEVudGl0eUVkaXRDb21wb25lbnQ8VCBleHRlbmRzIEJhc2VNb2RlbD4gaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBlbnRpZGFkZTogVCB8IG51bGw7XG4gIC8vZW50aWRhZGU6IGFueTtcbiAgLyoqXG4gICAqIFZhaSByZWNlYmVyIG1vbnRhZG8gZG8gYmFzZSBjYWRhc3Ryb1xuICAgKi9cbiAgQElucHV0KCkgY2FtcG9zOiBIdG1sUm93W107XG4gIEBJbnB1dCgpIGVudGlkYWRlRm9ybTogRm9ybUdyb3VwO1xuICBASW5wdXQoKSB2YWxpZGF0aW9uX21lc3NhZ2VzOiBhbnk7XG4gIEBJbnB1dCgpIGl0ZW1DbGFzczogc3RyaW5nID0gXCJcIjtcbiAgQElucHV0KCkgcm93Q2xhc3M6IHN0cmluZyA9IFwiXCI7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy90aGlzLmdldEVudGlkYWRlQ2FtcG9zKCk7XG4gIH1cblxuICBnZXRFbnRpZGFkZUNhbXBvcygpIHtcbiAgICAvL3RoaXMuZW50aWRhZGUgPSBuZXcgdGhpcy5lbnRpZGFkZVRpcG8oKTtcblxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMuZW50aWRhZGUpO1xuICAgIC8vIHRoaXMubmdab25lLnJ1bigoKSA9PiBcbiAgICAvLyAgIHRoaXMuY2FtcG9zID0gdGhpcy5lbnRpZGFkZS5nZXRIdG1sRm9ybSgpXG4gICAgLy8gKTtcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNhbXBvcyk7XG4gIH1cblxuICBlbXB0eUhhbmRsZXIoKSB7XG5cbiAgfVxufVxuIiwiPGZvcm0gKm5nSWY9XCJjYW1wb3MgJiYgY2FtcG9zLmxlbmd0aFwiIFtmb3JtR3JvdXBdPVwiZW50aWRhZGVGb3JtXCIgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj5cblxuXG4gIDxpb24tcm93ICpuZ0Zvcj1cImxldCBsaW5oYSBvZiBjYW1wb3NcIiBbY2xhc3NdPVwicm93Q2xhc3NcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBjYW1wbyBvZiBsaW5oYS5MaW5oYVwiPlxuICAgICAgPCEtLSB7eyBjYW1wby5Ob21lIH19IHt7IGNhbXBvLlRpcG8gfX0gLS0+XG5cbiAgICAgIDxpb24tY29sIFtzaXplTWRdPVwiY2FtcG8uU2l6ZVwiICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnaW5wdXQtdGV4dCdcIj5cbiAgICAgICAgPGtiLWlucHV0LXRleHQgbGFiZWw9XCJ7e2NhbXBvLkxhYmVsID8/IGNhbXBvLk5vbWV9fVwiIFtwbGFjZWhvbGRlcl09XCJjYW1wby5QbGFjZUhvbGRlclZpc2l2ZWwgPyAoY2FtcG8uTGFiZWwgPz8gY2FtcG8uTm9tZSArICcuLi4nKSA6ICcnXCJcbiAgICAgICAgICBbZm9ybV09XCJlbnRpZGFkZUZvcm1cIiBbbWF4XT1cImNhbXBvLlRhbWFuaG8gPz8gJzUwJ1wiIFt2YWxpZGF0aW9uX21lc3NhZ2VzXT1cInZhbGlkYXRpb25fbWVzc2FnZXNbY2FtcG8uTm9tZV1cIlxuICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FtcG8uTm9tZVwiIFtjYW1wb0ZvY29dPVwiY2FtcG8uQ2FtcG9Gb2NvXCIgW3JlYWRvbmx5XT1cImNhbXBvLlJlYWRPbmx5XCIgICAgICAgICAgXG4gICAgICAgICAgW3R5cGVdPVwiY2FtcG8uVGlwb0lucHV0ID8/ICd0ZXh0J1wiIFxuICAgICAgICAgIFtzaG93U2VlUGFzc3dvcmRdPVwiY2FtcG8uVGlwb0lucHV0ID09ICdwYXNzd29yZCdcIlxuICAgICAgICAgIFtzaG93Q3VzdG9tQWN0aW9uXT1cImNhbXBvLklucHV0QWN0aW9uXCJcbiAgICAgICAgICBbY3VzdG9tQWN0aW9uSWNvbl09XCJjYW1wby5JbnB1dEFjdGlvbkljb24gPz8gJ3NlYXJjaC1vdXRsaW5lJ1wiXG4gICAgICAgICAgKGN1c3RvbUFjdGlvbkNsaWNrKT1cImNhbXBvLmNsaWNrID8gY2FtcG8uY2xpY2soJGV2ZW50KSA6IGVtcHR5SGFuZGxlcigpXCJcblxuICAgICAgICAgIFtpdGVtQ2xhc3NdPVwiaXRlbUNsYXNzXCI+XG4gICAgICAgIDwva2ItaW5wdXQtdGV4dD5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC1hcmVhJ1wiPlxuICAgICAgICA8a2ItaW5wdXQtYXJlYSBsYWJlbD1cInt7Y2FtcG8uTGFiZWwgPz8gY2FtcG8uTm9tZX19XCIgW3BsYWNlaG9sZGVyXT1cImNhbXBvLlBsYWNlSG9sZGVyVmlzaXZlbCA/IChjYW1wby5MYWJlbCA/PyBjYW1wby5Ob21lICsgJy4uLicpIDogJydcIlxuICAgICAgICAgIFtmb3JtXT1cImVudGlkYWRlRm9ybVwiIFttYXhdPVwiY2FtcG8uVGFtYW5obyA/PyAnNTAnXCIgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYW1wby5Ob21lXCIgW2NhbXBvRm9jb109XCJjYW1wby5DYW1wb0ZvY29cIiBbcmVhZG9ubHldPVwiY2FtcG8uUmVhZE9ubHlcIiBbbGluaGFzXT1cImNhbXBvLkxpbmhhcyA/PyA1XCJcbiAgICAgICAgICBbaXRlbUNsYXNzXT1cIml0ZW1DbGFzc1wiPlxuICAgICAgICA8L2tiLWlucHV0LWFyZWE+XG4gICAgICA8L2lvbi1jb2w+XG5cbiAgICAgIDxpb24tY29sIFtzaXplTWRdPVwiY2FtcG8uU2l6ZVwiICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnaW5wdXQtY2VwJ1wiPlxuICAgICAgICA8a2ItaW5wdXQtY2VwIGxhYmVsPVwie3tjYW1wby5MYWJlbCA/PyBjYW1wby5Ob21lfX1cIiBbZm9ybV09XCJlbnRpZGFkZUZvcm1cIlxuICAgICAgICAgIFt2YWxpZGF0aW9uX21lc3NhZ2VzXT1cInZhbGlkYXRpb25fbWVzc2FnZXNbY2FtcG8uTm9tZV1cIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIlxuICAgICAgICAgIFtjYW1wb0ZvY29dPVwiY2FtcG8uQ2FtcG9Gb2NvXCIgW3JlYWRvbmx5XT1cImNhbXBvLlJlYWRPbmx5XCJcbiAgICAgICAgICBbaXRlbUNsYXNzXT1cIml0ZW1DbGFzc1wiXG4gICAgICAgICAgKGdldFJlc3VsdGFkb3MpPVwiY2FtcG8uY2hhbmdlID8gY2FtcG8uY2hhbmdlKCRldmVudCkgOiBlbXB0eUhhbmRsZXIoKVwiXG4gICAgICAgICAgPlxuICAgICAgICA8L2tiLWlucHV0LWNlcD5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC12YWxvcidcIj5cbiAgICAgICAgPGtiLWlucHV0LXZhbG9yIGxhYmVsPVwie3tjYW1wby5MYWJlbCA/PyBjYW1wby5Ob21lfX1cIiBbZm9ybV09XCJlbnRpZGFkZUZvcm1cIiBbbWF4XT1cImNhbXBvLlRhbWFuaG8gPz8gJzUwJ1wiXG4gICAgICAgICAgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FtcG8uTm9tZVwiXG4gICAgICAgICAgW2NhbXBvRm9jb109XCJjYW1wby5DYW1wb0ZvY29cIiBbcmVhZG9ubHldPVwiY2FtcG8uUmVhZE9ubHlcIlxuICAgICAgICAgIFtpdGVtQ2xhc3NdPVwiaXRlbUNsYXNzXCI+XG4gICAgICAgIDwva2ItaW5wdXQtdmFsb3I+XG4gICAgICA8L2lvbi1jb2w+XG5cbiAgICAgIDxpb24tY29sIFtzaXplTWRdPVwiY2FtcG8uU2l6ZVwiICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnaW5wdXQtZm9ybWF0J1wiPlxuICAgICAgICA8a2ItaW5wdXQtZm9ybWF0IGxhYmVsPVwie3tjYW1wby5MYWJlbCA/PyBjYW1wby5Ob21lfX1cIiBbZm9ybV09XCJlbnRpZGFkZUZvcm1cIiBbbWF4XT1cImNhbXBvLlRhbWFuaG8gPz8gJzUwJ1wiXG4gICAgICAgICAgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FtcG8uTm9tZVwiXG4gICAgICAgICAgW2NhbXBvRm9jb109XCJjYW1wby5DYW1wb0ZvY29cIiBbcmVhZG9ubHldPVwiY2FtcG8uUmVhZE9ubHlcIiBbZm9ybWF0b109XCJjYW1wby5Gb3JtYXRvID8/ICcnXCJcbiAgICAgICAgICBbaXRlbUNsYXNzXT1cIml0ZW1DbGFzc1wiPlxuICAgICAgICA8L2tiLWlucHV0LWZvcm1hdD5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC1jaGVja2JveCdcIj5cbiAgICAgICAgPGtiLWlucHV0LWNoZWNrYm94IGxhYmVsPVwie3sgY2FtcG8uTGFiZWwgfX1cIiBbZm9ybV09XCJlbnRpZGFkZUZvcm1cIlxuICAgICAgICAgIFt2YWxpZGF0aW9uX21lc3NhZ2VzXT1cInZhbGlkYXRpb25fbWVzc2FnZXNbY2FtcG8uTm9tZV1cIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIlxuICAgICAgICAgIFtjYW1wb0ZvY29dPVwiY2FtcG8uQ2FtcG9Gb2NvXCIgW3JlYWRvbmx5XT1cImNhbXBvLlJlYWRPbmx5XCIgXG4gICAgICAgICAgW2l0ZW1DbGFzc109XCJpdGVtQ2xhc3NcIlxuICAgICAgICAgIFtsYWJlbENvbG9yXT1cImNhbXBvLkJ0bkNvbG9yXCI+XG5cbiAgICAgICAgPC9rYi1pbnB1dC1jaGVja2JveD5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC1zZWxlY3QnXCI+XG4gICAgICAgIDxrYi1pbnB1dC1zZWxlY3QgW2xhYmVsXT1cImNhbXBvLkxhYmVsID8/IGNhbXBvLk5vbWVcIiBbcGxhY2Vob2xkZXJdPVwiJ1NlbGVjaW9uYXIuLi4nXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIiBbZm9ybV09XCJlbnRpZGFkZUZvcm1cIiBbaXRlbnNdPVwiY2FtcG8uSXRlbnNcIiBbaXRlbUlkXT1cImNhbXBvLkl0ZW1JZCA/PyAnSWQnXCJcbiAgICAgICAgICBbaXRlbU5vbWVdPVwiY2FtcG8uSXRlbU5vbWUgPz8gJ05vbWUnXCIgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiXG4gICAgICAgICAgKHNlbGVjdENoYW5nZUVudGl0eSk9XCJjYW1wby5jaGFuZ2UgPyBjYW1wby5jaGFuZ2UoJGV2ZW50KSA6IGVtcHR5SGFuZGxlcigpXCIgW3JlYWRvbmx5XT1cImNhbXBvLlJlYWRPbmx5XCJcbiAgICAgICAgICBbaXRlbUNsYXNzXT1cIml0ZW1DbGFzc1wiPlxuICAgICAgICA8L2tiLWlucHV0LXNlbGVjdD5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC1yYWRpbydcIj5cbiAgICAgICAgPGtiLWlucHV0LXJhZGlvIFtsYWJlbF09XCJjYW1wby5MYWJlbCA/PyBjYW1wby5Ob21lXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjYW1wby5Ob21lXCIgW2Zvcm1dPVwiZW50aWRhZGVGb3JtXCJcbiAgICAgICAgICBbaXRlbnNdPVwiY2FtcG8uSXRlbnNcIiBbaXRlbUlkXT1cImNhbXBvLkl0ZW1JZFwiIFtpdGVtTm9tZV09XCJjYW1wby5JdGVtTm9tZVwiIFtyZWFkb25seV09XCJjYW1wby5SZWFkT25seVwiXG4gICAgICAgICAgW2l0ZW1DbGFzc109XCJpdGVtQ2xhc3NcIj5cbiAgICAgICAgPC9rYi1pbnB1dC1yYWRpbz5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC1wZXNxdWlzYSdcIj5cbiAgICAgICAgPGtiLWlucHV0LXBlc3F1aXNhICNwZXNxdWlzYUNlbnRyb0N1c3RvUGFpIFxuICAgICAgICAgIFtsYWJlbF09XCJjYW1wby5MYWJlbCA/PyBjYW1wby5Ob21lXCIgXG4gICAgICAgICAgW2NhbXBvSWRdPVwiY2FtcG8uSXRlbUlkXCJcbiAgICAgICAgICBbZm9jdXNGaWVsZF09XCJjYW1wby5mb2N1c0ZpZWxkXCJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIiBcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlBlc3F1aXNhci4uLlwiIFxuICAgICAgICAgIFtjYW1wb0Rpc3BsYXldPVwiY2FtcG8uSXRlbU5vbWUgPz8gJ05vbWUnXCIgXG4gICAgICAgICAgW2Zvcm1dPVwiZW50aWRhZGVGb3JtXCJcbiAgICAgICAgICBbdGlwb109XCJjYW1wby5UaXBvUGVzcXVpc2FcIiBcbiAgICAgICAgICBbdXJsSXRlbV09XCJjYW1wby5VcmxJdGVtXCIgXG4gICAgICAgICAgW21heF09XCJjYW1wby5UYW1hbmhvID8/ICc1MCdcIiBcbiAgICAgICAgICBbdXJsXT1cImNhbXBvLlVybFBlc3F1aXNhXCIgXG4gICAgICAgICAgW3JlYWRvbmx5XT1cImNhbXBvLlJlYWRPbmx5XCJcbiAgICAgICAgICAocGVzcXVpc2FDaGFuZ2UpPVwiY2FtcG8uY2hhbmdlID8gY2FtcG8uY2hhbmdlKCRldmVudCkgOiBlbXB0eUhhbmRsZXIoKVwiXG4gICAgICAgICAgW2l0ZW1DbGFzc109XCJpdGVtQ2xhc3NcIj5cbiAgICAgICAgPC9rYi1pbnB1dC1wZXNxdWlzYT5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC1idXR0b24nXCI+XG4gICAgICAgIDwhLS0gXG4gICAgICAgIDxrYi1idG4tYWN0aW9uIFt0aXRsZV09XCJjYW1wby5MYWJlbFwiIFtpY29uXT1cImNhbXBvLkljb25cIiBbaWNvblNyY109XCJjYW1wby5JY29uU3JjXCIgW2NvbG9yXT1cImNhbXBvLkJ0bkNvbG9yID8/ICdsaWdodCdcIiBcbiAgICAgICAgICBbZXhwYW5kXT1cImNhbXBvLkJ0bkV4cGFuZCA/PyAnYmxvY2snXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiB2YXIoLS1idG4tYWN0aW9uLW1hcmdpbi10b3AsIGF1dG8pO1wiPlxuICAgICAgICA8L2tiLWJ0bi1hY3Rpb24+XG4gICAgICAtLT5cbiAgICAgICAgPGlvbi1idXR0b24gW2V4cGFuZF09XCJjYW1wby5CdG5FeHBhbmQgPz8gJ2Jsb2NrJ1wiIFtjb2xvcl09XCJjYW1wby5CdG5Db2xvciA/PyAnbGlnaHQnXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2FtcG8uY2xpY2sgPyBjYW1wby5jbGljaygkZXZlbnQpIDogZW1wdHlIYW5kbGVyKClcIiBbc2l6ZV09XCJjYW1wby5CdG5TaXplID8/ICdkZWZhdWx0J1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImNhbXBvLlJlYWRPbmx5XCI+XG4gICAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiY2FtcG8uSWNvbiB8fCBjYW1wby5JY29uU3JjXCIgW25hbWVdPVwiY2FtcG8uSWNvblwiIFtzcmNdPVwiY2FtcG8uSWNvblNyY1wiPjwvaW9uLWljb24+XG4gICAgICAgICAge3sgY2FtcG8uTGFiZWwgfX1cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tY29sPlxuXG4gICAgICA8aW9uLWNvbCAqbmdJZj1cImNhbXBvLlRpcG8gPT0gJ2NvbCdcIiBzaXplLW1kPVwiMVwiIHNpemUteHM9XCIwXCI+XG5cbiAgICAgIDwvaW9uLWNvbD5cblxuICAgICAgPGlvbi1jb2wgKm5nSWY9XCJjYW1wby5UaXBvID09ICdzdWItdGl0dWxvJ1wiIHNpemU9XCIxMlwiPlxuICAgICAgICA8aW9uLWxpc3QgbGluZXM9XCJub25lXCIgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiPlxuICAgICAgICAgIDxpb24tbGlzdC1oZWFkZXIgY29sb3I9XCJwcmltYXJ5XCIgW3N0eWxlXT1cImNhbXBvLkNhbXBvU3R5bGUgPz8gJydcIj4gXG4gICAgICAgICAgICA8aW9uLWxhYmVsIFtzdHlsZV09XCJjYW1wby5MYWJlbFN0eWxlID8/ICcnXCI+e3sgY2FtcG8uTGFiZWwgfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1saXN0LWhlYWRlcj5cbiAgICAgICAgPC9pb24tbGlzdD5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9pb24tcm93PlxuXG4gIDwhLS1cbiAgICA8aW9uLWNvbCBjbGFzcz1cInNlbGVjdCBpb24tbm8tbWFyZ2luIGlvbi1uby1wYWRkaW5nXCI+XG4gICAgICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCI+XG4gICAgICAgIDxpb24tbGFiZWw+VG90YWxpemFkb3I8L2lvbi1sYWJlbD5cbiAgICAgICAgPGlvbi1jaGVja2JveCBzbG90PVwic3RhcnRcIiBmb3JtQ29udHJvbE5hbWU9XCJUb3RhbGl6YWRvclwiPjwvaW9uLWNoZWNrYm94PlxuICAgICAgPC9pb24taXRlbT5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgY2xhc3M9XCJzZWxlY3QgaW9uLW5vLW1hcmdpbiBpb24tbm8tcGFkZGluZ1wiPlxuICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiPlxuICAgICAgICA8aW9uLWxhYmVsPkluYXRpdm88L2lvbi1sYWJlbD5cbiAgICAgICAgPGlvbi1jaGVja2JveCBzbG90PVwic3RhcnRcIiBmb3JtQ29udHJvbE5hbWU9XCJJbmF0aXZvXCI+PC9pb24tY2hlY2tib3g+XG4gICAgICA8L2lvbi1pdGVtPlxuICAgIDwvaW9uLWNvbD5cbiAgICAtLT5cbjwvZm9ybT4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvZW50aXR5LWVkaXQvZW50aXR5LWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvZW50aXR5LWVkaXQvZW50aXR5LWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWtCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7Ozs7OztBQVVqRSxNQUFNLE9BQU8sbUJBQW1CO0lBVzlCLFlBQW9CLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBRnpCLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFDdkIsYUFBUSxHQUFXLEVBQUUsQ0FBQztJQUcvQixDQUFDO0lBRUQsUUFBUTtRQUNOLDJCQUEyQjtJQUM3QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsMENBQTBDO1FBRTFDLDhCQUE4QjtRQUM5Qix5QkFBeUI7UUFDekIsOENBQThDO1FBQzlDLEtBQUs7UUFDTCw0QkFBNEI7SUFDOUIsQ0FBQztJQUVELFlBQVk7SUFFWixDQUFDOzhHQS9CVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixrT0NWaEMsOCtPQThJTzs7MkZEcElNLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxnQkFBZ0I7MkVBTWpCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE5nWm9uZSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQmFzZU1vZGVsLCBIdG1sUm93IH0gZnJvbSAnYXBwcHJvamVjdC1saWInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrYi1lbnRpdHktZWRpdCcsXHJcbiAgLy9zdGFuZGFsb25lOiB0cnVlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lbnRpdHktZWRpdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2VudGl0eS1lZGl0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRW50aXR5RWRpdENvbXBvbmVudDxUIGV4dGVuZHMgQmFzZU1vZGVsPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgZW50aWRhZGU6IFQgfCBudWxsO1xyXG4gIC8vZW50aWRhZGU6IGFueTtcclxuICAvKipcclxuICAgKiBWYWkgcmVjZWJlciBtb250YWRvIGRvIGJhc2UgY2FkYXN0cm9cclxuICAgKi9cclxuICBASW5wdXQoKSBjYW1wb3M6IEh0bWxSb3dbXTtcclxuICBASW5wdXQoKSBlbnRpZGFkZUZvcm06IEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSB2YWxpZGF0aW9uX21lc3NhZ2VzOiBhbnk7XHJcbiAgQElucHV0KCkgaXRlbUNsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHJvd0NsYXNzOiBzdHJpbmcgPSBcIlwiO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcclxuXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vdGhpcy5nZXRFbnRpZGFkZUNhbXBvcygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RW50aWRhZGVDYW1wb3MoKSB7XHJcbiAgICAvL3RoaXMuZW50aWRhZGUgPSBuZXcgdGhpcy5lbnRpZGFkZVRpcG8oKTtcclxuXHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmVudGlkYWRlKTtcclxuICAgIC8vIHRoaXMubmdab25lLnJ1bigoKSA9PiBcclxuICAgIC8vICAgdGhpcy5jYW1wb3MgPSB0aGlzLmVudGlkYWRlLmdldEh0bWxGb3JtKClcclxuICAgIC8vICk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNhbXBvcyk7XHJcbiAgfVxyXG5cclxuICBlbXB0eUhhbmRsZXIoKSB7XHJcblxyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSAqbmdJZj1cImNhbXBvcyAmJiBjYW1wb3MubGVuZ3RoXCIgW2Zvcm1Hcm91cF09XCJlbnRpZGFkZUZvcm1cIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiPlxyXG5cclxuXHJcbiAgPGlvbi1yb3cgKm5nRm9yPVwibGV0IGxpbmhhIG9mIGNhbXBvc1wiIFtjbGFzc109XCJyb3dDbGFzc1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY2FtcG8gb2YgbGluaGEuTGluaGFcIj5cclxuICAgICAgPCEtLSB7eyBjYW1wby5Ob21lIH19IHt7IGNhbXBvLlRpcG8gfX0gLS0+XHJcblxyXG4gICAgICA8aW9uLWNvbCBbc2l6ZU1kXT1cImNhbXBvLlNpemVcIiAqbmdJZj1cImNhbXBvLlRpcG8gPT0gJ2lucHV0LXRleHQnXCI+XHJcbiAgICAgICAgPGtiLWlucHV0LXRleHQgbGFiZWw9XCJ7e2NhbXBvLkxhYmVsID8/IGNhbXBvLk5vbWV9fVwiIFtwbGFjZWhvbGRlcl09XCJjYW1wby5QbGFjZUhvbGRlclZpc2l2ZWwgPyAoY2FtcG8uTGFiZWwgPz8gY2FtcG8uTm9tZSArICcuLi4nKSA6ICcnXCJcclxuICAgICAgICAgIFtmb3JtXT1cImVudGlkYWRlRm9ybVwiIFttYXhdPVwiY2FtcG8uVGFtYW5obyA/PyAnNTAnXCIgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIiBbY2FtcG9Gb2NvXT1cImNhbXBvLkNhbXBvRm9jb1wiIFtyZWFkb25seV09XCJjYW1wby5SZWFkT25seVwiICAgICAgICAgIFxyXG4gICAgICAgICAgW3R5cGVdPVwiY2FtcG8uVGlwb0lucHV0ID8/ICd0ZXh0J1wiIFxyXG4gICAgICAgICAgW3Nob3dTZWVQYXNzd29yZF09XCJjYW1wby5UaXBvSW5wdXQgPT0gJ3Bhc3N3b3JkJ1wiXHJcbiAgICAgICAgICBbc2hvd0N1c3RvbUFjdGlvbl09XCJjYW1wby5JbnB1dEFjdGlvblwiXHJcbiAgICAgICAgICBbY3VzdG9tQWN0aW9uSWNvbl09XCJjYW1wby5JbnB1dEFjdGlvbkljb24gPz8gJ3NlYXJjaC1vdXRsaW5lJ1wiXHJcbiAgICAgICAgICAoY3VzdG9tQWN0aW9uQ2xpY2spPVwiY2FtcG8uY2xpY2sgPyBjYW1wby5jbGljaygkZXZlbnQpIDogZW1wdHlIYW5kbGVyKClcIlxyXG5cclxuICAgICAgICAgIFtpdGVtQ2xhc3NdPVwiaXRlbUNsYXNzXCI+XHJcbiAgICAgICAgPC9rYi1pbnB1dC10ZXh0PlxyXG4gICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICA8aW9uLWNvbCBbc2l6ZU1kXT1cImNhbXBvLlNpemVcIiAqbmdJZj1cImNhbXBvLlRpcG8gPT0gJ2lucHV0LWFyZWEnXCI+XHJcbiAgICAgICAgPGtiLWlucHV0LWFyZWEgbGFiZWw9XCJ7e2NhbXBvLkxhYmVsID8/IGNhbXBvLk5vbWV9fVwiIFtwbGFjZWhvbGRlcl09XCJjYW1wby5QbGFjZUhvbGRlclZpc2l2ZWwgPyAoY2FtcG8uTGFiZWwgPz8gY2FtcG8uTm9tZSArICcuLi4nKSA6ICcnXCJcclxuICAgICAgICAgIFtmb3JtXT1cImVudGlkYWRlRm9ybVwiIFttYXhdPVwiY2FtcG8uVGFtYW5obyA/PyAnNTAnXCIgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIiBbY2FtcG9Gb2NvXT1cImNhbXBvLkNhbXBvRm9jb1wiIFtyZWFkb25seV09XCJjYW1wby5SZWFkT25seVwiIFtsaW5oYXNdPVwiY2FtcG8uTGluaGFzID8/IDVcIlxyXG4gICAgICAgICAgW2l0ZW1DbGFzc109XCJpdGVtQ2xhc3NcIj5cclxuICAgICAgICA8L2tiLWlucHV0LWFyZWE+XHJcbiAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgIDxpb24tY29sIFtzaXplTWRdPVwiY2FtcG8uU2l6ZVwiICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnaW5wdXQtY2VwJ1wiPlxyXG4gICAgICAgIDxrYi1pbnB1dC1jZXAgbGFiZWw9XCJ7e2NhbXBvLkxhYmVsID8/IGNhbXBvLk5vbWV9fVwiIFtmb3JtXT1cImVudGlkYWRlRm9ybVwiXHJcbiAgICAgICAgICBbdmFsaWRhdGlvbl9tZXNzYWdlc109XCJ2YWxpZGF0aW9uX21lc3NhZ2VzW2NhbXBvLk5vbWVdXCIgW2Zvcm1Db250cm9sTmFtZV09XCJjYW1wby5Ob21lXCJcclxuICAgICAgICAgIFtjYW1wb0ZvY29dPVwiY2FtcG8uQ2FtcG9Gb2NvXCIgW3JlYWRvbmx5XT1cImNhbXBvLlJlYWRPbmx5XCJcclxuICAgICAgICAgIFtpdGVtQ2xhc3NdPVwiaXRlbUNsYXNzXCJcclxuICAgICAgICAgIChnZXRSZXN1bHRhZG9zKT1cImNhbXBvLmNoYW5nZSA/IGNhbXBvLmNoYW5nZSgkZXZlbnQpIDogZW1wdHlIYW5kbGVyKClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwva2ItaW5wdXQtY2VwPlxyXG4gICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICA8aW9uLWNvbCBbc2l6ZU1kXT1cImNhbXBvLlNpemVcIiAqbmdJZj1cImNhbXBvLlRpcG8gPT0gJ2lucHV0LXZhbG9yJ1wiPlxyXG4gICAgICAgIDxrYi1pbnB1dC12YWxvciBsYWJlbD1cInt7Y2FtcG8uTGFiZWwgPz8gY2FtcG8uTm9tZX19XCIgW2Zvcm1dPVwiZW50aWRhZGVGb3JtXCIgW21heF09XCJjYW1wby5UYW1hbmhvID8/ICc1MCdcIlxyXG4gICAgICAgICAgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FtcG8uTm9tZVwiXHJcbiAgICAgICAgICBbY2FtcG9Gb2NvXT1cImNhbXBvLkNhbXBvRm9jb1wiIFtyZWFkb25seV09XCJjYW1wby5SZWFkT25seVwiXHJcbiAgICAgICAgICBbaXRlbUNsYXNzXT1cIml0ZW1DbGFzc1wiPlxyXG4gICAgICAgIDwva2ItaW5wdXQtdmFsb3I+XHJcbiAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgIDxpb24tY29sIFtzaXplTWRdPVwiY2FtcG8uU2l6ZVwiICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnaW5wdXQtZm9ybWF0J1wiPlxyXG4gICAgICAgIDxrYi1pbnB1dC1mb3JtYXQgbGFiZWw9XCJ7e2NhbXBvLkxhYmVsID8/IGNhbXBvLk5vbWV9fVwiIFtmb3JtXT1cImVudGlkYWRlRm9ybVwiIFttYXhdPVwiY2FtcG8uVGFtYW5obyA/PyAnNTAnXCJcclxuICAgICAgICAgIFt2YWxpZGF0aW9uX21lc3NhZ2VzXT1cInZhbGlkYXRpb25fbWVzc2FnZXNbY2FtcG8uTm9tZV1cIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIlxyXG4gICAgICAgICAgW2NhbXBvRm9jb109XCJjYW1wby5DYW1wb0ZvY29cIiBbcmVhZG9ubHldPVwiY2FtcG8uUmVhZE9ubHlcIiBbZm9ybWF0b109XCJjYW1wby5Gb3JtYXRvID8/ICcnXCJcclxuICAgICAgICAgIFtpdGVtQ2xhc3NdPVwiaXRlbUNsYXNzXCI+XHJcbiAgICAgICAgPC9rYi1pbnB1dC1mb3JtYXQ+XHJcbiAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgIDxpb24tY29sIFtzaXplTWRdPVwiY2FtcG8uU2l6ZVwiICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnaW5wdXQtY2hlY2tib3gnXCI+XHJcbiAgICAgICAgPGtiLWlucHV0LWNoZWNrYm94IGxhYmVsPVwie3sgY2FtcG8uTGFiZWwgfX1cIiBbZm9ybV09XCJlbnRpZGFkZUZvcm1cIlxyXG4gICAgICAgICAgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiY2FtcG8uTm9tZVwiXHJcbiAgICAgICAgICBbY2FtcG9Gb2NvXT1cImNhbXBvLkNhbXBvRm9jb1wiIFtyZWFkb25seV09XCJjYW1wby5SZWFkT25seVwiIFxyXG4gICAgICAgICAgW2l0ZW1DbGFzc109XCJpdGVtQ2xhc3NcIlxyXG4gICAgICAgICAgW2xhYmVsQ29sb3JdPVwiY2FtcG8uQnRuQ29sb3JcIj5cclxuXHJcbiAgICAgICAgPC9rYi1pbnB1dC1jaGVja2JveD5cclxuICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC1zZWxlY3QnXCI+XHJcbiAgICAgICAgPGtiLWlucHV0LXNlbGVjdCBbbGFiZWxdPVwiY2FtcG8uTGFiZWwgPz8gY2FtcG8uTm9tZVwiIFtwbGFjZWhvbGRlcl09XCInU2VsZWNpb25hci4uLidcIlxyXG4gICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJjYW1wby5Ob21lXCIgW2Zvcm1dPVwiZW50aWRhZGVGb3JtXCIgW2l0ZW5zXT1cImNhbXBvLkl0ZW5zXCIgW2l0ZW1JZF09XCJjYW1wby5JdGVtSWQgPz8gJ0lkJ1wiXHJcbiAgICAgICAgICBbaXRlbU5vbWVdPVwiY2FtcG8uSXRlbU5vbWUgPz8gJ05vbWUnXCIgW3ZhbGlkYXRpb25fbWVzc2FnZXNdPVwidmFsaWRhdGlvbl9tZXNzYWdlc1tjYW1wby5Ob21lXVwiXHJcbiAgICAgICAgICAoc2VsZWN0Q2hhbmdlRW50aXR5KT1cImNhbXBvLmNoYW5nZSA/IGNhbXBvLmNoYW5nZSgkZXZlbnQpIDogZW1wdHlIYW5kbGVyKClcIiBbcmVhZG9ubHldPVwiY2FtcG8uUmVhZE9ubHlcIlxyXG4gICAgICAgICAgW2l0ZW1DbGFzc109XCJpdGVtQ2xhc3NcIj5cclxuICAgICAgICA8L2tiLWlucHV0LXNlbGVjdD5cclxuICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgPGlvbi1jb2wgW3NpemVNZF09XCJjYW1wby5TaXplXCIgKm5nSWY9XCJjYW1wby5UaXBvID09ICdpbnB1dC1yYWRpbydcIj5cclxuICAgICAgICA8a2ItaW5wdXQtcmFkaW8gW2xhYmVsXT1cImNhbXBvLkxhYmVsID8/IGNhbXBvLk5vbWVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIiBbZm9ybV09XCJlbnRpZGFkZUZvcm1cIlxyXG4gICAgICAgICAgW2l0ZW5zXT1cImNhbXBvLkl0ZW5zXCIgW2l0ZW1JZF09XCJjYW1wby5JdGVtSWRcIiBbaXRlbU5vbWVdPVwiY2FtcG8uSXRlbU5vbWVcIiBbcmVhZG9ubHldPVwiY2FtcG8uUmVhZE9ubHlcIlxyXG4gICAgICAgICAgW2l0ZW1DbGFzc109XCJpdGVtQ2xhc3NcIj5cclxuICAgICAgICA8L2tiLWlucHV0LXJhZGlvPlxyXG4gICAgICA8L2lvbi1jb2w+XHJcblxyXG4gICAgICA8aW9uLWNvbCBbc2l6ZU1kXT1cImNhbXBvLlNpemVcIiAqbmdJZj1cImNhbXBvLlRpcG8gPT0gJ2lucHV0LXBlc3F1aXNhJ1wiPlxyXG4gICAgICAgIDxrYi1pbnB1dC1wZXNxdWlzYSAjcGVzcXVpc2FDZW50cm9DdXN0b1BhaSBcclxuICAgICAgICAgIFtsYWJlbF09XCJjYW1wby5MYWJlbCA/PyBjYW1wby5Ob21lXCIgXHJcbiAgICAgICAgICBbY2FtcG9JZF09XCJjYW1wby5JdGVtSWRcIlxyXG4gICAgICAgICAgW2ZvY3VzRmllbGRdPVwiY2FtcG8uZm9jdXNGaWVsZFwiXHJcbiAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cImNhbXBvLk5vbWVcIiBcclxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiUGVzcXVpc2FyLi4uXCIgXHJcbiAgICAgICAgICBbY2FtcG9EaXNwbGF5XT1cImNhbXBvLkl0ZW1Ob21lID8/ICdOb21lJ1wiIFxyXG4gICAgICAgICAgW2Zvcm1dPVwiZW50aWRhZGVGb3JtXCJcclxuICAgICAgICAgIFt0aXBvXT1cImNhbXBvLlRpcG9QZXNxdWlzYVwiIFxyXG4gICAgICAgICAgW3VybEl0ZW1dPVwiY2FtcG8uVXJsSXRlbVwiIFxyXG4gICAgICAgICAgW21heF09XCJjYW1wby5UYW1hbmhvID8/ICc1MCdcIiBcclxuICAgICAgICAgIFt1cmxdPVwiY2FtcG8uVXJsUGVzcXVpc2FcIiBcclxuICAgICAgICAgIFtyZWFkb25seV09XCJjYW1wby5SZWFkT25seVwiXHJcbiAgICAgICAgICAocGVzcXVpc2FDaGFuZ2UpPVwiY2FtcG8uY2hhbmdlID8gY2FtcG8uY2hhbmdlKCRldmVudCkgOiBlbXB0eUhhbmRsZXIoKVwiXHJcbiAgICAgICAgICBbaXRlbUNsYXNzXT1cIml0ZW1DbGFzc1wiPlxyXG4gICAgICAgIDwva2ItaW5wdXQtcGVzcXVpc2E+XHJcbiAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgIDxpb24tY29sIFtzaXplTWRdPVwiY2FtcG8uU2l6ZVwiICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnaW5wdXQtYnV0dG9uJ1wiPlxyXG4gICAgICAgIDwhLS0gXHJcbiAgICAgICAgPGtiLWJ0bi1hY3Rpb24gW3RpdGxlXT1cImNhbXBvLkxhYmVsXCIgW2ljb25dPVwiY2FtcG8uSWNvblwiIFtpY29uU3JjXT1cImNhbXBvLkljb25TcmNcIiBbY29sb3JdPVwiY2FtcG8uQnRuQ29sb3IgPz8gJ2xpZ2h0J1wiIFxyXG4gICAgICAgICAgW2V4cGFuZF09XCJjYW1wby5CdG5FeHBhbmQgPz8gJ2Jsb2NrJ1wiIHN0eWxlPVwibWFyZ2luLXRvcDogdmFyKC0tYnRuLWFjdGlvbi1tYXJnaW4tdG9wLCBhdXRvKTtcIj5cclxuICAgICAgICA8L2tiLWJ0bi1hY3Rpb24+XHJcbiAgICAgIC0tPlxyXG4gICAgICAgIDxpb24tYnV0dG9uIFtleHBhbmRdPVwiY2FtcG8uQnRuRXhwYW5kID8/ICdibG9jaydcIiBbY29sb3JdPVwiY2FtcG8uQnRuQ29sb3IgPz8gJ2xpZ2h0J1wiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2FtcG8uY2xpY2sgPyBjYW1wby5jbGljaygkZXZlbnQpIDogZW1wdHlIYW5kbGVyKClcIiBbc2l6ZV09XCJjYW1wby5CdG5TaXplID8/ICdkZWZhdWx0J1wiXHJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiY2FtcG8uUmVhZE9ubHlcIj5cclxuICAgICAgICAgIDxpb24taWNvbiAqbmdJZj1cImNhbXBvLkljb24gfHwgY2FtcG8uSWNvblNyY1wiIFtuYW1lXT1cImNhbXBvLkljb25cIiBbc3JjXT1cImNhbXBvLkljb25TcmNcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAge3sgY2FtcG8uTGFiZWwgfX1cclxuICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgIDxpb24tY29sICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnY29sJ1wiIHNpemUtbWQ9XCIxXCIgc2l6ZS14cz1cIjBcIj5cclxuXHJcbiAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgIDxpb24tY29sICpuZ0lmPVwiY2FtcG8uVGlwbyA9PSAnc3ViLXRpdHVsbydcIiBzaXplPVwiMTJcIj5cclxuICAgICAgICA8aW9uLWxpc3QgbGluZXM9XCJub25lXCIgY2xhc3M9XCJpb24tbm8tcGFkZGluZ1wiPlxyXG4gICAgICAgICAgPGlvbi1saXN0LWhlYWRlciBjb2xvcj1cInByaW1hcnlcIiBbc3R5bGVdPVwiY2FtcG8uQ2FtcG9TdHlsZSA/PyAnJ1wiPiBcclxuICAgICAgICAgICAgPGlvbi1sYWJlbCBbc3R5bGVdPVwiY2FtcG8uTGFiZWxTdHlsZSA/PyAnJ1wiPnt7IGNhbXBvLkxhYmVsIH19PC9pb24tbGFiZWw+XHJcbiAgICAgICAgICA8L2lvbi1saXN0LWhlYWRlcj5cclxuICAgICAgICA8L2lvbi1saXN0PlxyXG4gICAgICA8L2lvbi1jb2w+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2lvbi1yb3c+XHJcblxyXG4gIDwhLS1cclxuICAgIDxpb24tY29sIGNsYXNzPVwic2VsZWN0IGlvbi1uby1tYXJnaW4gaW9uLW5vLXBhZGRpbmdcIj5cclxuICAgICAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiPlxyXG4gICAgICAgIDxpb24tbGFiZWw+VG90YWxpemFkb3I8L2lvbi1sYWJlbD5cclxuICAgICAgICA8aW9uLWNoZWNrYm94IHNsb3Q9XCJzdGFydFwiIGZvcm1Db250cm9sTmFtZT1cIlRvdGFsaXphZG9yXCI+PC9pb24tY2hlY2tib3g+XHJcbiAgICAgIDwvaW9uLWl0ZW0+XHJcbiAgICA8L2lvbi1jb2w+XHJcbiAgICA8aW9uLWNvbCBjbGFzcz1cInNlbGVjdCBpb24tbm8tbWFyZ2luIGlvbi1uby1wYWRkaW5nXCI+XHJcbiAgICAgIDxpb24taXRlbSBsaW5lcz1cIm5vbmVcIj5cclxuICAgICAgICA8aW9uLWxhYmVsPkluYXRpdm88L2lvbi1sYWJlbD5cclxuICAgICAgICA8aW9uLWNoZWNrYm94IHNsb3Q9XCJzdGFydFwiIGZvcm1Db250cm9sTmFtZT1cIkluYXRpdm9cIj48L2lvbi1jaGVja2JveD5cclxuICAgICAgPC9pb24taXRlbT5cclxuICAgIDwvaW9uLWNvbD5cclxuICAgIC0tPlxyXG48L2Zvcm0+Il19
@@ -246,11 +246,11 @@ export class GridViewComponent {
246
246
  this.selecionarChecked.emit();
247
247
  }
248
248
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: GridViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
249
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: GridViewComponent, selector: "kb-grid-view", inputs: { empresaId: "empresaId", tabelaCampos: "tabelaCampos", dataSet: "dataSet", minHeight: "minHeight", inMemoryPagination: "inMemoryPagination", filteredDataSet: "filteredDataSet", pageOffset: "pageOffset" }, outputs: { selecionarItem: "selecionarItem", excluirItem: "excluirItem", selecionarChecked: "selecionarChecked" }, usesOnChanges: true, ngImport: i0, template: "<div style=\"font-size: 14px;\">\n <div id=\"painelExportacao\">\n <ion-row *ngIf=\"inMemoryPagination\">\n <!--\n <ion-col size=\"2\">\n <ion-button *ngIf=\"tabelaCampos.Selecionar === true\" size=\"small\" fill=\"outline\" color=\"medium\"\n (click)=\"selecionarTodos()\">Selecionar Todos</ion-button>\n </ion-col>\n -->\n <ion-col size=\"3\">\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\n (click)=\"anterior()\">\n <ion-icon name=\"chevron-back-outline\" slot=\"start\"></ion-icon>\n Anterior\n </ion-button>\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\n (click)=\"proximo()\">\n Pr\u00F3ximo\n <ion-icon name=\"chevron-forward-outline\" slot=\"end\"></ion-icon>\n </ion-button> \n </ion-col>\n <ion-col size=\"2\">\n <span style=\"display: block; margin-top: 10px;\" *ngIf=\"inMemoryPagination && totalRec > 0\">Exibindo {{ start + 1 }} - {{ (start + pageOffset) < totalRec ? (start + pageOffset) : totalRec }} total de {{ totalRec }} \n </span> \n </ion-col>\n </ion-row>\n </div>\n <div style=\"width: 100%;\" [style.min-height]=\"minHeight\">\n <table class=\"grid\">\n <thead>\n <tr style=\"background-color: var(--ion-color-bluetool); color: white;\">\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"width: 3%; text-align: center;\">\n <input type=\"checkbox\" [(ngModel)]=\"todosSelecionados\" (change)=\"selecionarTodos()\">\n </td>\n <td *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\">\n <div style=\"position: relative;\">\n <div style=\"display: flex; justify-content: space-between; align-items: end;\">\n <strong>{{ col.Titulo }}</strong>\n <div>\n <ion-icon *ngIf=\"col.Ordem\" slot=\"end\" (click)=\"ordenar(col)\" style=\"cursor: pointer;\"\n [name]=\"col.OrdemStatus == 0 ? 'swap-vertical' : (col.OrdemStatus == 1 ? 'arrow-up': 'arrow-down')\"></ion-icon>\n \n <ion-icon *ngIf=\"col.Filtrar\" name=\"funnel\" (click)=\"setFiltroOpen(col)\" slot=\"end\"></ion-icon>\n </div>\n </div>\n \n \n <div class=\"caixaGrande\" [hidden]=\"!col.FiltroVisivel\" tabindex=\"-1\"\n style=\"color: black; display: block; position: absolute; z-index: 800; width: 210px; right: 0px; opacity: 0.9;\">\n Filtrar:\n <div>\n <div style=\"display: flex; justify-content: space-between; align-items: start;\">\n <select style=\"width: 80px;\" [(ngModel)]=\"col.FiltroOperador\">\n <option>=</option>\n <option>&gt;=</option>\n <option>&lt;=</option>\n <option>tem</option>\n </select>\n <input style=\"width: 100px;\" type=\"text\" [(ngModel)]=\"col.FiltroValor\">\n </div>\n <ion-button size=\"small\" color=\"medium\" expand=\"block\" (click)=\"filtrar(col)\">Filtrar</ion-button>\n <ion-button size=\"small\" color=\"light\" expand=\"block\" (click)=\"limpar()\">Limpar</ion-button>\n </div>\n <div *ngIf=\"col.Valores\" class=\"scroll-container\" style=\"height: 200px; overflow-y: scroll;\">\n <div *ngFor=\"let valor of col.Valores\">\n <input type=\"checkbox\" [(ngModel)]=\"valor.Selecionado\">\n <span>{{ valor.Valor }}</span>\n </div>\n </div>\n </div>\n \n </div>\n </td>\n <td *ngIf=\"tabelaCampos.Excluir === true\">\n \n </td>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of pageDataSet\" [class]=\"item == selectedItem ? 'item-selecionado' : '' \">\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"text-align: center; cursor: auto;\">\n <input type=\"checkbox\" [(ngModel)]=\"item[tabelaCampos.CampoSelecionar]\" (change)=\"selecionadoChecked()\">\n </td>\n <td class=\"col\" *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\"\n [style.text-align]=\"col.Tipo == 'number' ? 'right' : (col.Alinhamento ?? 'left')\"\n (click)=\"col.ClickFunction ? col.ClickFunction(item) : selecionarLinha(item)\">\n <span *ngIf=\"col.Pipe == 'date'\">{{ item[col.Campo] | date: 'dd/MM/yyyy' }}</span> \n <span *ngIf=\"col.Pipe == 'valor'\">{{ item[col.Campo] | valorFormat }}</span>\n <span *ngIf=\"col.RenderFunction\" [innerHtml]=\"col.RenderFunction(item) | safeHtml\"></span>\n <span *ngIf=\"!col.Pipe && !col.RenderFunction\">{{ item[col.Campo] ?? col.Default }}</span>\n </td>\n <td *ngIf=\"tabelaCampos.Excluir === true\" style=\"padding: 0px; text-align: center;\">\n <ion-button size=\"small\" color=\"danger\" fill=\"outline\" style=\"transform: scale(0.85);\" (click)=\"excluirLinha(item)\">\n <ion-icon name=\"trash\"></ion-icon>\n </ion-button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n \n <ion-modal [isOpen]=\"isFiltroOpen\" (didDismiss)=\"isFiltroOpen = false;\">\n <ng-template>\n <ion-content class=\"ion-padding\">\n <div class=\"caixaGrande\">\n Filtrar:\n <div *ngIf=\"selectedColuna.Valores\">\n <div *ngFor=\"let valor of selectedColuna.Valores\">\n <span>{{ valor }}</span>\n </div>\n </div>\n </div>\n </ion-content>\n </ng-template>\n </ion-modal>\n </div>", styles: [".grid{width:100%}.grid thead td{border:1px solid gray;padding:4px;color:#000!important}.grid tbody td{border:1px solid gray;padding:2px 4px}.grid tbody tr{cursor:pointer}.grid tbody tr:hover{background-color:#699ccc80;transition-duration:.5s}.grid tbody tr.item-selecionado{background-color:#699ccc33}[hidden]{display:none!important}\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.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "translucent", "trigger"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i4.ValorFormatPipe, name: "valorFormat" }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] }); }
249
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: GridViewComponent, selector: "kb-grid-view", inputs: { empresaId: "empresaId", tabelaCampos: "tabelaCampos", dataSet: "dataSet", minHeight: "minHeight", inMemoryPagination: "inMemoryPagination", filteredDataSet: "filteredDataSet", pageOffset: "pageOffset" }, outputs: { selecionarItem: "selecionarItem", excluirItem: "excluirItem", selecionarChecked: "selecionarChecked" }, usesOnChanges: true, ngImport: i0, template: "<div style=\"font-size: 14px;\">\r\n <div id=\"painelExportacao\">\r\n <ion-row *ngIf=\"inMemoryPagination\">\r\n <!--\r\n <ion-col size=\"2\">\r\n <ion-button *ngIf=\"tabelaCampos.Selecionar === true\" size=\"small\" fill=\"outline\" color=\"medium\"\r\n (click)=\"selecionarTodos()\">Selecionar Todos</ion-button>\r\n </ion-col>\r\n -->\r\n <ion-col size=\"3\">\r\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\r\n (click)=\"anterior()\">\r\n <ion-icon name=\"chevron-back-outline\" slot=\"start\"></ion-icon>\r\n Anterior\r\n </ion-button>\r\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\r\n (click)=\"proximo()\">\r\n Pr\u00F3ximo\r\n <ion-icon name=\"chevron-forward-outline\" slot=\"end\"></ion-icon>\r\n </ion-button> \r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <span style=\"display: block; margin-top: 10px;\" *ngIf=\"inMemoryPagination && totalRec > 0\">Exibindo {{ start + 1 }} - {{ (start + pageOffset) < totalRec ? (start + pageOffset) : totalRec }} total de {{ totalRec }} \r\n </span> \r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n <div style=\"width: 100%;\" [style.min-height]=\"minHeight\">\r\n <table class=\"grid\">\r\n <thead>\r\n <tr style=\"background-color: var(--ion-color-bluetool); color: white;\">\r\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"width: 3%; text-align: center;\">\r\n <input type=\"checkbox\" [(ngModel)]=\"todosSelecionados\" (change)=\"selecionarTodos()\">\r\n </td>\r\n <td *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\">\r\n <div style=\"position: relative;\">\r\n <div style=\"display: flex; justify-content: space-between; align-items: end;\">\r\n <strong>{{ col.Titulo }}</strong>\r\n <div>\r\n <ion-icon *ngIf=\"col.Ordem\" slot=\"end\" (click)=\"ordenar(col)\" style=\"cursor: pointer;\"\r\n [name]=\"col.OrdemStatus == 0 ? 'swap-vertical' : (col.OrdemStatus == 1 ? 'arrow-up': 'arrow-down')\"></ion-icon>\r\n \r\n <ion-icon *ngIf=\"col.Filtrar\" name=\"funnel\" (click)=\"setFiltroOpen(col)\" slot=\"end\"></ion-icon>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"caixaGrande\" [hidden]=\"!col.FiltroVisivel\" tabindex=\"-1\"\r\n style=\"color: black; display: block; position: absolute; z-index: 800; width: 210px; right: 0px; opacity: 0.9;\">\r\n Filtrar:\r\n <div>\r\n <div style=\"display: flex; justify-content: space-between; align-items: start;\">\r\n <select style=\"width: 80px;\" [(ngModel)]=\"col.FiltroOperador\">\r\n <option>=</option>\r\n <option>&gt;=</option>\r\n <option>&lt;=</option>\r\n <option>tem</option>\r\n </select>\r\n <input style=\"width: 100px;\" type=\"text\" [(ngModel)]=\"col.FiltroValor\">\r\n </div>\r\n <ion-button size=\"small\" color=\"medium\" expand=\"block\" (click)=\"filtrar(col)\">Filtrar</ion-button>\r\n <ion-button size=\"small\" color=\"light\" expand=\"block\" (click)=\"limpar()\">Limpar</ion-button>\r\n </div>\r\n <div *ngIf=\"col.Valores\" class=\"scroll-container\" style=\"height: 200px; overflow-y: scroll;\">\r\n <div *ngFor=\"let valor of col.Valores\">\r\n <input type=\"checkbox\" [(ngModel)]=\"valor.Selecionado\">\r\n <span>{{ valor.Valor }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </td>\r\n <td *ngIf=\"tabelaCampos.Excluir === true\">\r\n \r\n </td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of pageDataSet\" [class]=\"item == selectedItem ? 'item-selecionado' : '' \">\r\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"text-align: center; cursor: auto;\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item[tabelaCampos.CampoSelecionar]\" (change)=\"selecionadoChecked()\">\r\n </td>\r\n <td class=\"col\" *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\"\r\n [style.text-align]=\"col.Tipo == 'number' ? 'right' : (col.Alinhamento ?? 'left')\"\r\n (click)=\"col.ClickFunction ? col.ClickFunction(item) : selecionarLinha(item)\">\r\n <span *ngIf=\"col.Pipe == 'date'\">{{ item[col.Campo] | date: 'dd/MM/yyyy' }}</span> \r\n <span *ngIf=\"col.Pipe == 'valor'\">{{ item[col.Campo] | valorFormat }}</span>\r\n <span *ngIf=\"col.RenderFunction\" [innerHtml]=\"col.RenderFunction(item) | safeHtml\"></span>\r\n <span *ngIf=\"!col.Pipe && !col.RenderFunction\">{{ item[col.Campo] ?? col.Default }}</span>\r\n </td>\r\n <td *ngIf=\"tabelaCampos.Excluir === true\" style=\"padding: 0px; text-align: center;\">\r\n <ion-button size=\"small\" color=\"danger\" fill=\"outline\" style=\"transform: scale(0.85);\" (click)=\"excluirLinha(item)\">\r\n <ion-icon name=\"trash\"></ion-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n \r\n <ion-modal [isOpen]=\"isFiltroOpen\" (didDismiss)=\"isFiltroOpen = false;\">\r\n <ng-template>\r\n <ion-content class=\"ion-padding\">\r\n <div class=\"caixaGrande\">\r\n Filtrar:\r\n <div *ngIf=\"selectedColuna.Valores\">\r\n <div *ngFor=\"let valor of selectedColuna.Valores\">\r\n <span>{{ valor }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-modal>\r\n </div>", styles: [".grid{width:100%}.grid thead td{border:1px solid gray;padding:4px;color:#000!important}.grid tbody td{border:1px solid gray;padding:2px 4px}.grid tbody tr{cursor:pointer}.grid tbody tr:hover{background-color:#699ccc80;transition-duration:.5s}.grid tbody tr.item-selecionado{background-color:#699ccc33}[hidden]{display:none!important}\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.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonModal, selector: "ion-modal", inputs: ["animated", "keepContentsMounted", "backdropBreakpoint", "backdropDismiss", "breakpoints", "canDismiss", "cssClass", "enterAnimation", "event", "handle", "handleBehavior", "initialBreakpoint", "isOpen", "keyboardClose", "leaveAnimation", "mode", "presentingElement", "showBackdrop", "translucent", "trigger"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i4.ValorFormatPipe, name: "valorFormat" }, { kind: "pipe", type: i4.SafeHtmlPipe, name: "safeHtml" }] }); }
250
250
  }
251
251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: GridViewComponent, decorators: [{
252
252
  type: Component,
253
- args: [{ selector: 'kb-grid-view', template: "<div style=\"font-size: 14px;\">\n <div id=\"painelExportacao\">\n <ion-row *ngIf=\"inMemoryPagination\">\n <!--\n <ion-col size=\"2\">\n <ion-button *ngIf=\"tabelaCampos.Selecionar === true\" size=\"small\" fill=\"outline\" color=\"medium\"\n (click)=\"selecionarTodos()\">Selecionar Todos</ion-button>\n </ion-col>\n -->\n <ion-col size=\"3\">\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\n (click)=\"anterior()\">\n <ion-icon name=\"chevron-back-outline\" slot=\"start\"></ion-icon>\n Anterior\n </ion-button>\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\n (click)=\"proximo()\">\n Pr\u00F3ximo\n <ion-icon name=\"chevron-forward-outline\" slot=\"end\"></ion-icon>\n </ion-button> \n </ion-col>\n <ion-col size=\"2\">\n <span style=\"display: block; margin-top: 10px;\" *ngIf=\"inMemoryPagination && totalRec > 0\">Exibindo {{ start + 1 }} - {{ (start + pageOffset) < totalRec ? (start + pageOffset) : totalRec }} total de {{ totalRec }} \n </span> \n </ion-col>\n </ion-row>\n </div>\n <div style=\"width: 100%;\" [style.min-height]=\"minHeight\">\n <table class=\"grid\">\n <thead>\n <tr style=\"background-color: var(--ion-color-bluetool); color: white;\">\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"width: 3%; text-align: center;\">\n <input type=\"checkbox\" [(ngModel)]=\"todosSelecionados\" (change)=\"selecionarTodos()\">\n </td>\n <td *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\">\n <div style=\"position: relative;\">\n <div style=\"display: flex; justify-content: space-between; align-items: end;\">\n <strong>{{ col.Titulo }}</strong>\n <div>\n <ion-icon *ngIf=\"col.Ordem\" slot=\"end\" (click)=\"ordenar(col)\" style=\"cursor: pointer;\"\n [name]=\"col.OrdemStatus == 0 ? 'swap-vertical' : (col.OrdemStatus == 1 ? 'arrow-up': 'arrow-down')\"></ion-icon>\n \n <ion-icon *ngIf=\"col.Filtrar\" name=\"funnel\" (click)=\"setFiltroOpen(col)\" slot=\"end\"></ion-icon>\n </div>\n </div>\n \n \n <div class=\"caixaGrande\" [hidden]=\"!col.FiltroVisivel\" tabindex=\"-1\"\n style=\"color: black; display: block; position: absolute; z-index: 800; width: 210px; right: 0px; opacity: 0.9;\">\n Filtrar:\n <div>\n <div style=\"display: flex; justify-content: space-between; align-items: start;\">\n <select style=\"width: 80px;\" [(ngModel)]=\"col.FiltroOperador\">\n <option>=</option>\n <option>&gt;=</option>\n <option>&lt;=</option>\n <option>tem</option>\n </select>\n <input style=\"width: 100px;\" type=\"text\" [(ngModel)]=\"col.FiltroValor\">\n </div>\n <ion-button size=\"small\" color=\"medium\" expand=\"block\" (click)=\"filtrar(col)\">Filtrar</ion-button>\n <ion-button size=\"small\" color=\"light\" expand=\"block\" (click)=\"limpar()\">Limpar</ion-button>\n </div>\n <div *ngIf=\"col.Valores\" class=\"scroll-container\" style=\"height: 200px; overflow-y: scroll;\">\n <div *ngFor=\"let valor of col.Valores\">\n <input type=\"checkbox\" [(ngModel)]=\"valor.Selecionado\">\n <span>{{ valor.Valor }}</span>\n </div>\n </div>\n </div>\n \n </div>\n </td>\n <td *ngIf=\"tabelaCampos.Excluir === true\">\n \n </td>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of pageDataSet\" [class]=\"item == selectedItem ? 'item-selecionado' : '' \">\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"text-align: center; cursor: auto;\">\n <input type=\"checkbox\" [(ngModel)]=\"item[tabelaCampos.CampoSelecionar]\" (change)=\"selecionadoChecked()\">\n </td>\n <td class=\"col\" *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\"\n [style.text-align]=\"col.Tipo == 'number' ? 'right' : (col.Alinhamento ?? 'left')\"\n (click)=\"col.ClickFunction ? col.ClickFunction(item) : selecionarLinha(item)\">\n <span *ngIf=\"col.Pipe == 'date'\">{{ item[col.Campo] | date: 'dd/MM/yyyy' }}</span> \n <span *ngIf=\"col.Pipe == 'valor'\">{{ item[col.Campo] | valorFormat }}</span>\n <span *ngIf=\"col.RenderFunction\" [innerHtml]=\"col.RenderFunction(item) | safeHtml\"></span>\n <span *ngIf=\"!col.Pipe && !col.RenderFunction\">{{ item[col.Campo] ?? col.Default }}</span>\n </td>\n <td *ngIf=\"tabelaCampos.Excluir === true\" style=\"padding: 0px; text-align: center;\">\n <ion-button size=\"small\" color=\"danger\" fill=\"outline\" style=\"transform: scale(0.85);\" (click)=\"excluirLinha(item)\">\n <ion-icon name=\"trash\"></ion-icon>\n </ion-button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n \n <ion-modal [isOpen]=\"isFiltroOpen\" (didDismiss)=\"isFiltroOpen = false;\">\n <ng-template>\n <ion-content class=\"ion-padding\">\n <div class=\"caixaGrande\">\n Filtrar:\n <div *ngIf=\"selectedColuna.Valores\">\n <div *ngFor=\"let valor of selectedColuna.Valores\">\n <span>{{ valor }}</span>\n </div>\n </div>\n </div>\n </ion-content>\n </ng-template>\n </ion-modal>\n </div>", styles: [".grid{width:100%}.grid thead td{border:1px solid gray;padding:4px;color:#000!important}.grid tbody td{border:1px solid gray;padding:2px 4px}.grid tbody tr{cursor:pointer}.grid tbody tr:hover{background-color:#699ccc80;transition-duration:.5s}.grid tbody tr.item-selecionado{background-color:#699ccc33}[hidden]{display:none!important}\n"] }]
253
+ args: [{ selector: 'kb-grid-view', template: "<div style=\"font-size: 14px;\">\r\n <div id=\"painelExportacao\">\r\n <ion-row *ngIf=\"inMemoryPagination\">\r\n <!--\r\n <ion-col size=\"2\">\r\n <ion-button *ngIf=\"tabelaCampos.Selecionar === true\" size=\"small\" fill=\"outline\" color=\"medium\"\r\n (click)=\"selecionarTodos()\">Selecionar Todos</ion-button>\r\n </ion-col>\r\n -->\r\n <ion-col size=\"3\">\r\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\r\n (click)=\"anterior()\">\r\n <ion-icon name=\"chevron-back-outline\" slot=\"start\"></ion-icon>\r\n Anterior\r\n </ion-button>\r\n <ion-button *ngIf=\"inMemoryPagination === true\" size=\"small\" fill=\"outline\" color=\"bluetool\"\r\n (click)=\"proximo()\">\r\n Pr\u00F3ximo\r\n <ion-icon name=\"chevron-forward-outline\" slot=\"end\"></ion-icon>\r\n </ion-button> \r\n </ion-col>\r\n <ion-col size=\"2\">\r\n <span style=\"display: block; margin-top: 10px;\" *ngIf=\"inMemoryPagination && totalRec > 0\">Exibindo {{ start + 1 }} - {{ (start + pageOffset) < totalRec ? (start + pageOffset) : totalRec }} total de {{ totalRec }} \r\n </span> \r\n </ion-col>\r\n </ion-row>\r\n </div>\r\n <div style=\"width: 100%;\" [style.min-height]=\"minHeight\">\r\n <table class=\"grid\">\r\n <thead>\r\n <tr style=\"background-color: var(--ion-color-bluetool); color: white;\">\r\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"width: 3%; text-align: center;\">\r\n <input type=\"checkbox\" [(ngModel)]=\"todosSelecionados\" (change)=\"selecionarTodos()\">\r\n </td>\r\n <td *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\">\r\n <div style=\"position: relative;\">\r\n <div style=\"display: flex; justify-content: space-between; align-items: end;\">\r\n <strong>{{ col.Titulo }}</strong>\r\n <div>\r\n <ion-icon *ngIf=\"col.Ordem\" slot=\"end\" (click)=\"ordenar(col)\" style=\"cursor: pointer;\"\r\n [name]=\"col.OrdemStatus == 0 ? 'swap-vertical' : (col.OrdemStatus == 1 ? 'arrow-up': 'arrow-down')\"></ion-icon>\r\n \r\n <ion-icon *ngIf=\"col.Filtrar\" name=\"funnel\" (click)=\"setFiltroOpen(col)\" slot=\"end\"></ion-icon>\r\n </div>\r\n </div>\r\n \r\n \r\n <div class=\"caixaGrande\" [hidden]=\"!col.FiltroVisivel\" tabindex=\"-1\"\r\n style=\"color: black; display: block; position: absolute; z-index: 800; width: 210px; right: 0px; opacity: 0.9;\">\r\n Filtrar:\r\n <div>\r\n <div style=\"display: flex; justify-content: space-between; align-items: start;\">\r\n <select style=\"width: 80px;\" [(ngModel)]=\"col.FiltroOperador\">\r\n <option>=</option>\r\n <option>&gt;=</option>\r\n <option>&lt;=</option>\r\n <option>tem</option>\r\n </select>\r\n <input style=\"width: 100px;\" type=\"text\" [(ngModel)]=\"col.FiltroValor\">\r\n </div>\r\n <ion-button size=\"small\" color=\"medium\" expand=\"block\" (click)=\"filtrar(col)\">Filtrar</ion-button>\r\n <ion-button size=\"small\" color=\"light\" expand=\"block\" (click)=\"limpar()\">Limpar</ion-button>\r\n </div>\r\n <div *ngIf=\"col.Valores\" class=\"scroll-container\" style=\"height: 200px; overflow-y: scroll;\">\r\n <div *ngFor=\"let valor of col.Valores\">\r\n <input type=\"checkbox\" [(ngModel)]=\"valor.Selecionado\">\r\n <span>{{ valor.Valor }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </td>\r\n <td *ngIf=\"tabelaCampos.Excluir === true\">\r\n \r\n </td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of pageDataSet\" [class]=\"item == selectedItem ? 'item-selecionado' : '' \">\r\n <td *ngIf=\"tabelaCampos.Selecionar === true\" style=\"text-align: center; cursor: auto;\">\r\n <input type=\"checkbox\" [(ngModel)]=\"item[tabelaCampos.CampoSelecionar]\" (change)=\"selecionadoChecked()\">\r\n </td>\r\n <td class=\"col\" *ngFor=\"let col of tabelaCampos.Colunas\" [style.width]=\"col.Tamanho\"\r\n [style.text-align]=\"col.Tipo == 'number' ? 'right' : (col.Alinhamento ?? 'left')\"\r\n (click)=\"col.ClickFunction ? col.ClickFunction(item) : selecionarLinha(item)\">\r\n <span *ngIf=\"col.Pipe == 'date'\">{{ item[col.Campo] | date: 'dd/MM/yyyy' }}</span> \r\n <span *ngIf=\"col.Pipe == 'valor'\">{{ item[col.Campo] | valorFormat }}</span>\r\n <span *ngIf=\"col.RenderFunction\" [innerHtml]=\"col.RenderFunction(item) | safeHtml\"></span>\r\n <span *ngIf=\"!col.Pipe && !col.RenderFunction\">{{ item[col.Campo] ?? col.Default }}</span>\r\n </td>\r\n <td *ngIf=\"tabelaCampos.Excluir === true\" style=\"padding: 0px; text-align: center;\">\r\n <ion-button size=\"small\" color=\"danger\" fill=\"outline\" style=\"transform: scale(0.85);\" (click)=\"excluirLinha(item)\">\r\n <ion-icon name=\"trash\"></ion-icon>\r\n </ion-button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n \r\n <ion-modal [isOpen]=\"isFiltroOpen\" (didDismiss)=\"isFiltroOpen = false;\">\r\n <ng-template>\r\n <ion-content class=\"ion-padding\">\r\n <div class=\"caixaGrande\">\r\n Filtrar:\r\n <div *ngIf=\"selectedColuna.Valores\">\r\n <div *ngFor=\"let valor of selectedColuna.Valores\">\r\n <span>{{ valor }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ion-content>\r\n </ng-template>\r\n </ion-modal>\r\n </div>", styles: [".grid{width:100%}.grid thead td{border:1px solid gray;padding:4px;color:#000!important}.grid tbody td{border:1px solid gray;padding:2px 4px}.grid tbody tr{cursor:pointer}.grid tbody tr:hover{background-color:#699ccc80;transition-duration:.5s}.grid tbody tr.item-selecionado{background-color:#699ccc33}[hidden]{display:none!important}\n"] }]
254
254
  }], ctorParameters: () => [], propDecorators: { empresaId: [{
255
255
  type: Input
256
256
  }], tabelaCampos: [{
@@ -272,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImpor
272
272
  }], pageOffset: [{
273
273
  type: Input
274
274
  }] } });
275
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2dyaWQtdmlldy9ncmlkLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvZ3JpZC12aWV3L2dyaWQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFjLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT3BFLE1BQU0sT0FBTyxpQkFBaUI7SUFnRTVCO1FBNURTLGNBQVMsR0FBVyxPQUFPLENBQUM7UUFDNUIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRW5DLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdqRCwyREFBMkQ7UUFDM0QsV0FBTSxHQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0RSxtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2Ysd01BQXdNO1FBQ3hNLDZNQUE2TTtRQUM3TSxxTkFBcU47UUFDck4seU1BQXlNO1FBQ3pNLDhNQUE4TTtRQUM5TSxNQUFNO1FBQ04sSUFBSTtRQUVKLDBCQUEwQjtRQUMxQiwyRkFBMkY7UUFDM0YsOEZB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QyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9OOztnQkFDQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEgsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLO1NBQzNCO2FBQU07WUFDTCxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksTUFBTSxFQUFFO2dCQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNMO2lCQUFNLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxRQUFRLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZQOztnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUcsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07U0FDN0I7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVE7UUFDcEIsR0FBRyxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUE7UUFDdEMsSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO1lBQzFCLG1DQUFtQztTQUNwQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPO0lBQ1Asa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzhHQTFSVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrWkNSOUIsK2tNQW1IUTs7MkZEM0dLLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjO3dEQUtmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkE2QkUsZUFBZTtzQkFBdkIsS0FBSztnQkFnQkcsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JpZENvbHVuYSwgR3JpZFRhYmVsYSwgTGliU2VydmljZSB9IGZyb20gJ2FwcHByb2plY3QtbGliJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2ItZ3JpZC12aWV3JywgICAgXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZ3JpZC12aWV3LmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBHcmlkVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZW1wcmVzYUlkOiBudW1iZXI7XG4gIEBJbnB1dCgpIHRhYmVsYUNhbXBvczogR3JpZFRhYmVsYTtcbiAgQElucHV0KCkgZGF0YVNldDogQXJyYXk8YW55PjtcbiAgQElucHV0KCkgbWluSGVpZ2h0OiBzdHJpbmcgPSAnNDAwcHgnO1xuICBASW5wdXQoKSBpbk1lbW9yeVBhZ2luYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgc2VsZWNpb25hckl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBleGNsdWlySXRlbSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNlbGVjaW9uYXJDaGVja2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHNlbGVjdGVkSXRlbTogYW55O1xuICAvL2lucHV0cyA9IGluamVjdChuZXcgSW5qZWN0aW9uVG9rZW48YW55PigndGl0bGUgaW5wdXRzJykpO1xuICBncnVwb3M6IGFueVtdID0gW3sgQ29sdW5hOiAnJywgVGFiZWxhOiBudWxsLCBEYWRvczogbnVsbCwgTml2ZWw6IDAgfV07XG5cbiAgLy8gdGFiZWxhQ2FtcG9zID0ge1xuICAvLyAgIFNlbGVjaW9uYXI6IGZhbHNlLFxuICAvLyAgIEV4cG9ydGFyOiB0cnVlLFxuICAvLyAgIENvbHVuYXM6IFtcbiAgLy8gICAgIHsgQ2FtcG86ICdJZCcsIFRpdHVsbzogJ0lkJywgVGFtYW5obzogJzEwJScsIE9yZGVtOiB0cnVlLCBHcnVwbzogZmFsc2UsIEZpbHRyYXI6IHRydWUsIE9yZGVtU3RhdHVzOiAwLCBUaXBvOiAnbnVtYmVyJywgVmFsb3JlczogW10sIEZpbHRyb09wZXJhZG9yOiAnPScsIEZpbHRyb1ZhbG9yOiAnJywgRmlsdHJvVmlzaXZlbDogZmFsc2UgfSxcbiAgLy8gICAgIHsgQ2FtcG86ICdNYXJjYScsIFRpdHVsbzogJ01hcmNhJywgVGFtYW5obzogJzI1JScsIE9yZGVtOiB0cnVlLCBHcnVwbzogdHJ1ZSwgRmlsdHJhcjogdHJ1ZSwgT3JkZW1TdGF0dXM6IDAsIFRpcG86ICdzdHJpbmcnLCBWYWxvcmVzOiBbXSwgRmlsdHJvT3BlcmFkb3I6ICc9JywgRmlsdHJvVmFsb3I6ICcnLCBGaWx0cm9WaXNpdmVsOiBmYWxzZSB9LFxuICAvLyAgICAgeyBDYW1wbzogJ0Rlc2NyaWNhbycsIFRpdHVsbzogJ0Rlc2NyacOnw6NvJywgVGFtYW5obzogJzI1JScsIE9yZGVtOiB0cnVlLCBHcnVwbzogdHJ1ZSwgRmlsdHJhcjogdHJ1ZSwgT3JkZW1TdGF0dXM6IDAsIFRpcG86ICdzdHJpbmcnLCBWYWxvcmVzOiBbXSwgRmlsdHJvT3BlcmFkb3I6ICc9JywgRmlsdHJvVmFsb3I6ICcnLCBGaWx0cm9WaXNpdmVsOiBmYWxzZSB9LFxuICAvLyAgICAgeyBDYW1wbzogJ0RhdGEnLCBUaXR1bG86ICdEYXRhJywgVGFtYW5obzogJzIwJScsIE9yZGVtOiB0cnVlLCBHcnVwbzogdHJ1ZSwgRmlsdHJhcjogdHJ1ZSwgT3JkZW1TdGF0dXM6IDAsIFRpcG86ICdkYXRlJywgVmFsb3JlczogW10sIEZpbHRyb09wZXJhZG9yOiAnPScsIEZpbHRyb1ZhbG9yOiAnJywgRmlsdHJvVmlzaXZlbDogZmFsc2UgfSxcbiAgLy8gICAgIHsgQ2FtcG86ICdWYWxvcicsIFRpdHVsbzogJ1ZhbG9yJywgVGFtYW5obzogJzIwJScsIE9yZGVtOiB0cnVlLCBHcnVwbzogZmFsc2UsIEZpbHRyYXI6IHRydWUsIE9yZGVtU3RhdHVzOiAwLCBUaXBvOiAnbnVtYmVyJywgVmFsb3JlczogW10sIEZpbHRyb09wZXJhZG9yOiAnPScsIEZpbHRyb1ZhbG9yOiAnJywgRmlsdHJvVmlzaXZlbDogZmFsc2UgfSxcbiAgLy8gICBdXG4gIC8vIH1cblxuICAvLyBkYXRhU2V0OiBBcnJheTxhbnk+ID0gW1xuICAvLyAgIHsgSWQ6IDEsIE1hcmNhOiAnQXBwbGUnLCBEZXNjcmljYW86ICdJUGhvbmUgMTQnLCBEYXRhOiAnMjAyMy0wNS0wMScsIFZhbG9yOiA3ODk5Ljk5IH0sXG4gIC8vICAgeyBJZDogMiwgTWFyY2E6ICdBcHBsZScsIERlc2NyaWNhbzogJ01hY0Jvb2sgUHJvJywgRGF0YTogJzIwMjMtMDYtMDEnLCBWYWxvcjogMTc5OTkuOTkgfSxcbiAgLy8gICB7IElkOiAzLCBNYXJjYTogJ1NhbXN1bmcnLCBEZXNjcmljYW86ICdHYWxheHkgUzIzJywgRGF0YTogJzIwMjMtMDUtMDEnLCBWYWxvcjogNjg5OS45OSB9LFxuICAvLyAgIHsgSWQ6IDQsIE1hcmNhOiAnU29ueScsIERlc2NyaWNhbzogJ1BTIDUnLCBEYXRhOiAnMjAyMy0wNi0wMScsIFZhbG9yOiA0ODk5Ljk5IH0sXG4gIC8vICAgeyBJZDogNSwgTWFyY2E6ICdTYW1zdW5nJywgRGVzY3JpY2FvOiAnV2F0Y2ggMjMnLCBEYXRhOiAnMjAyMy0wNS0wMScsIFZhbG9yOiAxODk5Ljk5IH0sXG4gIC8vIF1cblxuXG5cbiAgZ3JvdXBzID0gW11cbiAgQElucHV0KCkgZmlsdGVyZWREYXRhU2V0ID0gW107XG4gIHBhZ2VEYXRhU2V0ID0gW107XG5cblxuICAvL2FycmF5IGNvbSBvcyBjYW1wb3MgZmlsdHJhZG9zIHBhcmEgZGlzcGxheVxuICBjYW1wb3NEaXNwbGF5ID0gW107XG5cbiAgLy9maWx0cm9cbiAgaXNGaWx0cm9PcGVuOiBib29sZWFuID0gZmFsc2U7XG4gIHNlbGVjdGVkQ29sdW5hOiBhbnk7XG4gIHRvZG9zU2VsZWNpb25hZG9zOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLy9wYWdpbmF0aW9uXG4gIC8vcMOhZ2luYSBhdHVhbFxuICBwYWdlOiBudW1iZXIgPSAxO1xuICAvL3JlZ2lzdHJvcyBwb3IgcMOhZ2luYVxuICBASW5wdXQoKSBwYWdlT2Zmc2V0OiBudW1iZXIgPSAyMDtcbiAgLy90b3RhbCBkZSByZWdpc3Ryb3NcbiAgdG90YWxSZWM6IG51bWJlcjtcbiAgLy90b3RhbCBkZSBww6FnaW5hc1xuICB0b3RhbFBhZ2VzOiBudW1iZXI7XG4gIC8vaW5kZXhhZG9yIGRlIHBhZ2luYXNcbiAgcGFnZXM6IG51bWJlcltdOyAgXG4gIHN0YXJ0OiBudW1iZXI7XG5cblxuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIHZhbG9yZXNGaWx0cm8oKSB7XG4gICAgdGhpcy50YWJlbGFDYW1wb3MuQ29sdW5hcy5mb3JFYWNoKGMgPT4ge1xuICAgICAgaWYgKGMuRmlsdHJhcikge1xuICAgICAgICAvL3Byb2pldGFyIGEgY29sdW5hXG4gICAgICAgIGxldCBpbml0aWFsID0gW107XG4gICAgICAgIGxldCB2YWxvcmVzID0gdGhpcy5kYXRhU2V0Lm1hcChkID0+IGRbYy5DYW1wb10pO1xuICAgICAgICBjLlZhbG9yZXMgPSB2YWxvcmVzLmZpbHRlcigodmFsdWUsIGluZGV4LCBzZWxmKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHNlbGYuaW5kZXhPZih2YWx1ZSkgPT09IGluZGV4O1xuICAgICAgICB9KS5tYXAodiA9PiB7IHJldHVybiB7IFNlbGVjaW9uYWRvOiBmYWxzZSwgVmFsb3I6IHYgfSB9KTtcbiAgICAgIC8vICAgY29uc29sZS5sb2coYy5DYW1wbywgdmFsb3Jlcyk7XG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGMuVmFsb3JlcylcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG5cblxuICAgIC8vdGhpcy5pbmljaWFsaXphR3J1cG8oKTtcbiAgICAvL3RoaXMuYWdydXBhcignTWFyY2EnKTtcbiAgICAvL2NvbnNvbGUubG9nKCdpbnB1dHMnLCB0aGlzLmlucHV0cyk7XG4gICAgLy9jb25zb2xlLmxvZygnSW5wdXQgZW1wcmVzYScsIHRoaXMuZW1wcmVzYUlkKTtcbiAgICBHcmlkVGFiZWxhLmluaXQodGhpcy50YWJlbGFDYW1wb3MpO1xuICAgIHRoaXMudmFsb3Jlc0ZpbHRybygpO1xuICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0ID0gdGhpcy5kYXRhU2V0O1xuICAgIGNvbnNvbGUubG9nKCdJbml0IFRhYmVsYSBjYW1wb3MnLCB0aGlzLnRhYmVsYUNhbXBvcyk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgY29uc29sZS5sb2coJ09uIGNoYW5nZXMgVGFiZWxhIGNhbXBvcycsIHRoaXMudGFiZWxhQ2FtcG9zKTtcbiAgICAvL2V2ZW50byBjaGFtYWRvIHF1YW5kbyBvIGRhdGFzZXQgZm9yIGF0dWFsaXphZG9cbiAgICAvL2luaWNpYWxpemFyIHZhcnMgZGUgcGFnaW5hw6fDo29cbiAgICB0aGlzLmluaXRQYWdlKCk7XG4gICAgdGhpcy50b2Rvc1NlbGVjaW9uYWRvcyA9IGZhbHNlO1xuICB9XG5cbiAgaW5pdFBhZ2UoKSB7XG4gICAgdGhpcy5wYWdlID0gMTtcbiAgICB0aGlzLnRvdGFsUmVjID0gdGhpcy5maWx0ZXJlZERhdGFTZXQubGVuZ3RoO1xuICAgIHRoaXMudG90YWxQYWdlcyA9IE1hdGguY2VpbCh0aGlzLnRvdGFsUmVjIC8gdGhpcy5wYWdlT2Zmc2V0KTsgICAgXG5cbiAgICBpZiAodGhpcy5pbk1lbW9yeVBhZ2luYXRpb24gPT09IHRydWUpIHtcbiAgICAgIHRoaXMuZ2V0UmVnaXN0cm9zUGFnZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhZ2VEYXRhU2V0ID0gdGhpcy5maWx0ZXJlZERhdGFTZXQ7XG4gICAgfVxuICB9XG5cbiAgZ2V0UmVnaXN0cm9zUGFnZSgpIHtcbiAgICB0aGlzLnN0YXJ0ID0gKHRoaXMucGFnZSAtIDEpICogdGhpcy5wYWdlT2Zmc2V0O1xuICAgIGNvbnNvbGUubG9nKCdkYXRhc2V0JywgdGhpcy5maWx0ZXJlZERhdGFTZXQpO1xuICAgIGNvbnNvbGUubG9nKCdzdGFydCcsIHRoaXMuc3RhcnQpO1xuICAgIGNvbnNvbGUubG9nKCdvZmZzZXQnLCB0aGlzLnBhZ2VPZmZzZXQpO1xuICAgIHRoaXMucGFnZURhdGFTZXQgPSB0aGlzLmZpbHRlcmVkRGF0YVNldC5zbGljZSh0aGlzLnN0YXJ0LCAodGhpcy5zdGFydCArIHRoaXMucGFnZU9mZnNldCkpO1xuICAgIGNvbnNvbGUubG9nKCdwYWdlIGRhdGFzZXQnLCB0aGlzLnBhZ2VEYXRhU2V0KTtcbiAgfVxuXG4gIHByb3hpbW8oKSB7XG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgdGhpcy5wYWdlKys7XG4gICAgICB0aGlzLmdldFJlZ2lzdHJvc1BhZ2UoKTtcbiAgICAgIHRoaXMuZ2VyYXJBcnJheVBhZ3MoKTtcbiAgICB9XG4gIH1cblxuICBhbnRlcmlvcigpIHtcbiAgICBpZiAodGhpcy5wYWdlID4gMSkge1xuICAgICAgdGhpcy5wYWdlLS07XG4gICAgICB0aGlzLmdldFJlZ2lzdHJvc1BhZ2UoKTtcbiAgICAgIHRoaXMuZ2VyYXJBcnJheVBhZ3MoKTtcbiAgICB9XG4gIH1cblxuICBnZXJhckFycmF5UGFncygpIHtcblxuICB9XG5cbiAgaW5pY2lhbGl6YUdydXBvKCkge1xuICAgIC8vaW5pY2lhbGl6YXIgbyBwcmltZWlybyBncnVwbyAnZGVmYXVsdCdcbiAgICB0aGlzLmNhbXBvc0Rpc3BsYXkgPSB0aGlzLnRhYmVsYUNhbXBvcy5Db2x1bmFzO1xuICAgIHRoaXMuZ3J1cG9zWzBdLlRhYmVsYSA9IHRoaXMuY2FtcG9zRGlzcGxheTtcbiAgICB0aGlzLmdydXBvc1swXS5EYWRvcyA9IHRoaXMuZGF0YVNldDtcbiAgfVxuXG4gIGFncnVwYXIoY2FtcG86IHN0cmluZykge1xuICAgIHRoaXMuZ3JvdXBzLnB1c2goY2FtcG8pO1xuICAgIGxldCBsZXZlbCA9IDA7XG4gICAgZm9yIChsZXQgZyBpbiB0aGlzLmdyb3Vwcykge1xuICAgICAgY29uc29sZS5sb2coZyk7XG4gICAgICAvL2ZpbHRyYXIgb3MgZGFkb3NcbiAgICAgIGxldCByZXN1bHQgPSB0aGlzLmRhdGFTZXQucmVkdWNlKChncm91cCwgZGF0YSkgPT4ge1xuICAgICAgICBjb25zdCB7IGcgfSA9IGRhdGE7XG4gICAgICAgIGdyb3VwW2ddID0gZ3JvdXBbY2FtcG9dID8/IFtdO1xuICAgICAgICBncm91cFtnXS5wdXNoKGRhdGEpO1xuICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICB9LCB7fSk7XG4gICAgICBjb25zb2xlLmxvZyhyZXN1bHQpO1xuICAgIH1cblxuICB9XG5cbiAgZmlsdHJhckNhbXBvcyhjb2x1bmEgPSAnJykge1xuICAgIGlmIChjb2x1bmEgIT0gJycpIHtcblxuICAgIH0gZWxzZSB7XG5cbiAgICB9XG4gIH1cblxuICBmaWx0cmFyKGNvbDogR3JpZENvbHVuYSkge1xuICAgIC8vY29uc29sZS5sb2coJ2ZpbHRyYXInLCBjb2wpO1xuICAgIGlmIChjb2wuVmFsb3JlcyAmJiBjb2wuVmFsb3Jlcy5maW5kKHYgPT4gdi5TZWxlY2lvbmFkbykgIT0gbnVsbCkge1xuICAgICAgY29uc3QgdmFsb3JlcyA9IGNvbC5WYWxvcmVzLmZpbHRlcih2ID0+IHYuU2VsZWNpb25hZG8pLm1hcCh2ID0+IHYuVmFsb3IpO1xuXG4gICAgICAvL2ZpbHRyYXIgcG9yIHZhbG9yZXMgc2VsZWNpb25hZG9zXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YVNldCA9IHRoaXMuZGF0YVNldC5maWx0ZXIoZCA9PiB2YWxvcmVzLmluZGV4T2YoZFtjb2wuQ2FtcG9dKSA+IC0xKTtcbiAgICB9IGVsc2UgaWYgKGNvbC5GaWx0cm9PcGVyYWRvciAmJiBjb2wuRmlsdHJvVmFsb3IpIHtcbiAgICAgIC8vY29uc29sZS5sb2coY29sLkZpbHRyb09wZXJhZG9yLCBjb2wuRmlsdHJvVmFsb3IpXG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YVNldCA9IHRoaXMuZGF0YVNldC5maWx0ZXIoZCA9PiB7XG4gICAgICAgICAgc3dpdGNoIChjb2wuRmlsdHJvT3BlcmFkb3IpIHtcbiAgICAgICAgICAgIGNhc2UgXCI9XCI6XG4gICAgICAgICAgICAgIHJldHVybiBkW2NvbC5DYW1wb10gPT0gY29sLkZpbHRyb1ZhbG9yO1xuICAgICAgICAgICAgY2FzZSBcIj49XCI6XG4gICAgICAgICAgICAgIGlmIChjb2wuVGlwbyA9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChkW2NvbC5DYW1wb10sIHRydWUpID49IExpYlNlcnZpY2Uuc3RyaW5nVG9EZWNpbWFsKGNvbC5GaWx0cm9WYWxvciwgdHJ1ZSk7ICBcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb2wuVGlwbyA9PSAnZGF0YScpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy5kYXRhVG9TdHJpbmcoZFtjb2wuQ2FtcG9dKSkgPj0gbmV3IERhdGUodGhpcy5kYXRhVG9TdHJpbmcoY29sLkZpbHRyb1ZhbG9yKSk7ICBcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgIHJldHVybiBkW2NvbC5DYW1wb10gPj0gY29sLkZpbHRyb1ZhbG9yO1xuICAgICAgICAgICAgY2FzZSBcIjw9XCI6XG4gICAgICAgICAgICAgIGlmIChjb2wuVGlwbyA9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHJldHVybiBMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChkW2NvbC5DYW1wb10sIHRydWUpIDw9IExpYlNlcnZpY2Uuc3RyaW5nVG9EZWNpbWFsKGNvbC5GaWx0cm9WYWxvciwgdHJ1ZSk7ICBcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgIHJldHVybiBkW2NvbC5DYW1wb10gPD0gY29sLkZpbHRyb1ZhbG9yO1xuICAgICAgICAgICAgY2FzZSBcInRlbVwiOlxuICAgICAgICAgICAgICByZXR1cm4gZFtjb2wuQ2FtcG9dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKGNvbC5GaWx0cm9WYWxvci50b0xvd2VyQ2FzZSgpKSA+IC0xO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgICAgfSBjYXRjaChleCkge1xuICAgICAgICBjb25zb2xlLmxvZyhleCk7XG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0ID0gdGhpcy5kYXRhU2V0O1xuICAgICAgfVxuICAgIH1cbiAgICBjb2wuRmlsdHJvVmlzaXZlbCA9IGZhbHNlO1xuXG4gICAgdGhpcy5pbml0UGFnZSgpO1xuICB9XG5cbiAgZ2V0UGFnZSgpIHtcblxuICB9XG5cbiAgbGltcGFyKCkge1xuICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0ID0gdGhpcy5kYXRhU2V0O1xuICB9XG5cbiAgZGF0YVRvU3RyaW5nKGRhdGE6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHJldHVybiBkYXRhLnNwbGl0KCcvJykucmV2ZXJzZSgpLmpvaW4oJy0nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFwiXCI7XG4gICAgfVxuICB9XG5cbiAgb3JkZW5hcihjb2w6IEdyaWRDb2x1bmEpIHtcbiAgICBpZiAoY29sLk9yZGVtU3RhdHVzID09IDAgfHwgY29sLk9yZGVtU3RhdHVzID09IC0xKSB7XG4gICAgICBpZiAoY29sLlRpcG8gPT0gJ2RhdGEnKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0LnNvcnQoKGEsIGIpID0+IHRoaXMuZGF0YVRvU3RyaW5nKGFbY29sLkNhbXBvXSkgPiB0aGlzLmRhdGFUb1N0cmluZyhiW2NvbC5DYW1wb10pID8gMSA6ICh0aGlzLmRhdGFUb1N0cmluZyhhW2NvbC5DYW1wb10pIDwgdGhpcy5kYXRhVG9TdHJpbmcoYltjb2wuQ2FtcG9dKSA/IC0xIDogMCkpO1xuICAgICAgfSBlbHNlIGlmIChjb2wuVGlwbyA9PSAnbnVtYmVyJykge1xuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YVNldC5zb3J0KChhLCBiKSA9PiBMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChhW2NvbC5DYW1wb10pID4gTGliU2VydmljZS5zdHJpbmdUb0RlY2ltYWwoYltjb2wuQ2FtcG9dKSA/IDEgOiAoTGliU2VydmljZS5zdHJpbmdUb0RlY2ltYWwoYVtjb2wuQ2FtcG9dKSA8IExpYlNlcnZpY2Uuc3RyaW5nVG9EZWNpbWFsKGJbY29sLkNhbXBvXSkgPyAtMSA6IDApKTtcbiAgICAgIH0gZWxzZSBcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGFTZXQuc29ydCgoYSwgYikgPT4gYVtjb2wuQ2FtcG9dID4gYltjb2wuQ2FtcG9dID8gMSA6IChhW2NvbC5DYW1wb10gPCBiW2NvbC5DYW1wb10gPyAtMSA6IDApKTtcbiAgICAgIGNvbC5PcmRlbVN0YXR1cyA9IDE7IC8vYXNjXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2wuVGlwbyA9PSAnZGF0YScpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGFTZXQuc29ydCgoYSwgYikgPT4gdGhpcy5kYXRhVG9TdHJpbmcoYVtjb2wuQ2FtcG9dKSA8IHRoaXMuZGF0YVRvU3RyaW5nKGJbY29sLkNhbXBvXSkgPyAxIDogKHRoaXMuZGF0YVRvU3RyaW5nKGFbY29sLkNhbXBvXSkgPiB0aGlzLmRhdGFUb1N0cmluZyhiW2NvbC5DYW1wb10pID8gLTEgOiAwKSk7XG4gICAgICB9IGVsc2UgaWYgKGNvbC5UaXBvID09ICdudW1iZXInKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0LnNvcnQoKGEsIGIpID0+IExpYlNlcnZpY2Uuc3RyaW5nVG9EZWNpbWFsKGFbY29sLkNhbXBvXSwgdHJ1ZSkgPCBMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChiW2NvbC5DYW1wb10sIHRydWUpID8gMSA6IChMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChhW2NvbC5DYW1wb10sIHRydWUpID4gTGliU2VydmljZS5zdHJpbmdUb0RlY2ltYWwoYltjb2wuQ2FtcG9dLCB0cnVlKSA/IC0xIDogMCkpO1xuICAgICAgfSBlbHNlIFxuICAgICAgdGhpcy5maWx0ZXJlZERhdGFTZXQuc29ydCgoYSwgYikgPT4gYVtjb2wuQ2FtcG9dIDwgYltjb2wuQ2FtcG9dID8gMSA6IChhW2NvbC5DYW1wb10gPiBiW2NvbC5DYW1wb10gPyAtMSA6IDApKTtcbiAgICAgIGNvbC5PcmRlbVN0YXR1cyA9IC0xOyAvL2Rlc2NcbiAgICB9XG4gIH1cblxuICBzZXRGaWx0cm9PcGVuKGNvbDogYW55KSB7XG4gICAgY29sLkZpbHRyb1Zpc2l2ZWwgPSAhY29sLkZpbHRyb1Zpc2l2ZWxcbiAgICBpZiAoY29sLkZpbHRyb1Zpc2l2ZWwpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb2x1bmEgPSBjb2w7XG4gICAgICAvL2NvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRDb2x1bmEpO1xuICAgIH0gICAgXG4gIH1cblxuICBzZWxlY2lvbmFyVG9kb3MoKSB7XG4gICAgLy90aGlzLnRvZG9zU2VsZWNpb25hZG9zID0gIXRoaXMudG9kb3NTZWxlY2lvbmFkb3M7XG4gICAgdGhpcy5maWx0ZXJlZERhdGFTZXQuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgIGl0ZW1bdGhpcy50YWJlbGFDYW1wb3MuQ2FtcG9TZWxlY2lvbmFyXSA9IHRoaXMudG9kb3NTZWxlY2lvbmFkb3M7XG4gICAgfSk7XG4gICAgdGhpcy5zZWxlY2lvbmFyQ2hlY2tlZC5lbWl0KCk7XG4gIH1cblxuICBzZWxlY2lvbmFyTGluaGEoaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY2lvbmFySXRlbS5lbWl0KGl0ZW0pO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtID0gaXRlbTtcbiAgfVxuXG4gIGV4Y2x1aXJMaW5oYShpdGVtOiBhbnkpIHtcbiAgICB0aGlzLmV4Y2x1aXJJdGVtLmVtaXQoaXRlbSk7XG4gIH1cblxuICAvL2NoZWNrXG4gIHNlbGVjaW9uYWRvQ2hlY2tlZCgpIHtcbiAgICB0aGlzLnNlbGVjaW9uYXJDaGVja2VkLmVtaXQoKTtcbiAgfVxufVxuIiwiPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTRweDtcIj5cbiAgICA8ZGl2IGlkPVwicGFpbmVsRXhwb3J0YWNhb1wiPlxuICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpbk1lbW9yeVBhZ2luYXRpb25cIj5cbiAgICAgICAgPCEtLVxuICAgICAgICA8aW9uLWNvbCBzaXplPVwiMlwiPlxuICAgICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwidGFiZWxhQ2FtcG9zLlNlbGVjaW9uYXIgPT09IHRydWVcIiBzaXplPVwic21hbGxcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwibWVkaXVtXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY2lvbmFyVG9kb3MoKVwiPlNlbGVjaW9uYXIgVG9kb3M8L2lvbi1idXR0b24+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgLS0+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCIzXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJpbk1lbW9yeVBhZ2luYXRpb24gPT09IHRydWVcIiBzaXplPVwic21hbGxcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiYmx1ZXRvb2xcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImFudGVyaW9yKClcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1iYWNrLW91dGxpbmVcIiBzbG90PVwic3RhcnRcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgQW50ZXJpb3JcbiAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJpbk1lbW9yeVBhZ2luYXRpb24gPT09IHRydWVcIiBzaXplPVwic21hbGxcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwiYmx1ZXRvb2xcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByb3hpbW8oKVwiPlxuICAgICAgICAgICAgUHLDs3hpbW9cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hldnJvbi1mb3J3YXJkLW91dGxpbmVcIiBzbG90PVwiZW5kXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8L2lvbi1idXR0b24+ICAgICAgICAgICAgICAgIFxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDxpb24tY29sIHNpemU9XCIyXCI+XG4gICAgICAgICAgPHNwYW4gc3R5bGU9XCJkaXNwbGF5OiBibG9jazsgbWFyZ2luLXRvcDogMTBweDtcIiAqbmdJZj1cImluTWVtb3J5UGFnaW5hdGlvbiAmJiB0b3RhbFJlYyA+IDBcIj5FeGliaW5kbyB7eyBzdGFydCArIDEgfX0gLSB7eyAoc3RhcnQgKyBwYWdlT2Zmc2V0KSA8IHRvdGFsUmVjID8gKHN0YXJ0ICsgcGFnZU9mZnNldCkgOiB0b3RhbFJlYyB9fSB0b3RhbCBkZSB7eyB0b3RhbFJlYyB9fSAgICAgICAgXG4gICAgICAgICAgPC9zcGFuPiAgICAgIFxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtzdHlsZS5taW4taGVpZ2h0XT1cIm1pbkhlaWdodFwiPlxuICAgICAgPHRhYmxlIGNsYXNzPVwiZ3JpZFwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgPHRyIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taW9uLWNvbG9yLWJsdWV0b29sKTsgY29sb3I6IHdoaXRlO1wiPlxuICAgICAgICAgICAgPHRkICpuZ0lmPVwidGFiZWxhQ2FtcG9zLlNlbGVjaW9uYXIgPT09IHRydWVcIiBzdHlsZT1cIndpZHRoOiAzJTsgdGV4dC1hbGlnbjogY2VudGVyO1wiPlxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJ0b2Rvc1NlbGVjaW9uYWRvc1wiIChjaGFuZ2UpPVwic2VsZWNpb25hclRvZG9zKClcIj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiB0YWJlbGFDYW1wb3MuQ29sdW5hc1wiIFtzdHlsZS53aWR0aF09XCJjb2wuVGFtYW5ob1wiPlxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOiBlbmQ7XCI+XG4gICAgICAgICAgICAgICAgICA8c3Ryb25nPnt7IGNvbC5UaXR1bG8gfX08L3N0cm9uZz5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiAqbmdJZj1cImNvbC5PcmRlbVwiIHNsb3Q9XCJlbmRcIiAoY2xpY2spPVwib3JkZW5hcihjb2wpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJjb2wuT3JkZW1TdGF0dXMgPT0gMCA/ICdzd2FwLXZlcnRpY2FsJyA6IChjb2wuT3JkZW1TdGF0dXMgPT0gMSA/ICdhcnJvdy11cCc6ICdhcnJvdy1kb3duJylcIj48L2lvbi1pY29uPlxuICBcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiY29sLkZpbHRyYXJcIiBuYW1lPVwiZnVubmVsXCIgKGNsaWNrKT1cInNldEZpbHRyb09wZW4oY29sKVwiIHNsb3Q9XCJlbmRcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gIFxuICBcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FpeGFHcmFuZGVcIiBbaGlkZGVuXT1cIiFjb2wuRmlsdHJvVmlzaXZlbFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJjb2xvcjogYmxhY2s7IGRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogYWJzb2x1dGU7IHotaW5kZXg6IDgwMDsgd2lkdGg6IDIxMHB4OyByaWdodDogMHB4OyBvcGFjaXR5OiAwLjk7XCI+XG4gICAgICAgICAgICAgICAgICBGaWx0cmFyOlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IHN0YXJ0O1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3Qgc3R5bGU9XCJ3aWR0aDogODBweDtcIiBbKG5nTW9kZWwpXT1cImNvbC5GaWx0cm9PcGVyYWRvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj49PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPiZndDs9PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPiZsdDs9PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPnRlbTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cIndpZHRoOiAxMDBweDtcIiB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY29sLkZpbHRyb1ZhbG9yXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBjb2xvcj1cIm1lZGl1bVwiIGV4cGFuZD1cImJsb2NrXCIgKGNsaWNrKT1cImZpbHRyYXIoY29sKVwiPkZpbHRyYXI8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiIGNvbG9yPVwibGlnaHRcIiBleHBhbmQ9XCJibG9ja1wiIChjbGljayk9XCJsaW1wYXIoKVwiPkxpbXBhcjwvaW9uLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImNvbC5WYWxvcmVzXCIgY2xhc3M9XCJzY3JvbGwtY29udGFpbmVyXCIgc3R5bGU9XCJoZWlnaHQ6IDIwMHB4OyBvdmVyZmxvdy15OiBzY3JvbGw7XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIGNvbC5WYWxvcmVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwidmFsb3IuU2VsZWNpb25hZG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyB2YWxvci5WYWxvciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInRhYmVsYUNhbXBvcy5FeGNsdWlyID09PSB0cnVlXCI+XG4gIFxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHBhZ2VEYXRhU2V0XCIgW2NsYXNzXT1cIml0ZW0gPT0gc2VsZWN0ZWRJdGVtID8gJ2l0ZW0tc2VsZWNpb25hZG8nIDogJycgXCI+XG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJ0YWJlbGFDYW1wb3MuU2VsZWNpb25hciA9PT0gdHJ1ZVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBjdXJzb3I6IGF1dG87XCI+XG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBbKG5nTW9kZWwpXT1cIml0ZW1bdGFiZWxhQ2FtcG9zLkNhbXBvU2VsZWNpb25hcl1cIiAoY2hhbmdlKT1cInNlbGVjaW9uYWRvQ2hlY2tlZCgpXCI+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiY29sXCIgKm5nRm9yPVwibGV0IGNvbCBvZiB0YWJlbGFDYW1wb3MuQ29sdW5hc1wiIFtzdHlsZS53aWR0aF09XCJjb2wuVGFtYW5ob1wiXG4gICAgICAgICAgICAgIFtzdHlsZS50ZXh0LWFsaWduXT1cImNvbC5UaXBvID09ICdudW1iZXInID8gJ3JpZ2h0JyA6IChjb2wuQWxpbmhhbWVudG8gPz8gJ2xlZnQnKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjb2wuQ2xpY2tGdW5jdGlvbiA/IGNvbC5DbGlja0Z1bmN0aW9uKGl0ZW0pIDogc2VsZWNpb25hckxpbmhhKGl0ZW0pXCI+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sLlBpcGUgPT0gJ2RhdGUnXCI+e3sgaXRlbVtjb2wuQ2FtcG9dIHwgZGF0ZTogJ2RkL01NL3l5eXknIH19PC9zcGFuPiAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sLlBpcGUgPT0gJ3ZhbG9yJ1wiPnt7IGl0ZW1bY29sLkNhbXBvXSB8IHZhbG9yRm9ybWF0IH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvbC5SZW5kZXJGdW5jdGlvblwiIFtpbm5lckh0bWxdPVwiY29sLlJlbmRlckZ1bmN0aW9uKGl0ZW0pIHwgc2FmZUh0bWxcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWNvbC5QaXBlICYmICFjb2wuUmVuZGVyRnVuY3Rpb25cIj57eyBpdGVtW2NvbC5DYW1wb10gPz8gY29sLkRlZmF1bHQgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPHRkICpuZ0lmPVwidGFiZWxhQ2FtcG9zLkV4Y2x1aXIgPT09IHRydWVcIiBzdHlsZT1cInBhZGRpbmc6IDBweDsgdGV4dC1hbGlnbjogY2VudGVyO1wiPlxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBjb2xvcj1cImRhbmdlclwiIGZpbGw9XCJvdXRsaW5lXCIgc3R5bGU9XCJ0cmFuc2Zvcm06IHNjYWxlKDAuODUpO1wiIChjbGljayk9XCJleGNsdWlyTGluaGEoaXRlbSlcIj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInRyYXNoXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgXG4gICAgPGlvbi1tb2RhbCBbaXNPcGVuXT1cImlzRmlsdHJvT3BlblwiIChkaWREaXNtaXNzKT1cImlzRmlsdHJvT3BlbiA9IGZhbHNlO1wiPlxuICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICA8aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWl4YUdyYW5kZVwiPlxuICAgICAgICAgICAgRmlsdHJhcjpcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZENvbHVuYS5WYWxvcmVzXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIHNlbGVjdGVkQ29sdW5hLlZhbG9yZXNcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyB2YWxvciB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9pb24tY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9pb24tbW9kYWw+XG4gIDwvZGl2PiJdfQ==
275
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL2dyaWQtdmlldy9ncmlkLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvZ3JpZC12aWV3L2dyaWQtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFjLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBT3BFLE1BQU0sT0FBTyxpQkFBaUI7SUFnRTVCO1FBNURTLGNBQVMsR0FBVyxPQUFPLENBQUM7UUFDNUIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRW5DLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwQyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdqRCwyREFBMkQ7UUFDM0QsV0FBTSxHQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0RSxtQkFBbUI7UUFDbkIsdUJBQXVCO1FBQ3ZCLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2Ysd01BQXdNO1FBQ3hNLDZNQUE2TTtRQUM3TSxxTkFBcU47UUFDck4seU1BQXlNO1FBQ3pNLDhNQUE4TTtRQUM5TSxNQUFNO1FBQ04sSUFBSTtRQUVKLDBCQUEwQjtRQUMxQiwyRkFBMkY7UUFDM0YsOEZB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QyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9OOztnQkFDQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEgsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLO1NBQzNCO2FBQU07WUFDTCxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksTUFBTSxFQUFFO2dCQUN0QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzNMO2lCQUFNLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxRQUFRLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3ZQOztnQkFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUcsR0FBRyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU07U0FDN0I7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVE7UUFDcEIsR0FBRyxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUE7UUFDdEMsSUFBSSxHQUFHLENBQUMsYUFBYSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLEdBQUcsR0FBRyxDQUFDO1lBQzFCLG1DQUFtQztTQUNwQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVM7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFTO1FBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPO0lBQ1Asa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoQyxDQUFDOzhHQTFSVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixrWkNSOUIscXpNQW1IUTs7MkZEM0dLLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjO3dEQUtmLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBRUksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkE2QkUsZUFBZTtzQkFBdkIsS0FBSztnQkFnQkcsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHcmlkQ29sdW5hLCBHcmlkVGFiZWxhLCBMaWJTZXJ2aWNlIH0gZnJvbSAnYXBwcHJvamVjdC1saWInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdrYi1ncmlkLXZpZXcnLCAgICBcclxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZ3JpZC12aWV3LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgZW1wcmVzYUlkOiBudW1iZXI7XHJcbiAgQElucHV0KCkgdGFiZWxhQ2FtcG9zOiBHcmlkVGFiZWxhO1xyXG4gIEBJbnB1dCgpIGRhdGFTZXQ6IEFycmF5PGFueT47XHJcbiAgQElucHV0KCkgbWluSGVpZ2h0OiBzdHJpbmcgPSAnNDAwcHgnO1xyXG4gIEBJbnB1dCgpIGluTWVtb3J5UGFnaW5hdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWNpb25hckl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGV4Y2x1aXJJdGVtID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBzZWxlY2lvbmFyQ2hlY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgc2VsZWN0ZWRJdGVtOiBhbnk7XHJcbiAgLy9pbnB1dHMgPSBpbmplY3QobmV3IEluamVjdGlvblRva2VuPGFueT4oJ3RpdGxlIGlucHV0cycpKTtcclxuICBncnVwb3M6IGFueVtdID0gW3sgQ29sdW5hOiAnJywgVGFiZWxhOiBudWxsLCBEYWRvczogbnVsbCwgTml2ZWw6IDAgfV07XHJcblxyXG4gIC8vIHRhYmVsYUNhbXBvcyA9IHtcclxuICAvLyAgIFNlbGVjaW9uYXI6IGZhbHNlLFxyXG4gIC8vICAgRXhwb3J0YXI6IHRydWUsXHJcbiAgLy8gICBDb2x1bmFzOiBbXHJcbiAgLy8gICAgIHsgQ2FtcG86ICdJZCcsIFRpdHVsbzogJ0lkJywgVGFtYW5obzogJzEwJScsIE9yZGVtOiB0cnVlLCBHcnVwbzogZmFsc2UsIEZpbHRyYXI6IHRydWUsIE9yZGVtU3RhdHVzOiAwLCBUaXBvOiAnbnVtYmVyJywgVmFsb3JlczogW10sIEZpbHRyb09wZXJhZG9yOiAnPScsIEZpbHRyb1ZhbG9yOiAnJywgRmlsdHJvVmlzaXZlbDogZmFsc2UgfSxcclxuICAvLyAgICAgeyBDYW1wbzogJ01hcmNhJywgVGl0dWxvOiAnTWFyY2EnLCBUYW1hbmhvOiAnMjUlJywgT3JkZW06IHRydWUsIEdydXBvOiB0cnVlLCBGaWx0cmFyOiB0cnVlLCBPcmRlbVN0YXR1czogMCwgVGlwbzogJ3N0cmluZycsIFZhbG9yZXM6IFtdLCBGaWx0cm9PcGVyYWRvcjogJz0nLCBGaWx0cm9WYWxvcjogJycsIEZpbHRyb1Zpc2l2ZWw6IGZhbHNlIH0sXHJcbiAgLy8gICAgIHsgQ2FtcG86ICdEZXNjcmljYW8nLCBUaXR1bG86ICdEZXNjcmnDp8OjbycsIFRhbWFuaG86ICcyNSUnLCBPcmRlbTogdHJ1ZSwgR3J1cG86IHRydWUsIEZpbHRyYXI6IHRydWUsIE9yZGVtU3RhdHVzOiAwLCBUaXBvOiAnc3RyaW5nJywgVmFsb3JlczogW10sIEZpbHRyb09wZXJhZG9yOiAnPScsIEZpbHRyb1ZhbG9yOiAnJywgRmlsdHJvVmlzaXZlbDogZmFsc2UgfSxcclxuICAvLyAgICAgeyBDYW1wbzogJ0RhdGEnLCBUaXR1bG86ICdEYXRhJywgVGFtYW5obzogJzIwJScsIE9yZGVtOiB0cnVlLCBHcnVwbzogdHJ1ZSwgRmlsdHJhcjogdHJ1ZSwgT3JkZW1TdGF0dXM6IDAsIFRpcG86ICdkYXRlJywgVmFsb3JlczogW10sIEZpbHRyb09wZXJhZG9yOiAnPScsIEZpbHRyb1ZhbG9yOiAnJywgRmlsdHJvVmlzaXZlbDogZmFsc2UgfSxcclxuICAvLyAgICAgeyBDYW1wbzogJ1ZhbG9yJywgVGl0dWxvOiAnVmFsb3InLCBUYW1hbmhvOiAnMjAlJywgT3JkZW06IHRydWUsIEdydXBvOiBmYWxzZSwgRmlsdHJhcjogdHJ1ZSwgT3JkZW1TdGF0dXM6IDAsIFRpcG86ICdudW1iZXInLCBWYWxvcmVzOiBbXSwgRmlsdHJvT3BlcmFkb3I6ICc9JywgRmlsdHJvVmFsb3I6ICcnLCBGaWx0cm9WaXNpdmVsOiBmYWxzZSB9LFxyXG4gIC8vICAgXVxyXG4gIC8vIH1cclxuXHJcbiAgLy8gZGF0YVNldDogQXJyYXk8YW55PiA9IFtcclxuICAvLyAgIHsgSWQ6IDEsIE1hcmNhOiAnQXBwbGUnLCBEZXNjcmljYW86ICdJUGhvbmUgMTQnLCBEYXRhOiAnMjAyMy0wNS0wMScsIFZhbG9yOiA3ODk5Ljk5IH0sXHJcbiAgLy8gICB7IElkOiAyLCBNYXJjYTogJ0FwcGxlJywgRGVzY3JpY2FvOiAnTWFjQm9vayBQcm8nLCBEYXRhOiAnMjAyMy0wNi0wMScsIFZhbG9yOiAxNzk5OS45OSB9LFxyXG4gIC8vICAgeyBJZDogMywgTWFyY2E6ICdTYW1zdW5nJywgRGVzY3JpY2FvOiAnR2FsYXh5IFMyMycsIERhdGE6ICcyMDIzLTA1LTAxJywgVmFsb3I6IDY4OTkuOTkgfSxcclxuICAvLyAgIHsgSWQ6IDQsIE1hcmNhOiAnU29ueScsIERlc2NyaWNhbzogJ1BTIDUnLCBEYXRhOiAnMjAyMy0wNi0wMScsIFZhbG9yOiA0ODk5Ljk5IH0sXHJcbiAgLy8gICB7IElkOiA1LCBNYXJjYTogJ1NhbXN1bmcnLCBEZXNjcmljYW86ICdXYXRjaCAyMycsIERhdGE6ICcyMDIzLTA1LTAxJywgVmFsb3I6IDE4OTkuOTkgfSxcclxuICAvLyBdXHJcblxyXG5cclxuXHJcbiAgZ3JvdXBzID0gW11cclxuICBASW5wdXQoKSBmaWx0ZXJlZERhdGFTZXQgPSBbXTtcclxuICBwYWdlRGF0YVNldCA9IFtdO1xyXG5cclxuXHJcbiAgLy9hcnJheSBjb20gb3MgY2FtcG9zIGZpbHRyYWRvcyBwYXJhIGRpc3BsYXlcclxuICBjYW1wb3NEaXNwbGF5ID0gW107XHJcblxyXG4gIC8vZmlsdHJvXHJcbiAgaXNGaWx0cm9PcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWRDb2x1bmE6IGFueTtcclxuICB0b2Rvc1NlbGVjaW9uYWRvczogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvL3BhZ2luYXRpb25cclxuICAvL3DDoWdpbmEgYXR1YWxcclxuICBwYWdlOiBudW1iZXIgPSAxO1xyXG4gIC8vcmVnaXN0cm9zIHBvciBww6FnaW5hXHJcbiAgQElucHV0KCkgcGFnZU9mZnNldDogbnVtYmVyID0gMjA7XHJcbiAgLy90b3RhbCBkZSByZWdpc3Ryb3NcclxuICB0b3RhbFJlYzogbnVtYmVyO1xyXG4gIC8vdG90YWwgZGUgcMOhZ2luYXNcclxuICB0b3RhbFBhZ2VzOiBudW1iZXI7XHJcbiAgLy9pbmRleGFkb3IgZGUgcGFnaW5hc1xyXG4gIHBhZ2VzOiBudW1iZXJbXTsgIFxyXG4gIHN0YXJ0OiBudW1iZXI7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICB2YWxvcmVzRmlsdHJvKCkge1xyXG4gICAgdGhpcy50YWJlbGFDYW1wb3MuQ29sdW5hcy5mb3JFYWNoKGMgPT4ge1xyXG4gICAgICBpZiAoYy5GaWx0cmFyKSB7XHJcbiAgICAgICAgLy9wcm9qZXRhciBhIGNvbHVuYVxyXG4gICAgICAgIGxldCBpbml0aWFsID0gW107XHJcbiAgICAgICAgbGV0IHZhbG9yZXMgPSB0aGlzLmRhdGFTZXQubWFwKGQgPT4gZFtjLkNhbXBvXSk7XHJcbiAgICAgICAgYy5WYWxvcmVzID0gdmFsb3Jlcy5maWx0ZXIoKHZhbHVlLCBpbmRleCwgc2VsZikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHNlbGYuaW5kZXhPZih2YWx1ZSkgPT09IGluZGV4O1xyXG4gICAgICAgIH0pLm1hcCh2ID0+IHsgcmV0dXJuIHsgU2VsZWNpb25hZG86IGZhbHNlLCBWYWxvcjogdiB9IH0pO1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGMuQ2FtcG8sIHZhbG9yZXMpO1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGMuVmFsb3JlcylcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG5cclxuXHJcbiAgICAvL3RoaXMuaW5pY2lhbGl6YUdydXBvKCk7XHJcbiAgICAvL3RoaXMuYWdydXBhcignTWFyY2EnKTtcclxuICAgIC8vY29uc29sZS5sb2coJ2lucHV0cycsIHRoaXMuaW5wdXRzKTtcclxuICAgIC8vY29uc29sZS5sb2coJ0lucHV0IGVtcHJlc2EnLCB0aGlzLmVtcHJlc2FJZCk7XHJcbiAgICBHcmlkVGFiZWxhLmluaXQodGhpcy50YWJlbGFDYW1wb3MpO1xyXG4gICAgdGhpcy52YWxvcmVzRmlsdHJvKCk7XHJcbiAgICB0aGlzLmZpbHRlcmVkRGF0YVNldCA9IHRoaXMuZGF0YVNldDtcclxuICAgIGNvbnNvbGUubG9nKCdJbml0IFRhYmVsYSBjYW1wb3MnLCB0aGlzLnRhYmVsYUNhbXBvcyk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zb2xlLmxvZygnT24gY2hhbmdlcyBUYWJlbGEgY2FtcG9zJywgdGhpcy50YWJlbGFDYW1wb3MpO1xyXG4gICAgLy9ldmVudG8gY2hhbWFkbyBxdWFuZG8gbyBkYXRhc2V0IGZvciBhdHVhbGl6YWRvXHJcbiAgICAvL2luaWNpYWxpemFyIHZhcnMgZGUgcGFnaW5hw6fDo29cclxuICAgIHRoaXMuaW5pdFBhZ2UoKTtcclxuICAgIHRoaXMudG9kb3NTZWxlY2lvbmFkb3MgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGluaXRQYWdlKCkge1xyXG4gICAgdGhpcy5wYWdlID0gMTtcclxuICAgIHRoaXMudG90YWxSZWMgPSB0aGlzLmZpbHRlcmVkRGF0YVNldC5sZW5ndGg7XHJcbiAgICB0aGlzLnRvdGFsUGFnZXMgPSBNYXRoLmNlaWwodGhpcy50b3RhbFJlYyAvIHRoaXMucGFnZU9mZnNldCk7ICAgIFxyXG5cclxuICAgIGlmICh0aGlzLmluTWVtb3J5UGFnaW5hdGlvbiA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLmdldFJlZ2lzdHJvc1BhZ2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGFnZURhdGFTZXQgPSB0aGlzLmZpbHRlcmVkRGF0YVNldDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFJlZ2lzdHJvc1BhZ2UoKSB7XHJcbiAgICB0aGlzLnN0YXJ0ID0gKHRoaXMucGFnZSAtIDEpICogdGhpcy5wYWdlT2Zmc2V0O1xyXG4gICAgY29uc29sZS5sb2coJ2RhdGFzZXQnLCB0aGlzLmZpbHRlcmVkRGF0YVNldCk7XHJcbiAgICBjb25zb2xlLmxvZygnc3RhcnQnLCB0aGlzLnN0YXJ0KTtcclxuICAgIGNvbnNvbGUubG9nKCdvZmZzZXQnLCB0aGlzLnBhZ2VPZmZzZXQpO1xyXG4gICAgdGhpcy5wYWdlRGF0YVNldCA9IHRoaXMuZmlsdGVyZWREYXRhU2V0LnNsaWNlKHRoaXMuc3RhcnQsICh0aGlzLnN0YXJ0ICsgdGhpcy5wYWdlT2Zmc2V0KSk7XHJcbiAgICBjb25zb2xlLmxvZygncGFnZSBkYXRhc2V0JywgdGhpcy5wYWdlRGF0YVNldCk7XHJcbiAgfVxyXG5cclxuICBwcm94aW1vKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA8IHRoaXMudG90YWxQYWdlcykge1xyXG4gICAgICB0aGlzLnBhZ2UrKztcclxuICAgICAgdGhpcy5nZXRSZWdpc3Ryb3NQYWdlKCk7XHJcbiAgICAgIHRoaXMuZ2VyYXJBcnJheVBhZ3MoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFudGVyaW9yKCkge1xyXG4gICAgaWYgKHRoaXMucGFnZSA+IDEpIHtcclxuICAgICAgdGhpcy5wYWdlLS07XHJcbiAgICAgIHRoaXMuZ2V0UmVnaXN0cm9zUGFnZSgpO1xyXG4gICAgICB0aGlzLmdlcmFyQXJyYXlQYWdzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXJhckFycmF5UGFncygpIHtcclxuXHJcbiAgfVxyXG5cclxuICBpbmljaWFsaXphR3J1cG8oKSB7XHJcbiAgICAvL2luaWNpYWxpemFyIG8gcHJpbWVpcm8gZ3J1cG8gJ2RlZmF1bHQnXHJcbiAgICB0aGlzLmNhbXBvc0Rpc3BsYXkgPSB0aGlzLnRhYmVsYUNhbXBvcy5Db2x1bmFzO1xyXG4gICAgdGhpcy5ncnVwb3NbMF0uVGFiZWxhID0gdGhpcy5jYW1wb3NEaXNwbGF5O1xyXG4gICAgdGhpcy5ncnVwb3NbMF0uRGFkb3MgPSB0aGlzLmRhdGFTZXQ7XHJcbiAgfVxyXG5cclxuICBhZ3J1cGFyKGNhbXBvOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZ3JvdXBzLnB1c2goY2FtcG8pO1xyXG4gICAgbGV0IGxldmVsID0gMDtcclxuICAgIGZvciAobGV0IGcgaW4gdGhpcy5ncm91cHMpIHtcclxuICAgICAgY29uc29sZS5sb2coZyk7XHJcbiAgICAgIC8vZmlsdHJhciBvcyBkYWRvc1xyXG4gICAgICBsZXQgcmVzdWx0ID0gdGhpcy5kYXRhU2V0LnJlZHVjZSgoZ3JvdXAsIGRhdGEpID0+IHtcclxuICAgICAgICBjb25zdCB7IGcgfSA9IGRhdGE7XHJcbiAgICAgICAgZ3JvdXBbZ10gPSBncm91cFtjYW1wb10gPz8gW107XHJcbiAgICAgICAgZ3JvdXBbZ10ucHVzaChkYXRhKTtcclxuICAgICAgICByZXR1cm4gZ3JvdXA7XHJcbiAgICAgIH0sIHt9KTtcclxuICAgICAgY29uc29sZS5sb2cocmVzdWx0KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBmaWx0cmFyQ2FtcG9zKGNvbHVuYSA9ICcnKSB7XHJcbiAgICBpZiAoY29sdW5hICE9ICcnKSB7XHJcblxyXG4gICAgfSBlbHNlIHtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0cmFyKGNvbDogR3JpZENvbHVuYSkge1xyXG4gICAgLy9jb25zb2xlLmxvZygnZmlsdHJhcicsIGNvbCk7XHJcbiAgICBpZiAoY29sLlZhbG9yZXMgJiYgY29sLlZhbG9yZXMuZmluZCh2ID0+IHYuU2VsZWNpb25hZG8pICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgdmFsb3JlcyA9IGNvbC5WYWxvcmVzLmZpbHRlcih2ID0+IHYuU2VsZWNpb25hZG8pLm1hcCh2ID0+IHYuVmFsb3IpO1xyXG5cclxuICAgICAgLy9maWx0cmFyIHBvciB2YWxvcmVzIHNlbGVjaW9uYWRvc1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YVNldCA9IHRoaXMuZGF0YVNldC5maWx0ZXIoZCA9PiB2YWxvcmVzLmluZGV4T2YoZFtjb2wuQ2FtcG9dKSA+IC0xKTtcclxuICAgIH0gZWxzZSBpZiAoY29sLkZpbHRyb09wZXJhZG9yICYmIGNvbC5GaWx0cm9WYWxvcikge1xyXG4gICAgICAvL2NvbnNvbGUubG9nKGNvbC5GaWx0cm9PcGVyYWRvciwgY29sLkZpbHRyb1ZhbG9yKVxyXG4gICAgICB0cnkge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0ID0gdGhpcy5kYXRhU2V0LmZpbHRlcihkID0+IHtcclxuICAgICAgICAgIHN3aXRjaCAoY29sLkZpbHRyb09wZXJhZG9yKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCI9XCI6XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRbY29sLkNhbXBvXSA9PSBjb2wuRmlsdHJvVmFsb3I7XHJcbiAgICAgICAgICAgIGNhc2UgXCI+PVwiOlxyXG4gICAgICAgICAgICAgIGlmIChjb2wuVGlwbyA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIExpYlNlcnZpY2Uuc3RyaW5nVG9EZWNpbWFsKGRbY29sLkNhbXBvXSwgdHJ1ZSkgPj0gTGliU2VydmljZS5zdHJpbmdUb0RlY2ltYWwoY29sLkZpbHRyb1ZhbG9yLCB0cnVlKTsgIFxyXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29sLlRpcG8gPT0gJ2RhdGEnKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IERhdGUodGhpcy5kYXRhVG9TdHJpbmcoZFtjb2wuQ2FtcG9dKSkgPj0gbmV3IERhdGUodGhpcy5kYXRhVG9TdHJpbmcoY29sLkZpbHRyb1ZhbG9yKSk7ICBcclxuICAgICAgICAgICAgICB9IGVsc2VcclxuICAgICAgICAgICAgICByZXR1cm4gZFtjb2wuQ2FtcG9dID49IGNvbC5GaWx0cm9WYWxvcjtcclxuICAgICAgICAgICAgY2FzZSBcIjw9XCI6XHJcbiAgICAgICAgICAgICAgaWYgKGNvbC5UaXBvID09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gTGliU2VydmljZS5zdHJpbmdUb0RlY2ltYWwoZFtjb2wuQ2FtcG9dLCB0cnVlKSA8PSBMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChjb2wuRmlsdHJvVmFsb3IsIHRydWUpOyAgXHJcbiAgICAgICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgICAgcmV0dXJuIGRbY29sLkNhbXBvXSA8PSBjb2wuRmlsdHJvVmFsb3I7XHJcbiAgICAgICAgICAgIGNhc2UgXCJ0ZW1cIjpcclxuICAgICAgICAgICAgICByZXR1cm4gZFtjb2wuQ2FtcG9dLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKS5pbmRleE9mKGNvbC5GaWx0cm9WYWxvci50b0xvd2VyQ2FzZSgpKSA+IC0xO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgfSBjYXRjaChleCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGV4KTtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YVNldCA9IHRoaXMuZGF0YVNldDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29sLkZpbHRyb1Zpc2l2ZWwgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmluaXRQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRQYWdlKCkge1xyXG5cclxuICB9XHJcblxyXG4gIGxpbXBhcigpIHtcclxuICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0ID0gdGhpcy5kYXRhU2V0O1xyXG4gIH1cclxuXHJcbiAgZGF0YVRvU3RyaW5nKGRhdGE6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoZGF0YSkge1xyXG4gICAgICByZXR1cm4gZGF0YS5zcGxpdCgnLycpLnJldmVyc2UoKS5qb2luKCctJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gXCJcIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9yZGVuYXIoY29sOiBHcmlkQ29sdW5hKSB7XHJcbiAgICBpZiAoY29sLk9yZGVtU3RhdHVzID09IDAgfHwgY29sLk9yZGVtU3RhdHVzID09IC0xKSB7XHJcbiAgICAgIGlmIChjb2wuVGlwbyA9PSAnZGF0YScpIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YVNldC5zb3J0KChhLCBiKSA9PiB0aGlzLmRhdGFUb1N0cmluZyhhW2NvbC5DYW1wb10pID4gdGhpcy5kYXRhVG9TdHJpbmcoYltjb2wuQ2FtcG9dKSA/IDEgOiAodGhpcy5kYXRhVG9TdHJpbmcoYVtjb2wuQ2FtcG9dKSA8IHRoaXMuZGF0YVRvU3RyaW5nKGJbY29sLkNhbXBvXSkgPyAtMSA6IDApKTtcclxuICAgICAgfSBlbHNlIGlmIChjb2wuVGlwbyA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0LnNvcnQoKGEsIGIpID0+IExpYlNlcnZpY2Uuc3RyaW5nVG9EZWNpbWFsKGFbY29sLkNhbXBvXSkgPiBMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChiW2NvbC5DYW1wb10pID8gMSA6IChMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChhW2NvbC5DYW1wb10pIDwgTGliU2VydmljZS5zdHJpbmdUb0RlY2ltYWwoYltjb2wuQ2FtcG9dKSA/IC0xIDogMCkpO1xyXG4gICAgICB9IGVsc2UgXHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZERhdGFTZXQuc29ydCgoYSwgYikgPT4gYVtjb2wuQ2FtcG9dID4gYltjb2wuQ2FtcG9dID8gMSA6IChhW2NvbC5DYW1wb10gPCBiW2NvbC5DYW1wb10gPyAtMSA6IDApKTtcclxuICAgICAgY29sLk9yZGVtU3RhdHVzID0gMTsgLy9hc2NcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChjb2wuVGlwbyA9PSAnZGF0YScpIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkRGF0YVNldC5zb3J0KChhLCBiKSA9PiB0aGlzLmRhdGFUb1N0cmluZyhhW2NvbC5DYW1wb10pIDwgdGhpcy5kYXRhVG9TdHJpbmcoYltjb2wuQ2FtcG9dKSA/IDEgOiAodGhpcy5kYXRhVG9TdHJpbmcoYVtjb2wuQ2FtcG9dKSA+IHRoaXMuZGF0YVRvU3RyaW5nKGJbY29sLkNhbXBvXSkgPyAtMSA6IDApKTtcclxuICAgICAgfSBlbHNlIGlmIChjb2wuVGlwbyA9PSAnbnVtYmVyJykge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0LnNvcnQoKGEsIGIpID0+IExpYlNlcnZpY2Uuc3RyaW5nVG9EZWNpbWFsKGFbY29sLkNhbXBvXSwgdHJ1ZSkgPCBMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChiW2NvbC5DYW1wb10sIHRydWUpID8gMSA6IChMaWJTZXJ2aWNlLnN0cmluZ1RvRGVjaW1hbChhW2NvbC5DYW1wb10sIHRydWUpID4gTGliU2VydmljZS5zdHJpbmdUb0RlY2ltYWwoYltjb2wuQ2FtcG9dLCB0cnVlKSA/IC0xIDogMCkpO1xyXG4gICAgICB9IGVsc2UgXHJcbiAgICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0LnNvcnQoKGEsIGIpID0+IGFbY29sLkNhbXBvXSA8IGJbY29sLkNhbXBvXSA/IDEgOiAoYVtjb2wuQ2FtcG9dID4gYltjb2wuQ2FtcG9dID8gLTEgOiAwKSk7XHJcbiAgICAgIGNvbC5PcmRlbVN0YXR1cyA9IC0xOyAvL2Rlc2NcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEZpbHRyb09wZW4oY29sOiBhbnkpIHtcclxuICAgIGNvbC5GaWx0cm9WaXNpdmVsID0gIWNvbC5GaWx0cm9WaXNpdmVsXHJcbiAgICBpZiAoY29sLkZpbHRyb1Zpc2l2ZWwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZENvbHVuYSA9IGNvbDtcclxuICAgICAgLy9jb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkQ29sdW5hKTtcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICBzZWxlY2lvbmFyVG9kb3MoKSB7XHJcbiAgICAvL3RoaXMudG9kb3NTZWxlY2lvbmFkb3MgPSAhdGhpcy50b2Rvc1NlbGVjaW9uYWRvcztcclxuICAgIHRoaXMuZmlsdGVyZWREYXRhU2V0LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGl0ZW1bdGhpcy50YWJlbGFDYW1wb3MuQ2FtcG9TZWxlY2lvbmFyXSA9IHRoaXMudG9kb3NTZWxlY2lvbmFkb3M7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWNpb25hckNoZWNrZWQuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWNpb25hckxpbmhhKGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY2lvbmFySXRlbS5lbWl0KGl0ZW0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0gPSBpdGVtO1xyXG4gIH1cclxuXHJcbiAgZXhjbHVpckxpbmhhKGl0ZW06IGFueSkge1xyXG4gICAgdGhpcy5leGNsdWlySXRlbS5lbWl0KGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgLy9jaGVja1xyXG4gIHNlbGVjaW9uYWRvQ2hlY2tlZCgpIHtcclxuICAgIHRoaXMuc2VsZWNpb25hckNoZWNrZWQuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxNHB4O1wiPlxyXG4gICAgPGRpdiBpZD1cInBhaW5lbEV4cG9ydGFjYW9cIj5cclxuICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpbk1lbW9yeVBhZ2luYXRpb25cIj5cclxuICAgICAgICA8IS0tXHJcbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjJcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwidGFiZWxhQ2FtcG9zLlNlbGVjaW9uYXIgPT09IHRydWVcIiBzaXplPVwic21hbGxcIiBmaWxsPVwib3V0bGluZVwiIGNvbG9yPVwibWVkaXVtXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjaW9uYXJUb2RvcygpXCI+U2VsZWNpb25hciBUb2RvczwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgLS0+XHJcbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjNcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwiaW5NZW1vcnlQYWdpbmF0aW9uID09PSB0cnVlXCIgc2l6ZT1cInNtYWxsXCIgZmlsbD1cIm91dGxpbmVcIiBjb2xvcj1cImJsdWV0b29sXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImFudGVyaW9yKClcIj5cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWJhY2stb3V0bGluZVwiIHNsb3Q9XCJzdGFydFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgIEFudGVyaW9yXHJcbiAgICAgICAgICA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiAqbmdJZj1cImluTWVtb3J5UGFnaW5hdGlvbiA9PT0gdHJ1ZVwiIHNpemU9XCJzbWFsbFwiIGZpbGw9XCJvdXRsaW5lXCIgY29sb3I9XCJibHVldG9vbFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwcm94aW1vKClcIj5cclxuICAgICAgICAgICAgUHLDs3hpbW9cclxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiIHNsb3Q9XCJlbmRcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgPC9pb24tYnV0dG9uPiAgICAgICAgICAgICAgICBcclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjJcIj5cclxuICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZGlzcGxheTogYmxvY2s7IG1hcmdpbi10b3A6IDEwcHg7XCIgKm5nSWY9XCJpbk1lbW9yeVBhZ2luYXRpb24gJiYgdG90YWxSZWMgPiAwXCI+RXhpYmluZG8ge3sgc3RhcnQgKyAxIH19IC0ge3sgKHN0YXJ0ICsgcGFnZU9mZnNldCkgPCB0b3RhbFJlYyA/IChzdGFydCArIHBhZ2VPZmZzZXQpIDogdG90YWxSZWMgfX0gdG90YWwgZGUge3sgdG90YWxSZWMgfX0gICAgICAgIFxyXG4gICAgICAgICAgPC9zcGFuPiAgICAgIFxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCU7XCIgW3N0eWxlLm1pbi1oZWlnaHRdPVwibWluSGVpZ2h0XCI+XHJcbiAgICAgIDx0YWJsZSBjbGFzcz1cImdyaWRcIj5cclxuICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICA8dHIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItYmx1ZXRvb2wpOyBjb2xvcjogd2hpdGU7XCI+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInRhYmVsYUNhbXBvcy5TZWxlY2lvbmFyID09PSB0cnVlXCIgc3R5bGU9XCJ3aWR0aDogMyU7IHRleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJ0b2Rvc1NlbGVjaW9uYWRvc1wiIChjaGFuZ2UpPVwic2VsZWNpb25hclRvZG9zKClcIj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgdGFiZWxhQ2FtcG9zLkNvbHVuYXNcIiBbc3R5bGUud2lkdGhdPVwiY29sLlRhbWFuaG9cIj5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlO1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6IGVuZDtcIj5cclxuICAgICAgICAgICAgICAgICAgPHN0cm9uZz57eyBjb2wuVGl0dWxvIH19PC9zdHJvbmc+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiY29sLk9yZGVtXCIgc2xvdD1cImVuZFwiIChjbGljayk9XCJvcmRlbmFyKGNvbClcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiY29sLk9yZGVtU3RhdHVzID09IDAgPyAnc3dhcC12ZXJ0aWNhbCcgOiAoY29sLk9yZGVtU3RhdHVzID09IDEgPyAnYXJyb3ctdXAnOiAnYXJyb3ctZG93bicpXCI+PC9pb24taWNvbj5cclxuICBcclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gKm5nSWY9XCJjb2wuRmlsdHJhclwiIG5hbWU9XCJmdW5uZWxcIiAoY2xpY2spPVwic2V0RmlsdHJvT3Blbihjb2wpXCIgc2xvdD1cImVuZFwiPjwvaW9uLWljb24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FpeGFHcmFuZGVcIiBbaGlkZGVuXT1cIiFjb2wuRmlsdHJvVmlzaXZlbFwiIHRhYmluZGV4PVwiLTFcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cImNvbG9yOiBibGFjazsgZGlzcGxheTogYmxvY2s7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgei1pbmRleDogODAwOyB3aWR0aDogMjEwcHg7IHJpZ2h0OiAwcHg7IG9wYWNpdHk6IDAuOTtcIj5cclxuICAgICAgICAgICAgICAgICAgRmlsdHJhcjpcclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogc3RhcnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IHN0eWxlPVwid2lkdGg6IDgwcHg7XCIgWyhuZ01vZGVsKV09XCJjb2wuRmlsdHJvT3BlcmFkb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj49PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24+Jmd0Oz08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbj4mbHQ7PTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uPnRlbTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgc3R5bGU9XCJ3aWR0aDogMTAwcHg7XCIgdHlwZT1cInRleHRcIiBbKG5nTW9kZWwpXT1cImNvbC5GaWx0cm9WYWxvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uIHNpemU9XCJzbWFsbFwiIGNvbG9yPVwibWVkaXVtXCIgZXhwYW5kPVwiYmxvY2tcIiAoY2xpY2spPVwiZmlsdHJhcihjb2wpXCI+RmlsdHJhcjwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBjb2xvcj1cImxpZ2h0XCIgZXhwYW5kPVwiYmxvY2tcIiAoY2xpY2spPVwibGltcGFyKClcIj5MaW1wYXI8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sLlZhbG9yZXNcIiBjbGFzcz1cInNjcm9sbC1jb250YWluZXJcIiBzdHlsZT1cImhlaWdodDogMjAwcHg7IG92ZXJmbG93LXk6IHNjcm9sbDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB2YWxvciBvZiBjb2wuVmFsb3Jlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwidmFsb3IuU2VsZWNpb25hZG9cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7IHZhbG9yLlZhbG9yIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJ0YWJlbGFDYW1wb3MuRXhjbHVpciA9PT0gdHJ1ZVwiPlxyXG4gIFxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwYWdlRGF0YVNldFwiIFtjbGFzc109XCJpdGVtID09IHNlbGVjdGVkSXRlbSA/ICdpdGVtLXNlbGVjaW9uYWRvJyA6ICcnIFwiPlxyXG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJ0YWJlbGFDYW1wb3MuU2VsZWNpb25hciA9PT0gdHJ1ZVwiIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyOyBjdXJzb3I6IGF1dG87XCI+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiaXRlbVt0YWJlbGFDYW1wb3MuQ2FtcG9TZWxlY2lvbmFyXVwiIChjaGFuZ2UpPVwic2VsZWNpb25hZG9DaGVja2VkKClcIj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwiY29sXCIgKm5nRm9yPVwibGV0IGNvbCBvZiB0YWJlbGFDYW1wb3MuQ29sdW5hc1wiIFtzdHlsZS53aWR0aF09XCJjb2wuVGFtYW5ob1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLnRleHQtYWxpZ25dPVwiY29sLlRpcG8gPT0gJ251bWJlcicgPyAncmlnaHQnIDogKGNvbC5BbGluaGFtZW50byA/PyAnbGVmdCcpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY29sLkNsaWNrRnVuY3Rpb24gPyBjb2wuQ2xpY2tGdW5jdGlvbihpdGVtKSA6IHNlbGVjaW9uYXJMaW5oYShpdGVtKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY29sLlBpcGUgPT0gJ2RhdGUnXCI+e3sgaXRlbVtjb2wuQ2FtcG9dIHwgZGF0ZTogJ2RkL01NL3l5eXknIH19PC9zcGFuPiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2wuUGlwZSA9PSAndmFsb3InXCI+e3sgaXRlbVtjb2wuQ2FtcG9dIHwgdmFsb3JGb3JtYXQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb2wuUmVuZGVyRnVuY3Rpb25cIiBbaW5uZXJIdG1sXT1cImNvbC5SZW5kZXJGdW5jdGlvbihpdGVtKSB8IHNhZmVIdG1sXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWNvbC5QaXBlICYmICFjb2wuUmVuZGVyRnVuY3Rpb25cIj57eyBpdGVtW2NvbC5DYW1wb10gPz8gY29sLkRlZmF1bHQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCAqbmdJZj1cInRhYmVsYUNhbXBvcy5FeGNsdWlyID09PSB0cnVlXCIgc3R5bGU9XCJwYWRkaW5nOiAwcHg7IHRleHQtYWxpZ246IGNlbnRlcjtcIj5cclxuICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiBzaXplPVwic21hbGxcIiBjb2xvcj1cImRhbmdlclwiIGZpbGw9XCJvdXRsaW5lXCIgc3R5bGU9XCJ0cmFuc2Zvcm06IHNjYWxlKDAuODUpO1wiIChjbGljayk9XCJleGNsdWlyTGluaGEoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwidHJhc2hcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIFxyXG4gICAgPGlvbi1tb2RhbCBbaXNPcGVuXT1cImlzRmlsdHJvT3BlblwiIChkaWREaXNtaXNzKT1cImlzRmlsdHJvT3BlbiA9IGZhbHNlO1wiPlxyXG4gICAgICA8bmctdGVtcGxhdGU+XHJcbiAgICAgICAgPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWl4YUdyYW5kZVwiPlxyXG4gICAgICAgICAgICBGaWx0cmFyOlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRDb2x1bmEuVmFsb3Jlc1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHZhbG9yIG9mIHNlbGVjdGVkQ29sdW5hLlZhbG9yZXNcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IHZhbG9yIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbnRlbnQ+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2lvbi1tb2RhbD5cclxuICA8L2Rpdj4iXX0=