@inovamobil/ic-databar-lib 2.1.7 → 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../projects/ic-databar-lib/src/lib/enum/estatus.ts","../../../projects/ic-databar-lib/src/lib/contrato/OnInitDataBar.ts","../../../projects/ic-databar-lib/src/lib/enum/eeventoclick.ts","../../../projects/ic-databar-lib/src/lib/contrato/DataBarConfigBotoesService.ts","../../../projects/ic-databar-lib/src/lib/services/ic-databar-event-click.service.ts","../../../projects/ic-databar-lib/src/components/dialogs/error-dialog/error-dialog.component.ts","../../../projects/ic-databar-lib/src/components/dialogs/error-dialog/service/error-dialog.service.ts","../../../projects/ic-databar-lib/src/lib/services/ic-databar-reverter.service.ts","../../../projects/ic-databar-lib/src/lib/services/ic-databar.service.ts","../../../projects/ic-databar-lib/src/lib/ic-data-bar.component.ts","../../../projects/ic-databar-lib/src/components/dialogs/error-dialog/error-dialog.module.ts","../../../projects/ic-databar-lib/src/lib/ic-data-bar.module.ts"],"names":["EStatus","OnInitDataBar","this","prototype","ngOnInit","onInit","servicoDataBarBind","status","novaPesquisa","statusChanged","statusDataBar","onStatusChanged","Object","defineProperty","inserindo","editando","removendo","Directive","EEventoClick","DataBarConfigBotoesService","desabilitarBotaoNovaPesquisa","args","_i","arguments","length","desabilitarBotaoReverter","desabilitarBotaoPesquisar","desabilitarBotaoEditar","desabilitarBotaoAdicionar","desabilitarBotaoRemover","desabilitarBotaoSalvar","desabilitarBotaoPrimeiro","desabilitarBotaoAnterior","desabilitarBotaoProximo","desabilitarBotaoUltimo","desabilitarBotaoModoTabela","exibirBotaoModoTabela","DatabarEventClickService","onEvent","emitir","evento","ErrorDialogComponent","dialogRef","data","mensagem","titulo","close","Component","selector","template","MatDialogRef","Inject","MAT_DIALOG_DATA","ErrorDialogService","dialog","openDialog","dialogConfig","MatDialogConfig","disableClose","autoFocus","minWidth","open","closeDialog","Injectable","providedIn","MatDialog","IcDatabarReverterService","_statusAnterior","setDadosAnteriores","formularo","entidadePaginada","_entidadePaginadaAnterior","entidade","posicao","quantidade","total","_dadosAnterioresFormulario","getRawValue","restaurarDadosAnteriores","formulario","patchValue","DatabarService","desabilitarForm","form","disable","emitEvent","onlySelf","habilitarForm","enable","resetForm","reset","emitirEventoClick","servico","eventDatabar","definirProgresso","progresso","DataBarComponent","_dialog","_dialogErro","_elementRef","_databarService","_snackBarService","disabled","EventEmitter","emProgresso","_servicoReverter","validarPropertsObrigatorias","setProgresso","_submeterFormularioOnEnter","observarSetStatus","_pesquisarPosicaoSelecionada","ngOnDestroy","servicoBind","onClickEnter","unsubscribe","$setStatus","fecharSidenav","event","nativeElement","contains","target","drawer","invalid","_a","servicoConfiguracaoBotoes","dadosCarregados","executarAcao","pesquisando","_b","inserindoOuEditando","onClickReverter","_exibirDialogConfirmacaoReverter","onClickModoTabela","_emitirEventoClick","onClickNovaPesquisa","afterClickNovaPesquisa","value","setStatus","pesquisar","_setDadosAnteriores","concat","_getEntidade","_paginar","inserir","onClickInserir","_clickInserir","afterClickInserir","editar","onClickEditar","_clickEditar","afterClickEditar","remover","onClickRemover","_clickRemover","afterClickRemover","proximo","anterior","ultimo","primeiro","salvar","onClickSalvar","_inserir","_editar","_this","salvando","criar","pipe","finalize","afterClickSalvar","subscribe","success","abrirSnackBarSucesso","retornarServicoReverter","_reverter","statusAnterior","afterClickReverter","_resetarContadorPaginacao","Error","emit","valid","pesquisarPosicaoSelecionada","_pesquisarSelecionado","markAllAsTouched","_exibirDialogConfirmacao","_acaoCloseDialogConfirmacao","acaoMensagem","acaoOk","acaoCancelar","acao","posicaoAnterior","listarPaginacao","error","console","IcConfirmaDialogService","ElementRef","IcmSnackBarService","Input","Output","ViewChild","static","HostListener","NgModule","declarations","imports","MatDialogModule","exports","entryComponents","CommonModule","MatToolbarModule","MatListModule","MatSidenavModule","MatIconModule","MatProgressSpinnerModule","MatDividerModule","MatButtonModule","MatTooltipModule","FlexLayoutModule","IcConfirmaDialogModule","ErrorDialogModule","IcmSnackBarModule","providers"],"mappings":"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","sourcesContent":["\r\nexport enum EStatus {\r\n novaPesquisa = 'Nova pesquisa',\r\n inserindo = 'Inserindo',\r\n editando = 'Editando',\r\n removendo = 'Removendo',\r\n dadosCarregados = 'Dados carregados',\r\n pesquisando = 'Pesquisando',\r\n executarAcao = 'Executar ação',\r\n salvando = 'Salvando'\r\n}\r\n","import { IDataBarBindComponent } from './IDataBarBind';\r\nimport { Component, Directive } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { IDataEntidadePaginada } from './IDataEntidadePaginada';\r\nimport { IDataBarBindService } from './IDataBarService';\r\nimport { EStatus } from '../enum/estatus';\r\n\r\n@Directive()\r\nexport abstract class OnInitDataBar<T> implements IDataBarBindComponent<T> {\r\n form: FormGroup;\r\n entidadePaginada: IDataEntidadePaginada<T>;\r\n statusDataBar: EStatus;\r\n servicoDataBarBind: IDataBarBindService<T>;\r\n EStatus: typeof EStatus = EStatus;\r\n\r\n abstract onStatusChanged(status: EStatus): void;\r\n\r\n abstract onInit(): void;\r\n\r\n ngOnInit(): void {\r\n this.onInit();\r\n this.servicoDataBarBind.status = EStatus.novaPesquisa;\r\n }\r\n\r\n statusChanged(status: EStatus): void {\r\n this.servicoDataBarBind.status = status;\r\n this.statusDataBar = status;\r\n this.onStatusChanged(status);\r\n }\r\n\r\n public get inserindoOuEditando(): boolean {\r\n return this.statusDataBar === EStatus.inserindo ||\r\n this.statusDataBar === EStatus.editando;\r\n }\r\n\r\n public get inserindo(): boolean {\r\n return this.statusDataBar === EStatus.inserindo;\r\n }\r\n\r\n public get editando(): boolean {\r\n return this.statusDataBar === EStatus.editando;\r\n }\r\n\r\n public get editandoOuRemovendo(): boolean {\r\n return (this.statusDataBar === EStatus.editando || this.statusDataBar === EStatus.removendo);\r\n }\r\n}\r\n","export enum EEventoClick {\r\n onClickInserir = 'onInserir',\r\n afterClickInserir = 'afterClickInserir',\r\n onClickReverter = \"onReverter\",\r\n afterClickReverter = \"afterClickReverter\",\r\n onClickNovaPesquisa = 'onNovaPesquisa',\r\n afterClickNovaPesquisa = 'afterClickNovaPesquisa',\r\n onClickEditar = 'onEditar',\r\n afterClickEditar = 'afterClickEditar',\r\n onClickRemover = 'onRemover',\r\n afterClickRemover = 'afterClickRemover',\r\n onClickSalvar = 'onClickSalvar',\r\n afterClickSalvar = 'afterClickSalvar',\r\n onClickModoTabela= 'onClickModoTabela'\r\n}\r\n\r\n","export abstract class DataBarConfigBotoesService {\r\n desabilitarBotaoNovaPesquisa(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoReverter(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoPesquisar(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoEditar(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoAdicionar(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoRemover(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoSalvar(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoPrimeiro(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoAnterior(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoProximo(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoUltimo(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoModoTabela(...args): boolean {\r\n return false;\r\n }\r\n\r\n exibirBotaoModoTabela(...args): boolean {\r\n return false;\r\n }\r\n}\r\n","import { EEventoClick } from '../enum/eeventoclick';\r\n\r\nexport class DatabarEventClickService {\r\n\r\n constructor(private onEvent: (event: EEventoClick) => void) {}\r\n \r\n emitir(evento: EEventoClick): void {\r\n this.onEvent(evento);\r\n }\r\n\r\n}\r\n","import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Inject, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'confirma-dialog',\r\n templateUrl: './view/error-dialog.html',\r\n styleUrls: ['./view/error-dialog.scss']\r\n})\r\nexport class ErrorDialogComponent {\r\n\r\n mensagem: string;\r\n titulo: string;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef<ErrorDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) data) {\r\n\r\n this.mensagem = data.mensagem;\r\n this.titulo = data.titulo;\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\r\n","import { MatDialogConfig, MatDialog } from '@angular/material/dialog';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ErrorDialogComponent } from '../error-dialog.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class ErrorDialogService {\r\n\r\n dialogRef: any;\r\n\r\n constructor(private dialog: MatDialog) { }\r\n\r\n openDialog(titulo: string, mensagem: string): void {\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = true;\r\n\r\n dialogConfig.data = {\r\n titulo: titulo,\r\n mensagem: mensagem\r\n };\r\n\r\n dialogConfig.minWidth = '300px';\r\n\r\n this.dialogRef = this.dialog.open(ErrorDialogComponent, dialogConfig);\r\n\r\n }\r\n\r\n closeDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { EStatus } from '../enum/estatus';\r\nimport { IDataEntidadePaginada } from '../contrato/IDataEntidadePaginada';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { IDataBarReverterService } from '../contrato/IDataBarReverterService';\r\n\r\n@Injectable()\r\nexport class IcDatabarReverterService<T> implements IDataBarReverterService<T>{\r\n\r\n private _statusAnterior: EStatus;\r\n private _dadosAnterioresFormulario: T;\r\n private _entidadePaginadaAnterior: IDataEntidadePaginada<T>;\r\n\r\n get statusAnterior(): EStatus {\r\n return this._statusAnterior;\r\n }\r\n\r\n public setDadosAnteriores(status: EStatus, formularo: FormGroup, entidadePaginada: IDataEntidadePaginada<T>): void {\r\n this._entidadePaginadaAnterior = {\r\n entidade: entidadePaginada.entidade,\r\n posicao: entidadePaginada.posicao,\r\n quantidade: entidadePaginada.quantidade,\r\n total: entidadePaginada.total\r\n } as IDataEntidadePaginada<T>;\r\n\r\n this._dadosAnterioresFormulario = formularo.getRawValue();\r\n this._statusAnterior = status;\r\n }\r\n\r\n public restaurarDadosAnteriores(formulario: FormGroup): IDataEntidadePaginada<T> {\r\n formulario.patchValue(this._dadosAnterioresFormulario);\r\n return this._entidadePaginadaAnterior;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { IDataEntidadePaginada } from '../contrato/IDataEntidadePaginada';\r\nimport { IDatabarBindOnClickService, EEventoClick } from '../../public-api';\r\n\r\n@Injectable()\r\nexport class DatabarService {\r\n\r\n\r\n constructor() { }\r\n\r\n public desabilitarForm(form: FormGroup): void {\r\n form.disable({ emitEvent: false, onlySelf: true });\r\n }\r\n\r\n public habilitarForm(form: FormGroup): void {\r\n form.enable({ emitEvent: false, onlySelf: true });\r\n }\r\n\r\n public resetForm(form: FormGroup, entidadePaginada: IDataEntidadePaginada<any>): void {\r\n form.reset({ emitEvent: false, onlySelf: true });\r\n entidadePaginada.entidade = null;\r\n entidadePaginada.posicao = 0;\r\n entidadePaginada.total = 0;\r\n }\r\n\r\n public emitirEventoClick<T>(servico: IDatabarBindOnClickService<T>, evento: EEventoClick): void {\r\n if (servico.eventDatabar) {\r\n servico.eventDatabar.emitir(evento);\r\n }\r\n }\r\n\r\n definirProgresso(form: FormGroup, progresso: boolean): boolean {\r\n if (!form)\r\n return;\r\n\r\n if (progresso)\r\n this.desabilitarForm(form);\r\n else\r\n this.habilitarForm(form);\r\n\r\n return progresso;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MatDrawer } from '@angular/material/sidenav';\r\nimport { IcConfirmaDialogService } from '@inovamobil/ic-confirma-dialog';\r\nimport { IcmSnackBarService } from '@inovamobil/icm-snackbar';\r\nimport { Subscription } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\nimport { ErrorDialogService } from '../components/dialogs/error-dialog/service/error-dialog.service';\r\nimport { IDatabarBindStatusService } from '../public-api';\r\nimport { ACAO_PAGINACAO } from './constants/ic-databar.constants';\r\nimport { DataBarConfigBotoesService } from './contrato/DataBarConfigBotoesService';\r\nimport { IDatabarBindOnClickService } from './contrato/IDataBarBindOnClickService';\r\nimport { IDataBarReverterService } from './contrato/IDataBarReverterService';\r\nimport { IDataBarBindService } from './contrato/IDataBarService';\r\nimport { IDataEntidadePaginada } from './contrato/IDataEntidadePaginada';\r\nimport { EEventoClick } from './enum/eeventoclick';\r\nimport { EStatus } from './enum/estatus';\r\nimport { IcDatabarReverterService } from './services/ic-databar-reverter.service';\r\nimport { DatabarService } from './services/ic-databar.service';\r\n\r\n@Component({\r\n selector: 'ic-data-bar',\r\n templateUrl: './view/ic-data-bar.component.html',\r\n styleUrls: ['./view/ic-data-bar.component.scss'],\r\n})\r\nexport class DataBarComponent<T> implements OnInit, OnDestroy {\r\n @Input() servicoBind:\r\n | IDataBarBindService<T>\r\n | IDatabarBindStatusService<T>\r\n | IDatabarBindOnClickService<T>;\r\n @Input() form: FormGroup;\r\n @Input() entidadePaginada: IDataEntidadePaginada<T>;\r\n @Input() disabled = false;\r\n @Input() servicoConfiguracaoBotoes: DataBarConfigBotoesService;\r\n @Input() set servicoReverter(servico: IDataBarReverterService<T>) {\r\n this._servicoReverter = servico;\r\n }\r\n\r\n @Output() statusChanged = new EventEmitter<EStatus>();\r\n\r\n public status: EStatus;\r\n public EStatus = EStatus;\r\n public emProgresso = false;\r\n private _servicoReverter: IDataBarReverterService<T>;\r\n private $setStatus: Subscription;\r\n\r\n @ViewChild('drawer', { static: false }) drawer: MatDrawer;\r\n\r\n constructor(\r\n private _dialog: IcConfirmaDialogService,\r\n private _dialogErro: ErrorDialogService,\r\n private _elementRef: ElementRef,\r\n private _databarService: DatabarService,\r\n private _snackBarService: IcmSnackBarService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.validarPropertsObrigatorias();\r\n this.setProgresso(false);\r\n this.novaPesquisa();\r\n this._submeterFormularioOnEnter();\r\n this.observarSetStatus();\r\n this._pesquisarPosicaoSelecionada();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.servicoBind.onClickEnter) this.servicoBind.onClickEnter.unsubscribe();\r\n\r\n if (this.$setStatus) this.$setStatus.unsubscribe();\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n fecharSidenav(event): void {\r\n if (this._elementRef.nativeElement.contains(event.target)) {\r\n return;\r\n }\r\n this.drawer.close();\r\n }\r\n\r\n get inserindoOuEditando(): boolean {\r\n return this.status === EStatus.inserindo || this.status === EStatus.editando;\r\n }\r\n\r\n get desabilitarBotaoModoTabela(): boolean {\r\n return (\r\n this.status == EStatus.inserindo ||\r\n this.status == EStatus.editando ||\r\n this.emProgresso ||\r\n this.form.invalid ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoModoTabela()\r\n );\r\n }\r\n\r\n get desabilitarBotaoPesquisar(): boolean {\r\n return (\r\n this.status == EStatus.inserindo ||\r\n this.status == EStatus.editando ||\r\n this.status == EStatus.dadosCarregados ||\r\n this.emProgresso ||\r\n this.form.invalid ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoPesquisar()\r\n );\r\n }\r\n\r\n get desabilitarBotaoReverter(): boolean {\r\n return (\r\n this.status == EStatus.novaPesquisa ||\r\n this.status == EStatus.executarAcao ||\r\n this.status == EStatus.dadosCarregados ||\r\n this.emProgresso ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoReverter()\r\n );\r\n }\r\n\r\n get desabilitarBotaoAdicionar(): boolean {\r\n return (\r\n this.status == EStatus.editando ||\r\n this.status == EStatus.inserindo ||\r\n this.emProgresso ||\r\n this.disabled ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoAdicionar()\r\n );\r\n }\r\n\r\n get desabilitarBotaoEditar(): boolean {\r\n return (\r\n this.status == EStatus.inserindo ||\r\n this.status == EStatus.novaPesquisa ||\r\n this.status == EStatus.executarAcao ||\r\n this.status == EStatus.pesquisando ||\r\n this.status == EStatus.editando ||\r\n this.emProgresso ||\r\n this.disabled ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoEditar()\r\n );\r\n }\r\n\r\n get desabilitarBotaoRemover(): boolean {\r\n return (\r\n !this.entidadePaginada?.entidade ||\r\n this.status != EStatus.dadosCarregados ||\r\n this.emProgresso ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoRemover()\r\n );\r\n }\r\n\r\n get desabilitarBotaoSalvar(): boolean {\r\n return (\r\n this.form?.invalid ||\r\n (this.status != EStatus.inserindo && this.status != EStatus.editando) ||\r\n this.emProgresso ||\r\n this.disabled ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoSalvar()\r\n );\r\n }\r\n\r\n get desabilitarBotoesPaginacaoRetroceder(): boolean {\r\n return (\r\n this.inserindoOuEditando ||\r\n this.entidadePaginada.posicao <= 1 ||\r\n this.emProgresso\r\n );\r\n }\r\n\r\n get desabilitarBotoesPaginacaoAvancar(): boolean {\r\n return (\r\n this.inserindoOuEditando ||\r\n this.entidadePaginada.posicao >= this.entidadePaginada.total ||\r\n this.emProgresso\r\n );\r\n }\r\n\r\n onClickReverter(): void {\r\n this._exibirDialogConfirmacaoReverter();\r\n }\r\n\r\n onClickModoTabela(): void {\r\n this._emitirEventoClick(EEventoClick.onClickModoTabela);\r\n }\r\n\r\n onClickNovaPesquisa(): void {\r\n this._emitirEventoClick(EEventoClick.onClickNovaPesquisa);\r\n this.novaPesquisa();\r\n this._emitirEventoClick(EEventoClick.afterClickNovaPesquisa);\r\n }\r\n\r\n novaPesquisa(): void {\r\n this._databarService.habilitarForm(this.form);\r\n this.form.reset({ emitEvent: false, onlySelf: true });\r\n this.entidadePaginada.entidade = this.form.value;\r\n this.entidadePaginada.posicao = 0;\r\n this.entidadePaginada.total = 0;\r\n this.setStatus(EStatus.novaPesquisa);\r\n }\r\n\r\n pesquisar(): void {\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this._setDadosAnteriores();\r\n this.setStatus(EStatus.pesquisando);\r\n this.entidadePaginada.entidade = [].concat(this._getEntidade());\r\n this._paginar();\r\n this.drawer.close();\r\n }\r\n\r\n inserir(): void {\r\n this._emitirEventoClick(EEventoClick.onClickInserir);\r\n this._clickInserir();\r\n this._emitirEventoClick(EEventoClick.afterClickInserir);\r\n }\r\n\r\n editar(): void {\r\n this._emitirEventoClick(EEventoClick.onClickEditar);\r\n this._clickEditar();\r\n this._emitirEventoClick(EEventoClick.afterClickEditar);\r\n }\r\n\r\n remover(): void {\r\n this._emitirEventoClick(EEventoClick.onClickRemover);\r\n this._clickRemover();\r\n this._emitirEventoClick(EEventoClick.afterClickRemover);\r\n }\r\n\r\n proximo(): void {\r\n this._paginar('proximo');\r\n }\r\n\r\n anterior(): void {\r\n this._paginar('anterior');\r\n }\r\n\r\n ultimo(): void {\r\n this._paginar('ultimo');\r\n }\r\n\r\n primeiro(): void {\r\n this._paginar('primeiro');\r\n }\r\n\r\n salvar(): void {\r\n this._emitirEventoClick(EEventoClick.onClickSalvar);\r\n\r\n switch (this.status) {\r\n case EStatus.inserindo:\r\n this._inserir();\r\n break;\r\n\r\n case EStatus.editando:\r\n this._editar();\r\n break;\r\n }\r\n }\r\n\r\n private _inserir(): void {\r\n this.setStatus(EStatus.salvando);\r\n this.setProgresso(true);\r\n this.servicoBind\r\n .criar()\r\n .pipe(\r\n finalize(() => {\r\n this._emitirEventoClick(EEventoClick.afterClickSalvar);\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n this.setProgresso(false);\r\n\r\n this._snackBarService.abrirSnackBarSucesso(\r\n 'Registro salvo com sucesso!'\r\n );\r\n\r\n this.form.patchValue(success);\r\n\r\n this.setStatus(EStatus.dadosCarregados);\r\n\r\n this.drawer.close();\r\n\r\n this._databarService.desabilitarForm(this.form);\r\n },\r\n () => {\r\n this.setProgresso(false);\r\n this.setStatus(EStatus.inserindo);\r\n }\r\n );\r\n }\r\n\r\n private _editar(): void {\r\n this.setStatus(EStatus.salvando);\r\n this.setProgresso(true);\r\n this.servicoBind\r\n .editar()\r\n .pipe(\r\n finalize(() => {\r\n this._emitirEventoClick(EEventoClick.afterClickSalvar);\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n this._snackBarService.abrirSnackBarSucesso(\r\n 'Registro editado com sucesso!'\r\n );\r\n\r\n this.form.patchValue(success);\r\n\r\n this.setProgresso(false);\r\n\r\n this.setStatus(EStatus.dadosCarregados);\r\n\r\n this._databarService.desabilitarForm(this.form);\r\n\r\n this.drawer.close();\r\n },\r\n () => {\r\n this.setProgresso(false);\r\n this.setStatus(EStatus.editando);\r\n }\r\n );\r\n }\r\n\r\n private observarSetStatus(): void {\r\n if ((this.servicoBind as IDatabarBindStatusService<T>).setStatus) {\r\n this.$setStatus = (\r\n this.servicoBind as IDatabarBindStatusService<T>\r\n ).setStatus.subscribe((status) => {\r\n switch (status) {\r\n case EStatus.editando:\r\n this.editar();\r\n this.emProgresso = false;\r\n break;\r\n case EStatus.inserindo:\r\n this.inserir();\r\n this.emProgresso = false;\r\n break;\r\n case EStatus.pesquisando:\r\n this.pesquisar();\r\n break;\r\n case EStatus.novaPesquisa:\r\n this.novaPesquisa();\r\n break;\r\n case EStatus.removendo:\r\n this.remover();\r\n break;\r\n case EStatus.dadosCarregados:\r\n this.status = EStatus.dadosCarregados;\r\n this.emProgresso = false;\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private retornarServicoReverter(): IDataBarReverterService<T> {\r\n if (this._servicoReverter == null)\r\n this._servicoReverter = new IcDatabarReverterService();\r\n\r\n return this._servicoReverter;\r\n }\r\n\r\n private _setDadosAnteriores(): void {\r\n this.retornarServicoReverter().setDadosAnteriores(\r\n this.status,\r\n this.form,\r\n this.entidadePaginada\r\n );\r\n }\r\n\r\n private _reverter(): void {\r\n this._emitirEventoClick(EEventoClick.onClickReverter);\r\n this.entidadePaginada = this.retornarServicoReverter().restaurarDadosAnteriores(\r\n this.form\r\n );\r\n const statusAnterior = this.retornarServicoReverter().statusAnterior;\r\n\r\n if (statusAnterior == EStatus.dadosCarregados)\r\n this._databarService.desabilitarForm(this.form);\r\n else this._databarService.habilitarForm(this.form);\r\n\r\n this.setStatus(statusAnterior);\r\n this._emitirEventoClick(EEventoClick.afterClickReverter);\r\n }\r\n\r\n private _resetarContadorPaginacao(): void {\r\n this.entidadePaginada.posicao = 0;\r\n this.entidadePaginada.total = 0;\r\n }\r\n\r\n private validarPropertsObrigatorias(): any {\r\n if (this.servicoBind == null) {\r\n throw new Error('É obrigatório ter um serviço de bind vinculado.');\r\n }\r\n\r\n if (this.entidadePaginada == null) {\r\n throw new Error('É obrigatório ter uma entidade paginada vinculada.');\r\n }\r\n }\r\n\r\n private setStatus(status: EStatus): void {\r\n if (!status) {\r\n return;\r\n }\r\n this.status = status;\r\n this.statusChanged.emit(this.status);\r\n }\r\n\r\n private _getEntidade(): T {\r\n const result = this.form.getRawValue() as T;\r\n return result;\r\n }\r\n\r\n private _submeterFormularioOnEnter(): void {\r\n if (!this.servicoBind.onClickEnter) return;\r\n this.servicoBind.onClickEnter.subscribe(() => {\r\n if (this.status === EStatus.novaPesquisa && this.form.valid) {\r\n this.pesquisar();\r\n }\r\n });\r\n }\r\n\r\n private _pesquisarPosicaoSelecionada(): void {\r\n if (!this.servicoBind.pesquisarPosicaoSelecionada) return;\r\n\r\n this.servicoBind.pesquisarPosicaoSelecionada.subscribe((posicao) => {\r\n if (this.status === EStatus.novaPesquisa && this.form.valid) {\r\n this.entidadePaginada.posicao = posicao;\r\n this._pesquisarSelecionado();\r\n }\r\n });\r\n }\r\n\r\n private _pesquisarSelecionado(): void {\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this._setDadosAnteriores();\r\n this.setStatus(EStatus.pesquisando);\r\n this._paginar('customizado');\r\n this.drawer.close();\r\n }\r\n\r\n private _clickInserir(): void {\r\n this._setDadosAnteriores();\r\n this._resetarContadorPaginacao();\r\n this._databarService.habilitarForm(this.form);\r\n this.form.reset({ emitEvent: false, onlySelf: true });\r\n this.form.markAllAsTouched();\r\n this.drawer.close();\r\n this.setStatus(EStatus.inserindo);\r\n }\r\n\r\n private _clickEditar(): void {\r\n this._setDadosAnteriores();\r\n this._databarService.habilitarForm(this.form);\r\n\r\n this.form.markAllAsTouched();\r\n this.drawer.close();\r\n this.setStatus(EStatus.editando);\r\n }\r\n\r\n private _clickRemover(): void {\r\n this.setStatus(EStatus.removendo);\r\n this._exibirDialogConfirmacao();\r\n this.drawer.close();\r\n }\r\n\r\n private _emitirEventoClick(evento: EEventoClick): void {\r\n return this._databarService.emitirEventoClick<T>(\r\n this.servicoBind as IDatabarBindOnClickService<T>,\r\n evento\r\n );\r\n }\r\n\r\n private _acaoCloseDialogConfirmacao(): void {\r\n this._dialog.emProgresso = false;\r\n this._dialog.closeDialog();\r\n this.setStatus(EStatus.dadosCarregados);\r\n }\r\n\r\n private _exibirDialogConfirmacao(): void {\r\n this._dialog.acaoMensagem = 'Removendo registro...';\r\n this._dialog.acaoOk = () =>\r\n this.servicoBind.remover().subscribe(\r\n () => {\r\n this._dialog.closeDialog();\r\n this.novaPesquisa();\r\n this._dialog.emProgresso = false;\r\n this._snackBarService.abrirSnackBarSucesso('Removido com sucesso!');\r\n },\r\n () => this._acaoCloseDialogConfirmacao()\r\n );\r\n this._dialog.acaoCancelar = () => {\r\n this._acaoCloseDialogConfirmacao();\r\n };\r\n\r\n this._dialog.openDialog(\r\n 'Atenção!',\r\n 'Você realmente deseja excluir este registro?'\r\n );\r\n }\r\n\r\n private _exibirDialogConfirmacaoReverter(): void {\r\n this._dialog.acaoOk = () => {\r\n this._reverter();\r\n this._dialog.emProgresso = false;\r\n this._dialog.closeDialog();\r\n };\r\n\r\n this._dialog.acaoCancelar = () => {\r\n this._dialog.closeDialog();\r\n };\r\n\r\n this._dialog.openDialog(\r\n 'Atenção!',\r\n 'As alterações realizadas serão perdidas. Deseja continuar?'\r\n );\r\n }\r\n\r\n private _paginar(acao?: ACAO_PAGINACAO): void {\r\n this.setStatus(EStatus.pesquisando);\r\n\r\n if (this.entidadePaginada.entidade == null) {\r\n this.entidadePaginada.entidade = [].concat(this._getEntidade());\r\n }\r\n\r\n const posicaoAnterior = this.entidadePaginada.posicao;\r\n\r\n switch (acao) {\r\n case 'primeiro':\r\n this.entidadePaginada.posicao = 1;\r\n break;\r\n case 'ultimo':\r\n this.entidadePaginada.posicao = this.entidadePaginada.total;\r\n break;\r\n case 'proximo':\r\n this.entidadePaginada.posicao++;\r\n break;\r\n case 'anterior':\r\n this.entidadePaginada.posicao--;\r\n break;\r\n case 'customizado':\r\n break;\r\n default:\r\n this.entidadePaginada.posicao = 0;\r\n break;\r\n }\r\n\r\n this.setProgresso(true);\r\n\r\n this.servicoBind.listarPaginacao(this.entidadePaginada).subscribe(\r\n (success) => {\r\n this.setProgresso(false);\r\n\r\n if (success == null) {\r\n this._dialogErro.openDialog(\r\n 'Atenção!',\r\n 'Nenhum registro foi encontrado.'\r\n );\r\n this.setStatus(EStatus.novaPesquisa);\r\n return;\r\n }\r\n\r\n if (success.entidade == null) {\r\n this._databarService.resetForm(this.form, this.entidadePaginada);\r\n this.setStatus(EStatus.novaPesquisa);\r\n return;\r\n }\r\n\r\n this.setStatus(EStatus.dadosCarregados);\r\n\r\n if (!this.entidadePaginada.entidade) {\r\n this.entidadePaginada = success;\r\n } else {\r\n this.entidadePaginada.total = success.total;\r\n this.entidadePaginada.posicao = success.posicao;\r\n }\r\n\r\n this.form.patchValue(success.entidade[0]);\r\n\r\n this.setProgresso(false);\r\n\r\n this._databarService.desabilitarForm(this.form);\r\n },\r\n (error) => {\r\n console.error('erro paginação', error);\r\n this.setStatus(EStatus.dadosCarregados);\r\n this.entidadePaginada.posicao = posicaoAnterior;\r\n this.setProgresso(false);\r\n this._databarService.desabilitarForm(this.form);\r\n }\r\n );\r\n }\r\n\r\n private setProgresso(progresso: boolean): void {\r\n this.emProgresso = this._databarService.definirProgresso(this.form, progresso);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { ErrorDialogComponent } from './error-dialog.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [ErrorDialogComponent],\r\n imports: [\r\n MatDialogModule\r\n ],\r\n exports: [ErrorDialogComponent],\r\n entryComponents: [ErrorDialogComponent]\r\n})\r\nexport class ErrorDialogModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IcConfirmaDialogModule } from '@inovamobil/ic-confirma-dialog';\r\nimport { DataBarComponent } from './ic-data-bar.component';\r\nimport { ErrorDialogModule } from '../components/dialogs/error-dialog/error-dialog.module';\r\nimport { DatabarService } from './services/ic-databar.service';\r\nimport { IcmSnackBarModule } from '@inovamobil/icm-snackbar';\r\n\r\n@NgModule({\r\n declarations: [DataBarComponent],\r\n imports: [\r\n CommonModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatSidenavModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatDividerModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n FlexLayoutModule,\r\n IcConfirmaDialogModule,\r\n ErrorDialogModule,\r\n IcmSnackBarModule\r\n ],\r\n exports: [DataBarComponent],\r\n providers: [DatabarService]\r\n})\r\nexport class DataBarModule { }\r\n"]}
1
+ {"version":3,"sources":["../../../projects/ic-databar-lib/src/lib/enum/estatus.ts","../../../projects/ic-databar-lib/src/lib/contrato/OnInitDataBar.ts","../../../projects/ic-databar-lib/src/lib/enum/eeventoclick.ts","../../../projects/ic-databar-lib/src/lib/contrato/DataBarConfigBotoesService.ts","../../../projects/ic-databar-lib/src/lib/services/ic-databar-event-click.service.ts","../../../projects/ic-databar-lib/src/components/dialogs/error-dialog/error-dialog.component.ts","../../../projects/ic-databar-lib/src/components/dialogs/error-dialog/service/error-dialog.service.ts","../../../projects/ic-databar-lib/src/lib/services/ic-databar-reverter.service.ts","../../../projects/ic-databar-lib/src/lib/services/ic-databar.service.ts","../../../projects/ic-databar-lib/src/lib/ic-data-bar.component.ts","../../../projects/ic-databar-lib/src/components/dialogs/error-dialog/error-dialog.module.ts","../../../projects/ic-databar-lib/src/lib/ic-data-bar.module.ts"],"names":["EStatus","OnInitDataBar","this","prototype","ngOnInit","onInit","servicoDataBarBind","status","novaPesquisa","statusChanged","statusDataBar","onStatusChanged","Object","defineProperty","inserindo","editando","removendo","Directive","EEventoClick","DataBarConfigBotoesService","desabilitarBotaoNovaPesquisa","args","_i","arguments","length","desabilitarBotaoReverter","desabilitarBotaoPesquisar","desabilitarBotaoEditar","desabilitarBotaoAdicionar","desabilitarBotaoRemover","desabilitarBotaoSalvar","desabilitarBotaoPrimeiro","desabilitarBotaoAnterior","desabilitarBotaoProximo","desabilitarBotaoUltimo","desabilitarBotaoModoTabela","exibirBotaoModoTabela","DatabarEventClickService","onEvent","emitir","evento","ErrorDialogComponent","dialogRef","data","mensagem","titulo","close","Component","selector","template","MatDialogRef","Inject","MAT_DIALOG_DATA","ErrorDialogService","dialog","openDialog","dialogConfig","MatDialogConfig","disableClose","autoFocus","minWidth","open","closeDialog","Injectable","providedIn","MatDialog","IcDatabarReverterService","_statusAnterior","setDadosAnteriores","formularo","entidadePaginada","_entidadePaginadaAnterior","entidade","posicao","quantidade","total","_dadosAnterioresFormulario","getRawValue","restaurarDadosAnteriores","formulario","patchValue","DatabarService","desabilitarForm","form","disable","emitEvent","onlySelf","habilitarForm","enable","resetForm","reset","emitirEventoClick","servico","eventDatabar","definirProgresso","progresso","DataBarComponent","_dialog","_dialogErro","_elementRef","_databarService","_snackBarService","disabled","EventEmitter","emProgresso","_servicoReverter","validarPropertsObrigatorias","setProgresso","_submeterFormularioOnEnter","observarSetStatus","_pesquisarPosicaoSelecionada","ngOnDestroy","servicoBind","onClickEnter","unsubscribe","$setStatus","fecharSidenav","event","nativeElement","contains","target","drawer","invalid","_a","servicoConfiguracaoBotoes","dadosCarregados","executarAcao","pesquisando","_b","inserindoOuEditando","onClickReverter","_exibirDialogConfirmacaoReverter","onClickModoTabela","_emitirEventoClick","onClickNovaPesquisa","afterClickNovaPesquisa","value","setStatus","pesquisar","_setDadosAnteriores","concat","_getEntidade","_paginar","inserir","onClickInserir","_clickInserir","afterClickInserir","editar","onClickEditar","_clickEditar","afterClickEditar","remover","onClickRemover","_clickRemover","afterClickRemover","proximo","anterior","ultimo","primeiro","salvar","onClickSalvar","_inserir","_editar","_this","salvando","criar","pipe","finalize","afterClickSalvar","subscribe","success","abrirSnackBarSucesso","retornarServicoReverter","_reverter","statusAnterior","afterClickReverter","_resetarContadorPaginacao","Error","emit","valid","pesquisarPosicaoSelecionada","_pesquisarSelecionado","markAllAsTouched","_exibirDialogConfirmacao","_acaoCloseDialogConfirmacao","acaoMensagem","acaoOk","acaoCancelar","acao","posicaoAnterior","listarPaginacao","error","console","IcConfirmaDialogService","ElementRef","IcmSnackBarService","Input","Output","ViewChild","static","HostListener","NgModule","declarations","imports","MatDialogModule","exports","entryComponents","CommonModule","MatToolbarModule","MatListModule","MatSidenavModule","MatIconModule","MatProgressSpinnerModule","MatDividerModule","MatButtonModule","MatTooltipModule","FlexLayoutModule","IcConfirmaDialogModule","ErrorDialogModule","IcmSnackBarModule","providers"],"mappings":"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","sourcesContent":["\r\nexport enum EStatus {\r\n novaPesquisa = 'Nova pesquisa',\r\n inserindo = 'Inserindo',\r\n editando = 'Editando',\r\n removendo = 'Removendo',\r\n dadosCarregados = 'Dados carregados',\r\n pesquisando = 'Pesquisando',\r\n executarAcao = 'Executar ação',\r\n salvando = 'Salvando'\r\n}\r\n","import { IDataBarBindComponent } from './IDataBarBind';\r\nimport { Component, Directive } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { IDataEntidadePaginada } from './IDataEntidadePaginada';\r\nimport { IDataBarBindService } from './IDataBarService';\r\nimport { EStatus } from '../enum/estatus';\r\n\r\n@Directive()\r\nexport abstract class OnInitDataBar<T> implements IDataBarBindComponent<T> {\r\n form: FormGroup;\r\n entidadePaginada: IDataEntidadePaginada<T>;\r\n statusDataBar: EStatus;\r\n servicoDataBarBind: IDataBarBindService<T>;\r\n EStatus: typeof EStatus = EStatus;\r\n\r\n abstract onStatusChanged(status: EStatus): void;\r\n\r\n abstract onInit(): void;\r\n\r\n ngOnInit(): void {\r\n this.onInit();\r\n this.servicoDataBarBind.status = EStatus.novaPesquisa;\r\n }\r\n\r\n statusChanged(status: EStatus): void {\r\n this.servicoDataBarBind.status = status;\r\n this.statusDataBar = status;\r\n this.onStatusChanged(status);\r\n }\r\n\r\n public get inserindoOuEditando(): boolean {\r\n return this.statusDataBar === EStatus.inserindo ||\r\n this.statusDataBar === EStatus.editando;\r\n }\r\n\r\n public get inserindo(): boolean {\r\n return this.statusDataBar === EStatus.inserindo;\r\n }\r\n\r\n public get editando(): boolean {\r\n return this.statusDataBar === EStatus.editando;\r\n }\r\n\r\n public get editandoOuRemovendo(): boolean {\r\n return (this.statusDataBar === EStatus.editando || this.statusDataBar === EStatus.removendo);\r\n }\r\n}\r\n","export enum EEventoClick {\r\n onClickInserir = 'onInserir',\r\n afterClickInserir = 'afterClickInserir',\r\n onClickReverter = \"onReverter\",\r\n afterClickReverter = \"afterClickReverter\",\r\n onClickNovaPesquisa = 'onNovaPesquisa',\r\n afterClickNovaPesquisa = 'afterClickNovaPesquisa',\r\n onClickEditar = 'onEditar',\r\n afterClickEditar = 'afterClickEditar',\r\n onClickRemover = 'onRemover',\r\n afterClickRemover = 'afterClickRemover',\r\n onClickSalvar = 'onClickSalvar',\r\n afterClickSalvar = 'afterClickSalvar',\r\n onClickModoTabela= 'onClickModoTabela'\r\n}\r\n\r\n","export abstract class DataBarConfigBotoesService {\r\n desabilitarBotaoNovaPesquisa(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoReverter(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoPesquisar(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoEditar(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoAdicionar(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoRemover(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoSalvar(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoPrimeiro(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoAnterior(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoProximo(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoUltimo(...args): boolean {\r\n return false;\r\n }\r\n\r\n desabilitarBotaoModoTabela(...args): boolean {\r\n return false;\r\n }\r\n\r\n exibirBotaoModoTabela(...args): boolean {\r\n return false;\r\n }\r\n}\r\n","import { EEventoClick } from '../enum/eeventoclick';\r\n\r\nexport class DatabarEventClickService {\r\n\r\n constructor(private onEvent: (event: EEventoClick) => void) {}\r\n \r\n emitir(evento: EEventoClick): void {\r\n this.onEvent(evento);\r\n }\r\n\r\n}\r\n","import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Inject, Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'confirma-dialog',\r\n templateUrl: './view/error-dialog.html',\r\n styleUrls: ['./view/error-dialog.scss']\r\n})\r\nexport class ErrorDialogComponent {\r\n\r\n mensagem: string;\r\n titulo: string;\r\n\r\n constructor(\r\n private dialogRef: MatDialogRef<ErrorDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) data) {\r\n\r\n this.mensagem = data.mensagem;\r\n this.titulo = data.titulo;\r\n }\r\n\r\n close(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n\r\n","import { MatDialogConfig, MatDialog } from '@angular/material/dialog';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ErrorDialogComponent } from '../error-dialog.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport abstract class ErrorDialogService {\r\n\r\n dialogRef: any;\r\n\r\n constructor(private dialog: MatDialog) { }\r\n\r\n openDialog(titulo: string, mensagem: string): void {\r\n const dialogConfig = new MatDialogConfig();\r\n dialogConfig.disableClose = true;\r\n dialogConfig.autoFocus = true;\r\n\r\n dialogConfig.data = {\r\n titulo: titulo,\r\n mensagem: mensagem\r\n };\r\n\r\n dialogConfig.minWidth = '300px';\r\n\r\n this.dialogRef = this.dialog.open(ErrorDialogComponent, dialogConfig);\r\n\r\n }\r\n\r\n closeDialog(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { EStatus } from '../enum/estatus';\r\nimport { IDataEntidadePaginada } from '../contrato/IDataEntidadePaginada';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { IDataBarReverterService } from '../contrato/IDataBarReverterService';\r\n\r\n@Injectable()\r\nexport class IcDatabarReverterService<T> implements IDataBarReverterService<T>{\r\n\r\n private _statusAnterior: EStatus;\r\n private _dadosAnterioresFormulario: T;\r\n private _entidadePaginadaAnterior: IDataEntidadePaginada<T>;\r\n\r\n get statusAnterior(): EStatus {\r\n return this._statusAnterior;\r\n }\r\n\r\n public setDadosAnteriores(status: EStatus, formularo: FormGroup, entidadePaginada: IDataEntidadePaginada<T>): void {\r\n this._entidadePaginadaAnterior = {\r\n entidade: entidadePaginada.entidade,\r\n posicao: entidadePaginada.posicao,\r\n quantidade: entidadePaginada.quantidade,\r\n total: entidadePaginada.total\r\n } as IDataEntidadePaginada<T>;\r\n\r\n this._dadosAnterioresFormulario = formularo.getRawValue();\r\n this._statusAnterior = status;\r\n }\r\n\r\n public restaurarDadosAnteriores(formulario: FormGroup): IDataEntidadePaginada<T> {\r\n formulario.patchValue(this._dadosAnterioresFormulario);\r\n return this._entidadePaginadaAnterior;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\n\r\nimport { IDataEntidadePaginada } from '../contrato/IDataEntidadePaginada';\r\nimport { IDatabarBindOnClickService, EEventoClick } from '../../public-api';\r\n\r\n@Injectable()\r\nexport class DatabarService {\r\n\r\n\r\n constructor() { }\r\n\r\n public desabilitarForm(form: FormGroup): void {\r\n form.disable({ emitEvent: false, onlySelf: true });\r\n }\r\n\r\n public habilitarForm(form: FormGroup): void {\r\n form.enable({ emitEvent: false, onlySelf: true });\r\n }\r\n\r\n public resetForm(form: FormGroup, entidadePaginada: IDataEntidadePaginada<any>): void {\r\n form.reset({ emitEvent: false, onlySelf: true });\r\n entidadePaginada.entidade = null;\r\n entidadePaginada.posicao = 0;\r\n entidadePaginada.total = 0;\r\n }\r\n\r\n public emitirEventoClick<T>(servico: IDatabarBindOnClickService<T>, evento: EEventoClick): void {\r\n if (servico.eventDatabar) {\r\n servico.eventDatabar.emitir(evento);\r\n }\r\n }\r\n\r\n definirProgresso(form: FormGroup, progresso: boolean): boolean {\r\n if (!form)\r\n return;\r\n\r\n if (progresso)\r\n this.desabilitarForm(form);\r\n else\r\n this.habilitarForm(form);\r\n\r\n return progresso;\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { MatDrawer } from '@angular/material/sidenav';\r\nimport { IcConfirmaDialogService } from '@inovamobil/ic-confirma-dialog';\r\nimport { IcmSnackBarService } from '@inovamobil/icm-snackbar';\r\nimport { Subscription } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\nimport { ErrorDialogService } from '../components/dialogs/error-dialog/service/error-dialog.service';\r\nimport { IDatabarBindStatusService } from '../public-api';\r\nimport { ACAO_PAGINACAO } from './constants/ic-databar.constants';\r\nimport { DataBarConfigBotoesService } from './contrato/DataBarConfigBotoesService';\r\nimport { IDatabarBindOnClickService } from './contrato/IDataBarBindOnClickService';\r\nimport { IDataBarReverterService } from './contrato/IDataBarReverterService';\r\nimport { IDataBarBindService } from './contrato/IDataBarService';\r\nimport { IDataEntidadePaginada } from './contrato/IDataEntidadePaginada';\r\nimport { EEventoClick } from './enum/eeventoclick';\r\nimport { EStatus } from './enum/estatus';\r\nimport { IcDatabarReverterService } from './services/ic-databar-reverter.service';\r\nimport { DatabarService } from './services/ic-databar.service';\r\n\r\n@Component({\r\n selector: 'ic-data-bar',\r\n templateUrl: './view/ic-data-bar.component.html',\r\n styleUrls: ['./view/ic-data-bar.component.scss'],\r\n})\r\nexport class DataBarComponent<T> implements OnInit, OnDestroy {\r\n @Input() servicoBind:\r\n | IDataBarBindService<T>\r\n | IDatabarBindStatusService<T>\r\n | IDatabarBindOnClickService<T>;\r\n @Input() form: FormGroup;\r\n @Input() entidadePaginada: IDataEntidadePaginada<T>;\r\n @Input() disabled = false;\r\n @Input() servicoConfiguracaoBotoes: DataBarConfigBotoesService;\r\n @Input() set servicoReverter(servico: IDataBarReverterService<T>) {\r\n this._servicoReverter = servico;\r\n }\r\n\r\n @Output() statusChanged = new EventEmitter<EStatus>();\r\n\r\n public status: EStatus;\r\n public EStatus = EStatus;\r\n public emProgresso = false;\r\n private _servicoReverter: IDataBarReverterService<T>;\r\n private $setStatus: Subscription;\r\n\r\n @ViewChild('drawer', { static: false }) drawer: MatDrawer;\r\n\r\n constructor(\r\n private _dialog: IcConfirmaDialogService,\r\n private _dialogErro: ErrorDialogService,\r\n private _elementRef: ElementRef,\r\n private _databarService: DatabarService,\r\n private _snackBarService: IcmSnackBarService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.validarPropertsObrigatorias();\r\n this.setProgresso(false);\r\n this.novaPesquisa();\r\n this._submeterFormularioOnEnter();\r\n this.observarSetStatus();\r\n this._pesquisarPosicaoSelecionada();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.servicoBind.onClickEnter) this.servicoBind.onClickEnter.unsubscribe();\r\n\r\n if (this.$setStatus) this.$setStatus.unsubscribe();\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n fecharSidenav(event): void {\r\n if (this._elementRef.nativeElement.contains(event.target)) {\r\n return;\r\n }\r\n this.drawer.close();\r\n }\r\n\r\n get inserindoOuEditando(): boolean {\r\n return this.status === EStatus.inserindo || this.status === EStatus.editando;\r\n }\r\n\r\n get desabilitarBotaoModoTabela(): boolean {\r\n return (\r\n this.status == EStatus.inserindo ||\r\n this.status == EStatus.editando ||\r\n this.emProgresso ||\r\n this.form.invalid ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoModoTabela()\r\n );\r\n }\r\n\r\n get desabilitarBotaoPesquisar(): boolean {\r\n return (\r\n this.status == EStatus.inserindo ||\r\n this.status == EStatus.editando ||\r\n this.status == EStatus.dadosCarregados ||\r\n this.emProgresso ||\r\n this.form.invalid ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoPesquisar()\r\n );\r\n }\r\n\r\n get desabilitarBotaoReverter(): boolean {\r\n return (\r\n this.status == EStatus.novaPesquisa ||\r\n this.status == EStatus.executarAcao ||\r\n this.status == EStatus.dadosCarregados ||\r\n this.emProgresso ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoReverter()\r\n );\r\n }\r\n\r\n get desabilitarBotaoAdicionar(): boolean {\r\n return (\r\n this.status == EStatus.editando ||\r\n this.status == EStatus.inserindo ||\r\n this.emProgresso ||\r\n this.disabled ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoAdicionar()\r\n );\r\n }\r\n\r\n get desabilitarBotaoEditar(): boolean {\r\n return (\r\n this.status == EStatus.inserindo ||\r\n this.status == EStatus.novaPesquisa ||\r\n this.status == EStatus.executarAcao ||\r\n this.status == EStatus.pesquisando ||\r\n this.status == EStatus.editando ||\r\n this.emProgresso ||\r\n this.disabled ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoEditar()\r\n );\r\n }\r\n\r\n get desabilitarBotaoRemover(): boolean {\r\n return (\r\n !this.entidadePaginada?.entidade ||\r\n this.status != EStatus.dadosCarregados ||\r\n this.emProgresso ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoRemover()\r\n );\r\n }\r\n\r\n get desabilitarBotaoSalvar(): boolean {\r\n return (\r\n this.form?.invalid ||\r\n (this.status != EStatus.inserindo && this.status != EStatus.editando) ||\r\n this.emProgresso ||\r\n this.disabled ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoSalvar()\r\n );\r\n }\r\n\r\n get desabilitarBotoesPaginacaoRetroceder(): boolean {\r\n return (\r\n this.inserindoOuEditando ||\r\n this.entidadePaginada.posicao <= 1 ||\r\n this.emProgresso\r\n );\r\n }\r\n\r\n get desabilitarBotoesPaginacaoAvancar(): boolean {\r\n return (\r\n this.inserindoOuEditando ||\r\n this.entidadePaginada.posicao >= this.entidadePaginada.total ||\r\n this.emProgresso\r\n );\r\n }\r\n\r\n onClickReverter(): void {\r\n this._exibirDialogConfirmacaoReverter();\r\n }\r\n\r\n onClickModoTabela(): void {\r\n this._emitirEventoClick(EEventoClick.onClickModoTabela);\r\n }\r\n\r\n onClickNovaPesquisa(): void {\r\n this._emitirEventoClick(EEventoClick.onClickNovaPesquisa);\r\n this.novaPesquisa();\r\n this._emitirEventoClick(EEventoClick.afterClickNovaPesquisa);\r\n }\r\n\r\n novaPesquisa(): void {\r\n this._databarService.habilitarForm(this.form);\r\n this.form.reset({ emitEvent: false, onlySelf: true });\r\n this.entidadePaginada.entidade = this.form.value;\r\n this.entidadePaginada.posicao = 0;\r\n this.entidadePaginada.total = 0;\r\n this.setStatus(EStatus.novaPesquisa);\r\n }\r\n\r\n pesquisar(): void {\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this._setDadosAnteriores();\r\n this.setStatus(EStatus.pesquisando);\r\n this.entidadePaginada.entidade = [].concat(this._getEntidade());\r\n this._paginar();\r\n this.drawer.close();\r\n }\r\n\r\n inserir(): void {\r\n this._emitirEventoClick(EEventoClick.onClickInserir);\r\n this._clickInserir();\r\n this._emitirEventoClick(EEventoClick.afterClickInserir);\r\n }\r\n\r\n editar(): void {\r\n this._emitirEventoClick(EEventoClick.onClickEditar);\r\n this._clickEditar();\r\n this._emitirEventoClick(EEventoClick.afterClickEditar);\r\n }\r\n\r\n remover(): void {\r\n this._emitirEventoClick(EEventoClick.onClickRemover);\r\n this._clickRemover();\r\n this._emitirEventoClick(EEventoClick.afterClickRemover);\r\n }\r\n\r\n proximo(): void {\r\n this._paginar('proximo');\r\n }\r\n\r\n anterior(): void {\r\n this._paginar('anterior');\r\n }\r\n\r\n ultimo(): void {\r\n this._paginar('ultimo');\r\n }\r\n\r\n primeiro(): void {\r\n this._paginar('primeiro');\r\n }\r\n\r\n salvar(): void {\r\n this._emitirEventoClick(EEventoClick.onClickSalvar);\r\n\r\n switch (this.status) {\r\n case EStatus.inserindo:\r\n this._inserir();\r\n break;\r\n\r\n case EStatus.editando:\r\n this._editar();\r\n break;\r\n }\r\n }\r\n\r\n private _inserir(): void {\r\n this.setStatus(EStatus.salvando);\r\n this.setProgresso(true);\r\n this.servicoBind\r\n .criar()\r\n .pipe(\r\n finalize(() => {\r\n this._emitirEventoClick(EEventoClick.afterClickSalvar);\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n this.setProgresso(false);\r\n\r\n this._snackBarService.abrirSnackBarSucesso(\r\n 'Registro salvo com sucesso!'\r\n );\r\n\r\n this.form.patchValue(success);\r\n\r\n this.setStatus(EStatus.dadosCarregados);\r\n\r\n this.drawer.close();\r\n\r\n this._databarService.desabilitarForm(this.form);\r\n },\r\n () => {\r\n this.setProgresso(false);\r\n this.setStatus(EStatus.inserindo);\r\n }\r\n );\r\n }\r\n\r\n private _editar(): void {\r\n this.setStatus(EStatus.salvando);\r\n this.setProgresso(true);\r\n this.servicoBind\r\n .editar()\r\n .pipe(\r\n finalize(() => {\r\n this._emitirEventoClick(EEventoClick.afterClickSalvar);\r\n })\r\n )\r\n .subscribe(\r\n (success) => {\r\n this._snackBarService.abrirSnackBarSucesso(\r\n 'Registro editado com sucesso!'\r\n );\r\n\r\n this.form.patchValue(success);\r\n\r\n this.setProgresso(false);\r\n\r\n this.setStatus(EStatus.dadosCarregados);\r\n\r\n this._databarService.desabilitarForm(this.form);\r\n\r\n this.drawer.close();\r\n },\r\n () => {\r\n this.setProgresso(false);\r\n this.setStatus(EStatus.editando);\r\n }\r\n );\r\n }\r\n\r\n private observarSetStatus(): void {\r\n if ((this.servicoBind as IDatabarBindStatusService<T>).setStatus) {\r\n this.$setStatus = (\r\n this.servicoBind as IDatabarBindStatusService<T>\r\n ).setStatus.subscribe((status) => {\r\n switch (status) {\r\n case EStatus.editando:\r\n this.editar();\r\n this.emProgresso = false;\r\n break;\r\n case EStatus.inserindo:\r\n this.inserir();\r\n this.emProgresso = false;\r\n break;\r\n case EStatus.pesquisando:\r\n this.pesquisar();\r\n break;\r\n case EStatus.novaPesquisa:\r\n this.novaPesquisa();\r\n break;\r\n case EStatus.removendo:\r\n this.remover();\r\n break;\r\n case EStatus.dadosCarregados:\r\n this.status = EStatus.dadosCarregados;\r\n this.emProgresso = false;\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private retornarServicoReverter(): IDataBarReverterService<T> {\r\n if (this._servicoReverter == null)\r\n this._servicoReverter = new IcDatabarReverterService();\r\n\r\n return this._servicoReverter;\r\n }\r\n\r\n private _setDadosAnteriores(): void {\r\n this.retornarServicoReverter().setDadosAnteriores(\r\n this.status,\r\n this.form,\r\n this.entidadePaginada\r\n );\r\n }\r\n\r\n private _reverter(): void {\r\n this._emitirEventoClick(EEventoClick.onClickReverter);\r\n this.entidadePaginada = this.retornarServicoReverter().restaurarDadosAnteriores(\r\n this.form\r\n );\r\n const statusAnterior = this.retornarServicoReverter().statusAnterior;\r\n\r\n if (statusAnterior == EStatus.dadosCarregados)\r\n this._databarService.desabilitarForm(this.form);\r\n else this._databarService.habilitarForm(this.form);\r\n\r\n this.setStatus(statusAnterior);\r\n this._emitirEventoClick(EEventoClick.afterClickReverter);\r\n }\r\n\r\n private _resetarContadorPaginacao(): void {\r\n this.entidadePaginada.posicao = 0;\r\n this.entidadePaginada.total = 0;\r\n }\r\n\r\n private validarPropertsObrigatorias(): any {\r\n if (this.servicoBind == null) {\r\n throw new Error('É obrigatório ter um serviço de bind vinculado.');\r\n }\r\n\r\n if (this.entidadePaginada == null) {\r\n throw new Error('É obrigatório ter uma entidade paginada vinculada.');\r\n }\r\n }\r\n\r\n private setStatus(status: EStatus): void {\r\n if (!status) {\r\n return;\r\n }\r\n this.status = status;\r\n this.statusChanged.emit(this.status);\r\n }\r\n\r\n private _getEntidade(): T {\r\n const result = this.form.getRawValue() as T;\r\n return result;\r\n }\r\n\r\n private _submeterFormularioOnEnter(): void {\r\n if (!this.servicoBind.onClickEnter) return;\r\n this.servicoBind.onClickEnter.subscribe(() => {\r\n if (this.status === EStatus.novaPesquisa && this.form.valid) {\r\n this.pesquisar();\r\n }\r\n });\r\n }\r\n\r\n private _pesquisarPosicaoSelecionada(): void {\r\n if (!this.servicoBind.pesquisarPosicaoSelecionada) return;\r\n\r\n this.servicoBind.pesquisarPosicaoSelecionada.subscribe((entidadePaginada) => {\r\n if (this.status === EStatus.novaPesquisa && this.form.valid) {\r\n this.entidadePaginada = entidadePaginada;\r\n this._pesquisarSelecionado();\r\n }\r\n });\r\n }\r\n\r\n private _pesquisarSelecionado(): void {\r\n if (this.form.invalid) {\r\n return;\r\n }\r\n\r\n this._setDadosAnteriores();\r\n this.setStatus(EStatus.pesquisando);\r\n this._paginar('customizado');\r\n this.drawer.close();\r\n }\r\n\r\n private _clickInserir(): void {\r\n this._setDadosAnteriores();\r\n this._resetarContadorPaginacao();\r\n this._databarService.habilitarForm(this.form);\r\n this.form.reset({ emitEvent: false, onlySelf: true });\r\n this.form.markAllAsTouched();\r\n this.drawer.close();\r\n this.setStatus(EStatus.inserindo);\r\n }\r\n\r\n private _clickEditar(): void {\r\n this._setDadosAnteriores();\r\n this._databarService.habilitarForm(this.form);\r\n\r\n this.form.markAllAsTouched();\r\n this.drawer.close();\r\n this.setStatus(EStatus.editando);\r\n }\r\n\r\n private _clickRemover(): void {\r\n this.setStatus(EStatus.removendo);\r\n this._exibirDialogConfirmacao();\r\n this.drawer.close();\r\n }\r\n\r\n private _emitirEventoClick(evento: EEventoClick): void {\r\n return this._databarService.emitirEventoClick<T>(\r\n this.servicoBind as IDatabarBindOnClickService<T>,\r\n evento\r\n );\r\n }\r\n\r\n private _acaoCloseDialogConfirmacao(): void {\r\n this._dialog.emProgresso = false;\r\n this._dialog.closeDialog();\r\n this.setStatus(EStatus.dadosCarregados);\r\n }\r\n\r\n private _exibirDialogConfirmacao(): void {\r\n this._dialog.acaoMensagem = 'Removendo registro...';\r\n this._dialog.acaoOk = () =>\r\n this.servicoBind.remover().subscribe(\r\n () => {\r\n this._dialog.closeDialog();\r\n this.novaPesquisa();\r\n this._dialog.emProgresso = false;\r\n this._snackBarService.abrirSnackBarSucesso('Removido com sucesso!');\r\n },\r\n () => this._acaoCloseDialogConfirmacao()\r\n );\r\n this._dialog.acaoCancelar = () => {\r\n this._acaoCloseDialogConfirmacao();\r\n };\r\n\r\n this._dialog.openDialog(\r\n 'Atenção!',\r\n 'Você realmente deseja excluir este registro?'\r\n );\r\n }\r\n\r\n private _exibirDialogConfirmacaoReverter(): void {\r\n this._dialog.acaoOk = () => {\r\n this._reverter();\r\n this._dialog.emProgresso = false;\r\n this._dialog.closeDialog();\r\n };\r\n\r\n this._dialog.acaoCancelar = () => {\r\n this._dialog.closeDialog();\r\n };\r\n\r\n this._dialog.openDialog(\r\n 'Atenção!',\r\n 'As alterações realizadas serão perdidas. Deseja continuar?'\r\n );\r\n }\r\n\r\n private _paginar(acao?: ACAO_PAGINACAO): void {\r\n this.setStatus(EStatus.pesquisando);\r\n\r\n if (this.entidadePaginada.entidade == null) {\r\n this.entidadePaginada.entidade = [].concat(this._getEntidade());\r\n }\r\n\r\n const posicaoAnterior = this.entidadePaginada.posicao;\r\n\r\n switch (acao) {\r\n case 'primeiro':\r\n this.entidadePaginada.posicao = 1;\r\n break;\r\n case 'ultimo':\r\n this.entidadePaginada.posicao = this.entidadePaginada.total;\r\n break;\r\n case 'proximo':\r\n this.entidadePaginada.posicao++;\r\n break;\r\n case 'anterior':\r\n this.entidadePaginada.posicao--;\r\n break;\r\n case 'customizado':\r\n break;\r\n default:\r\n this.entidadePaginada.posicao = 0;\r\n break;\r\n }\r\n\r\n this.setProgresso(true);\r\n\r\n this.servicoBind.listarPaginacao(this.entidadePaginada).subscribe(\r\n (success) => {\r\n this.setProgresso(false);\r\n\r\n if (success == null) {\r\n this._dialogErro.openDialog(\r\n 'Atenção!',\r\n 'Nenhum registro foi encontrado.'\r\n );\r\n this.setStatus(EStatus.novaPesquisa);\r\n return;\r\n }\r\n\r\n if (success.entidade == null) {\r\n this._databarService.resetForm(this.form, this.entidadePaginada);\r\n this.setStatus(EStatus.novaPesquisa);\r\n return;\r\n }\r\n\r\n this.setStatus(EStatus.dadosCarregados);\r\n\r\n if (!this.entidadePaginada.entidade) {\r\n this.entidadePaginada = success;\r\n } else {\r\n this.entidadePaginada.total = success.total;\r\n this.entidadePaginada.posicao = success.posicao;\r\n }\r\n\r\n this.form.patchValue(success.entidade[0]);\r\n\r\n this.setProgresso(false);\r\n\r\n this._databarService.desabilitarForm(this.form);\r\n },\r\n (error) => {\r\n console.error('erro paginação', error);\r\n this.setStatus(EStatus.dadosCarregados);\r\n this.entidadePaginada.posicao = posicaoAnterior;\r\n this.setProgresso(false);\r\n this._databarService.desabilitarForm(this.form);\r\n }\r\n );\r\n }\r\n\r\n private setProgresso(progresso: boolean): void {\r\n this.emProgresso = this._databarService.definirProgresso(this.form, progresso);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { ErrorDialogComponent } from './error-dialog.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [ErrorDialogComponent],\r\n imports: [\r\n MatDialogModule\r\n ],\r\n exports: [ErrorDialogComponent],\r\n entryComponents: [ErrorDialogComponent]\r\n})\r\nexport class ErrorDialogModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IcConfirmaDialogModule } from '@inovamobil/ic-confirma-dialog';\r\nimport { DataBarComponent } from './ic-data-bar.component';\r\nimport { ErrorDialogModule } from '../components/dialogs/error-dialog/error-dialog.module';\r\nimport { DatabarService } from './services/ic-databar.service';\r\nimport { IcmSnackBarModule } from '@inovamobil/icm-snackbar';\r\n\r\n@NgModule({\r\n declarations: [DataBarComponent],\r\n imports: [\r\n CommonModule,\r\n MatToolbarModule,\r\n MatListModule,\r\n MatSidenavModule,\r\n MatIconModule,\r\n MatProgressSpinnerModule,\r\n MatDividerModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n FlexLayoutModule,\r\n IcConfirmaDialogModule,\r\n ErrorDialogModule,\r\n IcmSnackBarModule\r\n ],\r\n exports: [DataBarComponent],\r\n providers: [DatabarService]\r\n})\r\nexport class DataBarModule { }\r\n"]}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSURhdGFCYXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L2F3cy9iaWJsaW90ZWNhLWFuZ3VsYXIvcHJvamVjdHMvaWMtZGF0YWJhci1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbnRyYXRvL0lEYXRhQmFyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSURhdGFFbnRpZGFkZVBhZ2luYWRhIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XHJcbmltcG9ydCB7IEVTdGF0dXMgfSBmcm9tICcuLi9lbnVtL2VzdGF0dXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRGF0YUJhckJpbmRTZXJ2aWNlPFQ+IHtcclxuICAgIGZvcm1ncm91cDogRm9ybUdyb3VwO1xyXG4gICAgb25DbGlja0VudGVyOiBFdmVudEVtaXR0ZXI8VD47XHJcbiAgICBwZXNxdWlzYXJQb3NpY2FvU2VsZWNpb25hZGE/OiBFdmVudEVtaXR0ZXI8bnVtYmVyPjtcclxuICAgIHN0YXR1czogRVN0YXR1cztcclxuXHJcbiAgICBnZXRFbnRpZGFkZSgpOiBUO1xyXG4gICAgY3JpYXIoKTogT2JzZXJ2YWJsZTxUPjtcclxuICAgIGVkaXRhcigpOiBPYnNlcnZhYmxlPFQ+O1xyXG4gICAgcmVtb3ZlcigpOiBPYnNlcnZhYmxlPFQ+O1xyXG4gICAgbGlzdGFyUGFnaW5hY2FvKFxyXG4gICAgICAgIGVudGlkYWRlUGFnaW5hZGE6IElEYXRhRW50aWRhZGVQYWdpbmFkYTxUPlxyXG4gICAgKTogT2JzZXJ2YWJsZTxJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD4+O1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSURhdGFCYXJTZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L2F3cy9iaWJsaW90ZWNhLWFuZ3VsYXIvcHJvamVjdHMvaWMtZGF0YWJhci1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbnRyYXRvL0lEYXRhQmFyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSURhdGFFbnRpZGFkZVBhZ2luYWRhIH0gZnJvbSAnLi4vLi4vcHVibGljLWFwaSc7XHJcbmltcG9ydCB7IEVTdGF0dXMgfSBmcm9tICcuLi9lbnVtL2VzdGF0dXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJRGF0YUJhckJpbmRTZXJ2aWNlPFQ+IHtcclxuICAgIGZvcm1ncm91cDogRm9ybUdyb3VwO1xyXG4gICAgb25DbGlja0VudGVyOiBFdmVudEVtaXR0ZXI8VD47XHJcbiAgICBwZXNxdWlzYXJQb3NpY2FvU2VsZWNpb25hZGE/OiBFdmVudEVtaXR0ZXI8SURhdGFFbnRpZGFkZVBhZ2luYWRhPFQ+PjtcclxuICAgIHN0YXR1czogRVN0YXR1cztcclxuXHJcbiAgICBnZXRFbnRpZGFkZSgpOiBUO1xyXG4gICAgY3JpYXIoKTogT2JzZXJ2YWJsZTxUPjtcclxuICAgIGVkaXRhcigpOiBPYnNlcnZhYmxlPFQ+O1xyXG4gICAgcmVtb3ZlcigpOiBPYnNlcnZhYmxlPFQ+O1xyXG4gICAgbGlzdGFyUGFnaW5hY2FvKFxyXG4gICAgICAgIGVudGlkYWRlUGFnaW5hZGE6IElEYXRhRW50aWRhZGVQYWdpbmFkYTxUPlxyXG4gICAgKTogT2JzZXJ2YWJsZTxJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD4+O1xyXG59XHJcbiJdfQ==
@@ -297,9 +297,9 @@ export class DataBarComponent {
297
297
  _pesquisarPosicaoSelecionada() {
298
298
  if (!this.servicoBind.pesquisarPosicaoSelecionada)
299
299
  return;
300
- this.servicoBind.pesquisarPosicaoSelecionada.subscribe((posicao) => {
300
+ this.servicoBind.pesquisarPosicaoSelecionada.subscribe((entidadePaginada) => {
301
301
  if (this.status === EStatus.novaPesquisa && this.form.valid) {
302
- this.entidadePaginada.posicao = posicao;
302
+ this.entidadePaginada = entidadePaginada;
303
303
  this._pesquisarSelecionado();
304
304
  }
305
305
  });
@@ -452,4 +452,4 @@ DataBarComponent.propDecorators = {
452
452
  drawer: [{ type: ViewChild, args: ['drawer', { static: false },] }],
453
453
  fecharSidenav: [{ type: HostListener, args: ['document:click', ['$event'],] }]
454
454
  };
455
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWMtZGF0YS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L2F3cy9iaWJsaW90ZWNhLWFuZ3VsYXIvcHJvamVjdHMvaWMtZGF0YWJhci1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2ljLWRhdGEtYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQVFyRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU8vRCxNQUFNLE9BQU8sZ0JBQWdCO0lBdUJ6QixZQUNZLE9BQWdDLEVBQ2hDLFdBQStCLEVBQy9CLFdBQXVCLEVBQ3ZCLGVBQStCLEVBQy9CLGdCQUFvQztRQUpwQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFyQnZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNaEIs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SzsrQkFDTCxLQUFLO3VCQUNMLEtBQUs7d0NBQ0wsS0FBSzs4QkFDTCxLQUFLOzRCQUlMLE1BQU07cUJBUU4sU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7NEJBeUJyQyxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERyYXdlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBJY0NvbmZpcm1hRGlhbG9nU2VydmljZSB9IGZyb20gJ0Bpbm92YW1vYmlsL2ljLWNvbmZpcm1hLWRpYWxvZyc7XHJcbmltcG9ydCB7IEljbVNuYWNrQmFyU2VydmljZSB9IGZyb20gJ0Bpbm92YW1vYmlsL2ljbS1zbmFja2Jhcic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVycm9yRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZGlhbG9ncy9lcnJvci1kaWFsb2cvc2VydmljZS9lcnJvci1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhYmFyQmluZFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgQUNBT19QQUdJTkFDQU8gfSBmcm9tICcuL2NvbnN0YW50cy9pYy1kYXRhYmFyLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IERhdGFCYXJDb25maWdCb3RvZXNTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9EYXRhQmFyQ29uZmlnQm90b2VzU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhYmFyQmluZE9uQ2xpY2tTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUJhckJpbmRPbkNsaWNrU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUJhclJldmVydGVyU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhQmFyQmluZFNlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhRW50aWRhZGVQYWdpbmFkYSB9IGZyb20gJy4vY29udHJhdG8vSURhdGFFbnRpZGFkZVBhZ2luYWRhJztcclxuaW1wb3J0IHsgRUV2ZW50b0NsaWNrIH0gZnJvbSAnLi9lbnVtL2VldmVudG9jbGljayc7XHJcbmltcG9ydCB7IEVTdGF0dXMgfSBmcm9tICcuL2VudW0vZXN0YXR1cyc7XHJcbmltcG9ydCB7IEljRGF0YWJhclJldmVydGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaWMtZGF0YWJhci1yZXZlcnRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YWJhclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ljLWRhdGFiYXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaWMtZGF0YS1iYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZpZXcvaWMtZGF0YS1iYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdmlldy9pYy1kYXRhLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUJhckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIHNlcnZpY29CaW5kOlxyXG4gICAgICAgIHwgSURhdGFCYXJCaW5kU2VydmljZTxUPlxyXG4gICAgICAgIHwgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPlxyXG4gICAgICAgIHwgSURhdGFiYXJCaW5kT25DbGlja1NlcnZpY2U8VD47XHJcbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgICBASW5wdXQoKSBlbnRpZGFkZVBhZ2luYWRhOiBJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD47XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lczogRGF0YUJhckNvbmZpZ0JvdG9lc1NlcnZpY2U7XHJcbiAgICBASW5wdXQoKSBzZXQgc2Vydmljb1JldmVydGVyKHNlcnZpY286IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+KSB7XHJcbiAgICAgICAgdGhpcy5fc2Vydmljb1JldmVydGVyID0gc2VydmljbztcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RVN0YXR1cz4oKTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdHVzOiBFU3RhdHVzO1xyXG4gICAgcHVibGljIEVTdGF0dXMgPSBFU3RhdHVzO1xyXG4gICAgcHVibGljIGVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9zZXJ2aWNvUmV2ZXJ0ZXI6IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+O1xyXG4gICAgcHJpdmF0ZSAkc2V0U3RhdHVzOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZHJhd2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRyYXdlcjogTWF0RHJhd2VyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZzogSWNDb25maXJtYURpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nRXJybzogRXJyb3JEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGF0YWJhclNlcnZpY2U6IERhdGFiYXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3NuYWNrQmFyU2VydmljZTogSWNtU25hY2tCYXJTZXJ2aWNlXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGFyUHJvcGVydHNPYnJpZ2F0b3JpYXMoKTtcclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICB0aGlzLl9zdWJtZXRlckZvcm11bGFyaW9PbkVudGVyKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhclNldFN0YXR1cygpO1xyXG4gICAgICAgIHRoaXMuX3Blc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY29CaW5kLm9uQ2xpY2tFbnRlcikgdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuJHNldFN0YXR1cykgdGhpcy4kc2V0U3RhdHVzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gICAgZmVjaGFyU2lkZW5hdihldmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGluc2VyaW5kb091RWRpdGFuZG8oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLmluc2VyaW5kbyB8fCB0aGlzLnN0YXR1cyA9PT0gRVN0YXR1cy5lZGl0YW5kbztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9QZXNxdWlzYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1Blc3F1aXNhcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb1JldmVydGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvUmV2ZXJ0ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9BZGljaW9uYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmluc2VyaW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvQWRpY2lvbmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvRWRpdGFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuaW5zZXJpbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMucGVzcXVpc2FuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvRWRpdGFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvUmVtb3ZlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy5lbnRpZGFkZVBhZ2luYWRhPy5lbnRpZGFkZSB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1JlbW92ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9TYWx2YXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5mb3JtPy5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgICh0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmluc2VyaW5kbyAmJiB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmVkaXRhbmRvKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvU2FsdmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdG9lc1BhZ2luYWNhb1JldHJvY2VkZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5pbnNlcmluZG9PdUVkaXRhbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvIDw9IDEgfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzb1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90b2VzUGFnaW5hY2FvQXZhbmNhcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLmluc2VyaW5kb091RWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPj0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc29cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2tSZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGlja01vZG9UYWJlbGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tNb2RvVGFiZWxhKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrTm92YVBlc3F1aXNhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgIH1cclxuXHJcbiAgICBub3ZhUGVzcXVpc2EoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gMDtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGVzcXVpc2FyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnBlc3F1aXNhbmRvKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEuZW50aWRhZGUgPSBbXS5jb25jYXQodGhpcy5fZ2V0RW50aWRhZGUoKSk7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja0luc2VyaXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrSW5zZXJpcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrSW5zZXJpcik7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdGFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrRWRpdGFyKTtcclxuICAgICAgICB0aGlzLl9jbGlja0VkaXRhcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrRWRpdGFyKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrUmVtb3Zlcik7XHJcbiAgICAgICAgdGhpcy5fY2xpY2tSZW1vdmVyKCk7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tSZW1vdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm94aW1vKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ3Byb3hpbW8nKTtcclxuICAgIH1cclxuXHJcbiAgICBhbnRlcmlvcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wYWdpbmFyKCdhbnRlcmlvcicpO1xyXG4gICAgfVxyXG5cclxuICAgIHVsdGltbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wYWdpbmFyKCd1bHRpbW8nKTtcclxuICAgIH1cclxuXHJcbiAgICBwcmltZWlybygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wYWdpbmFyKCdwcmltZWlybycpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhbHZhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja1NhbHZhcik7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmluc2VyaW5kbzpcclxuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VyaXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmVkaXRhbmRvOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZWRpdGFyKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnNhbHZhbmRvKTtcclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyh0cnVlKTtcclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kXHJcbiAgICAgICAgICAgIC5jcmlhcigpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrU2FsdmFyKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2UuYWJyaXJTbmFja0JhclN1Y2Vzc28oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZWdpc3RybyBzYWx2byBjb20gc3VjZXNzbyEnXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoc3VjY2Vzcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmluc2VyaW5kbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZWRpdGFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuc2FsdmFuZG8pO1xyXG4gICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKHRydWUpO1xyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmRcclxuICAgICAgICAgICAgLmVkaXRhcigpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrU2FsdmFyKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnUmVnaXN0cm8gZWRpdGFkbyBjb20gc3VjZXNzbyEnXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoc3VjY2Vzcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5kZXNhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZWRpdGFuZG8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb2JzZXJ2YXJTZXRTdGF0dXMoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCh0aGlzLnNlcnZpY29CaW5kIGFzIElEYXRhYmFyQmluZFN0YXR1c1NlcnZpY2U8VD4pLnNldFN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLiRzZXRTdGF0dXMgPSAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY29CaW5kIGFzIElEYXRhYmFyQmluZFN0YXR1c1NlcnZpY2U8VD5cclxuICAgICAgICAgICAgKS5zZXRTdGF0dXMuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmVkaXRhbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5pbnNlcmluZG86XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJpcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5wZXNxdWlzYW5kbzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXNxdWlzYXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLm5vdmFQZXNxdWlzYTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLnJlbW92ZW5kbzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3M6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3M7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJldG9ybmFyU2Vydmljb1JldmVydGVyKCk6IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+IHtcclxuICAgICAgICBpZiAodGhpcy5fc2Vydmljb1JldmVydGVyID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuX3NlcnZpY29SZXZlcnRlciA9IG5ldyBJY0RhdGFiYXJSZXZlcnRlclNlcnZpY2UoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlcnZpY29SZXZlcnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXREYWRvc0FudGVyaW9yZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZXRvcm5hclNlcnZpY29SZXZlcnRlcigpLnNldERhZG9zQW50ZXJpb3JlcyhcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMsXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja1JldmVydGVyKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEgPSB0aGlzLnJldG9ybmFyU2Vydmljb1JldmVydGVyKCkucmVzdGF1cmFyRGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgICAgICB0aGlzLmZvcm1cclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHN0YXR1c0FudGVyaW9yID0gdGhpcy5yZXRvcm5hclNlcnZpY29SZXZlcnRlcigpLnN0YXR1c0FudGVyaW9yO1xyXG5cclxuICAgICAgICBpZiAoc3RhdHVzQW50ZXJpb3IgPT0gRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpXHJcbiAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIGVsc2UgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG5cclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhzdGF0dXNBbnRlcmlvcik7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tSZXZlcnRlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVzZXRhckNvbnRhZG9yUGFnaW5hY2FvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gMDtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEudG90YWwgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhclByb3BlcnRzT2JyaWdhdG9yaWFzKCk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2Vydmljb0JpbmQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ8OJIG9icmlnYXTDs3JpbyB0ZXIgdW0gc2VydmnDp28gZGUgYmluZCB2aW5jdWxhZG8uJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5lbnRpZGFkZVBhZ2luYWRhID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfDiSBvYnJpZ2F0w7NyaW8gdGVyIHVtYSBlbnRpZGFkZSBwYWdpbmFkYSB2aW5jdWxhZGEuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U3RhdHVzKHN0YXR1czogRVN0YXR1cyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLmVtaXQodGhpcy5zdGF0dXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldEVudGlkYWRlKCk6IFQge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIGFzIFQ7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zdWJtZXRlckZvcm11bGFyaW9PbkVudGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kLm9uQ2xpY2tFbnRlci5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09IEVTdGF0dXMubm92YVBlc3F1aXNhICYmIHRoaXMuZm9ybS52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wZXNxdWlzYXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Blc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2Vydmljb0JpbmQucGVzcXVpc2FyUG9zaWNhb1NlbGVjaW9uYWRhKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmQucGVzcXVpc2FyUG9zaWNhb1NlbGVjaW9uYWRhLnN1YnNjcmliZSgocG9zaWNhbykgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09IEVTdGF0dXMubm92YVBlc3F1aXNhICYmIHRoaXMuZm9ybS52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSBwb3NpY2FvO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcGVzcXVpc2FyU2VsZWNpb25hZG8oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Blc3F1aXNhclNlbGVjaW9uYWRvKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnBlc3F1aXNhbmRvKTtcclxuICAgICAgICB0aGlzLl9wYWdpbmFyKCdjdXN0b21pemFkbycpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2xpY2tJbnNlcmlyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NldERhZG9zQW50ZXJpb3JlcygpO1xyXG4gICAgICAgIHRoaXMuX3Jlc2V0YXJDb250YWRvclBhZ2luYWNhbygpO1xyXG4gICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmhhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoeyBlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5pbnNlcmluZG8pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NsaWNrRWRpdGFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3NldERhZG9zQW50ZXJpb3JlcygpO1xyXG4gICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmhhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZWRpdGFuZG8pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NsaWNrUmVtb3ZlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnJlbW92ZW5kbyk7XHJcbiAgICAgICAgdGhpcy5fZXhpYmlyRGlhbG9nQ29uZmlybWFjYW8oKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2VtaXRpckV2ZW50b0NsaWNrKGV2ZW50bzogRUV2ZW50b0NsaWNrKTogdm9pZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmVtaXRpckV2ZW50b0NsaWNrPFQ+KFxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY29CaW5kIGFzIElEYXRhYmFyQmluZE9uQ2xpY2tTZXJ2aWNlPFQ+LFxyXG4gICAgICAgICAgICBldmVudG9cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FjYW9DbG9zZURpYWxvZ0NvbmZpcm1hY2FvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5jbG9zZURpYWxvZygpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9leGliaXJEaWFsb2dDb25maXJtYWNhbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb01lbnNhZ2VtID0gJ1JlbW92ZW5kbyByZWdpc3Ryby4uLic7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmFjYW9PayA9ICgpID0+XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0JpbmQucmVtb3ZlcigpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5hYnJpclNuYWNrQmFyU3VjZXNzbygnUmVtb3ZpZG8gY29tIHN1Y2Vzc28hJyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy5fYWNhb0Nsb3NlRGlhbG9nQ29uZmlybWFjYW8oKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvQ2FuY2VsYXIgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjYW9DbG9zZURpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2coXHJcbiAgICAgICAgICAgICdBdGVuw6fDo28hJyxcclxuICAgICAgICAgICAgJ1ZvY8OqIHJlYWxtZW50ZSBkZXNlamEgZXhjbHVpciBlc3RlIHJlZ2lzdHJvPydcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvUmV2ZXJ0ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmFjYW9PayA9ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fcmV2ZXJ0ZXIoKTtcclxuICAgICAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5jbG9zZURpYWxvZygpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvQ2FuY2VsYXIgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5jbG9zZURpYWxvZygpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5vcGVuRGlhbG9nKFxyXG4gICAgICAgICAgICAnQXRlbsOnw6NvIScsXHJcbiAgICAgICAgICAgICdBcyBhbHRlcmHDp8O1ZXMgcmVhbGl6YWRhcyBzZXLDo28gcGVyZGlkYXMuIERlc2VqYSBjb250aW51YXI/J1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcGFnaW5hcihhY2FvPzogQUNBT19QQUdJTkFDQU8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnBlc3F1aXNhbmRvKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSA9IFtdLmNvbmNhdCh0aGlzLl9nZXRFbnRpZGFkZSgpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHBvc2ljYW9BbnRlcmlvciA9IHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKGFjYW8pIHtcclxuICAgICAgICAgICAgY2FzZSAncHJpbWVpcm8nOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSAxO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3VsdGltbyc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IHRoaXMuZW50aWRhZGVQYWdpbmFkYS50b3RhbDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdwcm94aW1vJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvKys7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnYW50ZXJpb3InOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8tLTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdjdXN0b21pemFkbyc6XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gMDtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28odHJ1ZSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmQubGlzdGFyUGFnaW5hY2FvKHRoaXMuZW50aWRhZGVQYWdpbmFkYSkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAoc3VjY2VzcykgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaWFsb2dFcnJvLm9wZW5EaWFsb2coXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdBdGVuw6fDo28hJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ05lbmh1bSByZWdpc3RybyBmb2kgZW5jb250cmFkby4nXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5yZXNldEZvcm0odGhpcy5mb3JtLCB0aGlzLmVudGlkYWRlUGFnaW5hZGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhID0gc3VjY2VzcztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gc3VjY2Vzcy50b3RhbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IHN1Y2Nlc3MucG9zaWNhbztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShzdWNjZXNzLmVudGlkYWRlWzBdKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJybyBwYWdpbmHDp8OjbycsIGVycm9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gcG9zaWNhb0FudGVyaW9yO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0UHJvZ3Jlc3NvKHByb2dyZXNzbzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSB0aGlzLl9kYXRhYmFyU2VydmljZS5kZWZpbmlyUHJvZ3Jlc3NvKHRoaXMuZm9ybSwgcHJvZ3Jlc3NvKTtcclxuICAgIH1cclxufVxyXG4iXX0=
455
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWMtZGF0YS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L2F3cy9iaWJsaW90ZWNhLWFuZ3VsYXIvcHJvamVjdHMvaWMtZGF0YWJhci1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2ljLWRhdGEtYmFyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTlELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQVFyRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQU8vRCxNQUFNLE9BQU8sZ0JBQWdCO0lBdUJ6QixZQUNZLE9BQWdDLEVBQ2hDLFdBQStCLEVBQy9CLFdBQXVCLEVBQ3ZCLGVBQStCLEVBQy9CLGdCQUFvQztRQUpwQyxZQUFPLEdBQVAsT0FBTyxDQUF5QjtRQUNoQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQWdCO1FBQy9CLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFyQnZDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNaEIs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TCxLQUFLO3VCQUNMLEtBQUs7d0NBQ0wsS0FBSzs4QkFDTCxLQUFLOzRCQUlMLE1BQU07cUJBUU4sU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7NEJBeUJyQyxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERyYXdlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBJY0NvbmZpcm1hRGlhbG9nU2VydmljZSB9IGZyb20gJ0Bpbm92YW1vYmlsL2ljLWNvbmZpcm1hLWRpYWxvZyc7XHJcbmltcG9ydCB7IEljbVNuYWNrQmFyU2VydmljZSB9IGZyb20gJ0Bpbm92YW1vYmlsL2ljbS1zbmFja2Jhcic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVycm9yRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZGlhbG9ncy9lcnJvci1kaWFsb2cvc2VydmljZS9lcnJvci1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhYmFyQmluZFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgQUNBT19QQUdJTkFDQU8gfSBmcm9tICcuL2NvbnN0YW50cy9pYy1kYXRhYmFyLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IERhdGFCYXJDb25maWdCb3RvZXNTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9EYXRhQmFyQ29uZmlnQm90b2VzU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhYmFyQmluZE9uQ2xpY2tTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUJhckJpbmRPbkNsaWNrU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUJhclJldmVydGVyU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhQmFyQmluZFNlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhRW50aWRhZGVQYWdpbmFkYSB9IGZyb20gJy4vY29udHJhdG8vSURhdGFFbnRpZGFkZVBhZ2luYWRhJztcclxuaW1wb3J0IHsgRUV2ZW50b0NsaWNrIH0gZnJvbSAnLi9lbnVtL2VldmVudG9jbGljayc7XHJcbmltcG9ydCB7IEVTdGF0dXMgfSBmcm9tICcuL2VudW0vZXN0YXR1cyc7XHJcbmltcG9ydCB7IEljRGF0YWJhclJldmVydGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaWMtZGF0YWJhci1yZXZlcnRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YWJhclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ljLWRhdGFiYXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaWMtZGF0YS1iYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZpZXcvaWMtZGF0YS1iYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdmlldy9pYy1kYXRhLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUJhckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIHNlcnZpY29CaW5kOlxyXG4gICAgICAgIHwgSURhdGFCYXJCaW5kU2VydmljZTxUPlxyXG4gICAgICAgIHwgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPlxyXG4gICAgICAgIHwgSURhdGFiYXJCaW5kT25DbGlja1NlcnZpY2U8VD47XHJcbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgICBASW5wdXQoKSBlbnRpZGFkZVBhZ2luYWRhOiBJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD47XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lczogRGF0YUJhckNvbmZpZ0JvdG9lc1NlcnZpY2U7XHJcbiAgICBASW5wdXQoKSBzZXQgc2Vydmljb1JldmVydGVyKHNlcnZpY286IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+KSB7XHJcbiAgICAgICAgdGhpcy5fc2Vydmljb1JldmVydGVyID0gc2VydmljbztcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RVN0YXR1cz4oKTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdHVzOiBFU3RhdHVzO1xyXG4gICAgcHVibGljIEVTdGF0dXMgPSBFU3RhdHVzO1xyXG4gICAgcHVibGljIGVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9zZXJ2aWNvUmV2ZXJ0ZXI6IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+O1xyXG4gICAgcHJpdmF0ZSAkc2V0U3RhdHVzOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZHJhd2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRyYXdlcjogTWF0RHJhd2VyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZzogSWNDb25maXJtYURpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nRXJybzogRXJyb3JEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGF0YWJhclNlcnZpY2U6IERhdGFiYXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3NuYWNrQmFyU2VydmljZTogSWNtU25hY2tCYXJTZXJ2aWNlXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGFyUHJvcGVydHNPYnJpZ2F0b3JpYXMoKTtcclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICB0aGlzLl9zdWJtZXRlckZvcm11bGFyaW9PbkVudGVyKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhclNldFN0YXR1cygpO1xyXG4gICAgICAgIHRoaXMuX3Blc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY29CaW5kLm9uQ2xpY2tFbnRlcikgdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuJHNldFN0YXR1cykgdGhpcy4kc2V0U3RhdHVzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gICAgZmVjaGFyU2lkZW5hdihldmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGluc2VyaW5kb091RWRpdGFuZG8oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLmluc2VyaW5kbyB8fCB0aGlzLnN0YXR1cyA9PT0gRVN0YXR1cy5lZGl0YW5kbztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9QZXNxdWlzYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1Blc3F1aXNhcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb1JldmVydGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvUmV2ZXJ0ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9BZGljaW9uYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmluc2VyaW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvQWRpY2lvbmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvRWRpdGFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuaW5zZXJpbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMucGVzcXVpc2FuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvRWRpdGFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvUmVtb3ZlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy5lbnRpZGFkZVBhZ2luYWRhPy5lbnRpZGFkZSB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1JlbW92ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9TYWx2YXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5mb3JtPy5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgICh0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmluc2VyaW5kbyAmJiB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmVkaXRhbmRvKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvU2FsdmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdG9lc1BhZ2luYWNhb1JldHJvY2VkZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5pbnNlcmluZG9PdUVkaXRhbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvIDw9IDEgfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzb1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90b2VzUGFnaW5hY2FvQXZhbmNhcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLmluc2VyaW5kb091RWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPj0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc29cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2tSZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGlja01vZG9UYWJlbGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tNb2RvVGFiZWxhKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrTm92YVBlc3F1aXNhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgIH1cclxuXHJcbiAgICBub3ZhUGVzcXVpc2EoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gMDtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGVzcXVpc2FyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnBlc3F1aXNhbmRvKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEuZW50aWRhZGUgPSBbXS5jb25jYXQodGhpcy5fZ2V0RW50aWRhZGUoKSk7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja0luc2VyaXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrSW5zZXJpcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrSW5zZXJpcik7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdGFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrRWRpdGFyKTtcclxuICAgICAgICB0aGlzLl9jbGlja0VkaXRhcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrRWRpdGFyKTtcclxuICAgIH1cclxuXHJcbiAgICByZW1vdmVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrUmVtb3Zlcik7XHJcbiAgICAgICAgdGhpcy5fY2xpY2tSZW1vdmVyKCk7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tSZW1vdmVyKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm94aW1vKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ3Byb3hpbW8nKTtcclxuICAgIH1cclxuXHJcbiAgICBhbnRlcmlvcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wYWdpbmFyKCdhbnRlcmlvcicpO1xyXG4gICAgfVxyXG5cclxuICAgIHVsdGltbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wYWdpbmFyKCd1bHRpbW8nKTtcclxuICAgIH1cclxuXHJcbiAgICBwcmltZWlybygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wYWdpbmFyKCdwcmltZWlybycpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhbHZhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja1NhbHZhcik7XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5zdGF0dXMpIHtcclxuICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmluc2VyaW5kbzpcclxuICAgICAgICAgICAgICAgIHRoaXMuX2luc2VyaXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmVkaXRhbmRvOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZWRpdGFyKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfaW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnNhbHZhbmRvKTtcclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyh0cnVlKTtcclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kXHJcbiAgICAgICAgICAgIC5jcmlhcigpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrU2FsdmFyKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2UuYWJyaXJTbmFja0JhclN1Y2Vzc28oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZWdpc3RybyBzYWx2byBjb20gc3VjZXNzbyEnXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoc3VjY2Vzcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmluc2VyaW5kbyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZWRpdGFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuc2FsdmFuZG8pO1xyXG4gICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKHRydWUpO1xyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmRcclxuICAgICAgICAgICAgLmVkaXRhcigpXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrU2FsdmFyKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnUmVnaXN0cm8gZWRpdGFkbyBjb20gc3VjZXNzbyEnXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoc3VjY2Vzcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5kZXNhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZWRpdGFuZG8pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgb2JzZXJ2YXJTZXRTdGF0dXMoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCh0aGlzLnNlcnZpY29CaW5kIGFzIElEYXRhYmFyQmluZFN0YXR1c1NlcnZpY2U8VD4pLnNldFN0YXR1cykge1xyXG4gICAgICAgICAgICB0aGlzLiRzZXRTdGF0dXMgPSAoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY29CaW5kIGFzIElEYXRhYmFyQmluZFN0YXR1c1NlcnZpY2U8VD5cclxuICAgICAgICAgICAgKS5zZXRTdGF0dXMuc3Vic2NyaWJlKChzdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmVkaXRhbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5pbnNlcmluZG86XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5zZXJpcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5wZXNxdWlzYW5kbzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXNxdWlzYXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLm5vdmFQZXNxdWlzYTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLnJlbW92ZW5kbzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW1vdmVyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3M6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3M7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHJldG9ybmFyU2Vydmljb1JldmVydGVyKCk6IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+IHtcclxuICAgICAgICBpZiAodGhpcy5fc2Vydmljb1JldmVydGVyID09IG51bGwpXHJcbiAgICAgICAgICAgIHRoaXMuX3NlcnZpY29SZXZlcnRlciA9IG5ldyBJY0RhdGFiYXJSZXZlcnRlclNlcnZpY2UoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlcnZpY29SZXZlcnRlcjtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXREYWRvc0FudGVyaW9yZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5yZXRvcm5hclNlcnZpY29SZXZlcnRlcigpLnNldERhZG9zQW50ZXJpb3JlcyhcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMsXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja1JldmVydGVyKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEgPSB0aGlzLnJldG9ybmFyU2Vydmljb1JldmVydGVyKCkucmVzdGF1cmFyRGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgICAgICB0aGlzLmZvcm1cclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHN0YXR1c0FudGVyaW9yID0gdGhpcy5yZXRvcm5hclNlcnZpY29SZXZlcnRlcigpLnN0YXR1c0FudGVyaW9yO1xyXG5cclxuICAgICAgICBpZiAoc3RhdHVzQW50ZXJpb3IgPT0gRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpXHJcbiAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIGVsc2UgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG5cclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhzdGF0dXNBbnRlcmlvcik7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tSZXZlcnRlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVzZXRhckNvbnRhZG9yUGFnaW5hY2FvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gMDtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEudG90YWwgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhclByb3BlcnRzT2JyaWdhdG9yaWFzKCk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2Vydmljb0JpbmQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ8OJIG9icmlnYXTDs3JpbyB0ZXIgdW0gc2VydmnDp28gZGUgYmluZCB2aW5jdWxhZG8uJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5lbnRpZGFkZVBhZ2luYWRhID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfDiSBvYnJpZ2F0w7NyaW8gdGVyIHVtYSBlbnRpZGFkZSBwYWdpbmFkYSB2aW5jdWxhZGEuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U3RhdHVzKHN0YXR1czogRVN0YXR1cyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLmVtaXQodGhpcy5zdGF0dXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldEVudGlkYWRlKCk6IFQge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIGFzIFQ7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zdWJtZXRlckZvcm11bGFyaW9PbkVudGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kLm9uQ2xpY2tFbnRlci5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09IEVTdGF0dXMubm92YVBlc3F1aXNhICYmIHRoaXMuZm9ybS52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wZXNxdWlzYXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Blc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2Vydmljb0JpbmQucGVzcXVpc2FyUG9zaWNhb1NlbGVjaW9uYWRhKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmQucGVzcXVpc2FyUG9zaWNhb1NlbGVjaW9uYWRhLnN1YnNjcmliZSgoZW50aWRhZGVQYWdpbmFkYSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09IEVTdGF0dXMubm92YVBlc3F1aXNhICYmIHRoaXMuZm9ybS52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhID0gZW50aWRhZGVQYWdpbmFkYTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Blc3F1aXNhclNlbGVjaW9uYWRvKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wZXNxdWlzYXJTZWxlY2lvbmFkbygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5wZXNxdWlzYW5kbyk7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcignY3VzdG9taXphZG8nKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NsaWNrSW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLl9yZXNldGFyQ29udGFkb3JQYWdpbmFjYW8oKTtcclxuICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5oYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgdGhpcy5mb3JtLnJlc2V0KHsgZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuaW5zZXJpbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja0VkaXRhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5oYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmVkaXRhbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja1JlbW92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5yZW1vdmVuZG8pO1xyXG4gICAgICAgIHRoaXMuX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9lbWl0aXJFdmVudG9DbGljayhldmVudG86IEVFdmVudG9DbGljayk6IHZvaWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhYmFyU2VydmljZS5lbWl0aXJFdmVudG9DbGljazxUPihcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZCBhcyBJRGF0YWJhckJpbmRPbkNsaWNrU2VydmljZTxUPixcclxuICAgICAgICAgICAgZXZlbnRvXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hY2FvQ2xvc2VEaWFsb2dDb25maXJtYWNhbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2cuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZXhpYmlyRGlhbG9nQ29uZmlybWFjYW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmFjYW9NZW5zYWdlbSA9ICdSZW1vdmVuZG8gcmVnaXN0cm8uLi4nO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvT2sgPSAoKSA9PlxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY29CaW5kLnJlbW92ZXIoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nLmNsb3NlRGlhbG9nKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kaWFsb2cuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2UuYWJyaXJTbmFja0JhclN1Y2Vzc28oJ1JlbW92aWRvIGNvbSBzdWNlc3NvIScpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHRoaXMuX2FjYW9DbG9zZURpYWxvZ0NvbmZpcm1hY2FvKClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb0NhbmNlbGFyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9hY2FvQ2xvc2VEaWFsb2dDb25maXJtYWNhbygpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5vcGVuRGlhbG9nKFxyXG4gICAgICAgICAgICAnQXRlbsOnw6NvIScsXHJcbiAgICAgICAgICAgICdWb2PDqiByZWFsbWVudGUgZGVzZWphIGV4Y2x1aXIgZXN0ZSByZWdpc3Rybz8nXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvT2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JldmVydGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb0NhbmNlbGFyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAnQXMgYWx0ZXJhw6fDtWVzIHJlYWxpemFkYXMgc2Vyw6NvIHBlcmRpZGFzLiBEZXNlamEgY29udGludWFyPydcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3BhZ2luYXIoYWNhbz86IEFDQU9fUEFHSU5BQ0FPKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5wZXNxdWlzYW5kbyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmVudGlkYWRlUGFnaW5hZGEuZW50aWRhZGUgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEuZW50aWRhZGUgPSBbXS5jb25jYXQodGhpcy5fZ2V0RW50aWRhZGUoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBwb3NpY2FvQW50ZXJpb3IgPSB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbztcclxuXHJcbiAgICAgICAgc3dpdGNoIChhY2FvKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3ByaW1laXJvJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gMTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICd1bHRpbW8nOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSB0aGlzLmVudGlkYWRlUGFnaW5hZGEudG90YWw7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAncHJveGltbyc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbysrO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2FudGVyaW9yJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvLS07XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnY3VzdG9taXphZG8nOlxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKHRydWUpO1xyXG5cclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kLmxpc3RhclBhZ2luYWNhbyh0aGlzLmVudGlkYWRlUGFnaW5hZGEpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKHN1Y2Nlc3MpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoc3VjY2VzcyA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nRXJyby5vcGVuRGlhbG9nKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnQXRlbsOnw6NvIScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdOZW5odW0gcmVnaXN0cm8gZm9pIGVuY29udHJhZG8uJ1xyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5ub3ZhUGVzcXVpc2EpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzcy5lbnRpZGFkZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UucmVzZXRGb3JtKHRoaXMuZm9ybSwgdGhpcy5lbnRpZGFkZVBhZ2luYWRhKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYSA9IHN1Y2Nlc3M7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS50b3RhbCA9IHN1Y2Nlc3MudG90YWw7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSBzdWNjZXNzLnBvc2ljYW87XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoc3VjY2Vzcy5lbnRpZGFkZVswXSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ2Vycm8gcGFnaW5hw6fDo28nLCBlcnJvcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IHBvc2ljYW9BbnRlcmlvcjtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFByb2dyZXNzbyhwcm9ncmVzc286IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvID0gdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVmaW5pclByb2dyZXNzbyh0aGlzLmZvcm0sIHByb2dyZXNzbyk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -523,9 +523,9 @@ class DataBarComponent {
523
523
  _pesquisarPosicaoSelecionada() {
524
524
  if (!this.servicoBind.pesquisarPosicaoSelecionada)
525
525
  return;
526
- this.servicoBind.pesquisarPosicaoSelecionada.subscribe((posicao) => {
526
+ this.servicoBind.pesquisarPosicaoSelecionada.subscribe((entidadePaginada) => {
527
527
  if (this.status === EStatus.novaPesquisa && this.form.valid) {
528
- this.entidadePaginada.posicao = posicao;
528
+ this.entidadePaginada = entidadePaginada;
529
529
  this._pesquisarSelecionado();
530
530
  }
531
531
  });