@inovamobil/ic-databar-lib 2.2.1-dev.0 → 2.2.2-next.0

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","desabilitarBotaoClonar","desabilitarBotaoAdicionar","desabilitarBotaoRemover","desabilitarBotaoSalvar","desabilitarBotaoPrimeiro","desabilitarBotaoAnterior","desabilitarBotaoProximo","desabilitarBotaoUltimo","desabilitarBotaoModoTabela","exibirBotaoModoTabela","exibirBotaoClonar","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","_dadosAnterioresFormulario","setDadosAnteriores","formularo","entidadePaginada","_entidadePaginadaAnterior","entidade","posicao","quantidade","total","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","clonar","retornarServicoReverter","dadosAnterioresFormulario","afterClickClonar","remover","onClickRemover","_clickRemover","afterClickRemover","proximo","anterior","ultimo","primeiro","salvar","onClickSalvar","_inserir","_editar","_this","salvando","criar","pipe","finalize","afterClickSalvar","subscribe","success","abrirSnackBarSucesso","_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 afterClickClonar = 'afterClickClonar',\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 desabilitarBotaoClonar(...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 exibirBotaoClonar(...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 { FormGroup } from '@angular/forms';\r\n\r\nimport { IDataBarReverterService } from '../contrato/IDataBarReverterService';\r\nimport { IDataEntidadePaginada } from '../contrato/IDataEntidadePaginada';\r\nimport { EStatus } from '../enum/estatus';\r\n\r\n@Injectable()\r\nexport class IcDatabarReverterService<T> implements IDataBarReverterService<T> {\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 get dadosAnterioresFormulario(): T {\r\n return this._dadosAnterioresFormulario;\r\n }\r\n\r\n public setDadosAnteriores(\r\n status: EStatus,\r\n formularo: FormGroup,\r\n entidadePaginada: IDataEntidadePaginada<T>,\r\n ): 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","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 { HttpErrorResponse } from '@angular/common/http';\r\nimport {\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 desabilitarBotaoClonar(): boolean {\r\n return (\r\n !this.entidadePaginada?.entidade ||\r\n this.status != EStatus.dadosCarregados ||\r\n this.emProgresso ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoClonar()\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 clonar(): void {\r\n this.inserir();\r\n this.form.patchValue(this.retornarServicoReverter().dadosAnterioresFormulario);\r\n this._emitirEventoClick(EEventoClick.afterClickClonar);\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: HttpErrorResponse) => {\r\n if (error.status === 422) {\r\n this.setStatus(EStatus.novaPesquisa);\r\n } else {\r\n this.setStatus(EStatus.dadosCarregados);\r\n this.entidadePaginada.posicao = posicaoAnterior;\r\n this._databarService.desabilitarForm(this.form);\r\n }\r\n this.setProgresso(false);\r\n console.error('erro paginação', error);\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","desabilitarBotaoClonar","desabilitarBotaoAdicionar","desabilitarBotaoRemover","desabilitarBotaoSalvar","desabilitarBotaoPrimeiro","desabilitarBotaoAnterior","desabilitarBotaoProximo","desabilitarBotaoUltimo","desabilitarBotaoModoTabela","exibirBotaoModoTabela","exibirBotaoClonar","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","clonar","onClickClonar","_clickClonar","afterClickClonar","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 onClickClonar = 'onClickClonar',\r\n afterClickClonar = 'afterClickClonar',\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 desabilitarBotaoClonar(...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 exibirBotaoClonar(...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 { FormGroup } from '@angular/forms';\r\n\r\nimport { IDataBarReverterService } from '../contrato/IDataBarReverterService';\r\nimport { IDataEntidadePaginada } from '../contrato/IDataEntidadePaginada';\r\nimport { EStatus } from '../enum/estatus';\r\n\r\n@Injectable()\r\nexport class IcDatabarReverterService<T> implements IDataBarReverterService<T> {\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(\r\n status: EStatus,\r\n formularo: FormGroup,\r\n entidadePaginada: IDataEntidadePaginada<T>,\r\n ): 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","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 { HttpErrorResponse } from '@angular/common/http';\r\nimport {\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 desabilitarBotaoClonar(): boolean {\r\n return (\r\n !this.entidadePaginada?.entidade ||\r\n this.status != EStatus.dadosCarregados ||\r\n this.emProgresso ||\r\n this.servicoConfiguracaoBotoes?.desabilitarBotaoClonar()\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 clonar(): void {\r\n this._emitirEventoClick(EEventoClick.onClickClonar);\r\n this._clickClonar();\r\n this._emitirEventoClick(EEventoClick.afterClickClonar);\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 this.form.markAllAsTouched();\r\n this.drawer.close();\r\n this.setStatus(EStatus.editando);\r\n }\r\n\r\n private _clickClonar(): void {\r\n this._setDadosAnteriores();\r\n this._resetarContadorPaginacao();\r\n this._databarService.habilitarForm(this.form);\r\n this.form.markAllAsTouched();\r\n this.drawer.close();\r\n this.setStatus(EStatus.inserindo);\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: HttpErrorResponse) => {\r\n if (error.status === 422) {\r\n this.setStatus(EStatus.novaPesquisa);\r\n } else {\r\n this.setStatus(EStatus.dadosCarregados);\r\n this.entidadePaginada.posicao = posicaoAnterior;\r\n this._databarService.desabilitarForm(this.form);\r\n }\r\n this.setProgresso(false);\r\n console.error('erro paginação', error);\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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSURhdGFCYXJSZXZlcnRlclNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvYnJlbmUvT25lRHJpdmUvRG9jdW1lbnRvcy9HaXRIdWIvYmlibGlvdGVjYS1hbmd1bGFyL3Byb2plY3RzL2ljLWRhdGFiYXItbGliL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb250cmF0by9JRGF0YUJhclJldmVydGVyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgRVN0YXR1cyB9IGZyb20gJy4uL2VudW0vZXN0YXR1cyc7XHJcbmltcG9ydCB7IElEYXRhRW50aWRhZGVQYWdpbmFkYSB9IGZyb20gJy4vSURhdGFFbnRpZGFkZVBhZ2luYWRhJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4ge1xyXG4gICAgc3RhdHVzQW50ZXJpb3I6IEVTdGF0dXM7XHJcbiAgICBkYWRvc0FudGVyaW9yZXNGb3JtdWxhcmlvOiBUO1xyXG4gICAgc2V0RGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgIHN0YXR1czogRVN0YXR1cyxcclxuICAgICAgICBmb3JtdWxhcm86IEZvcm1Hcm91cCxcclxuICAgICAgICBlbnRpZGFkZVBhZ2luYWRhOiBJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD4sXHJcbiAgICApOiB2b2lkO1xyXG4gICAgcmVzdGF1cmFyRGFkb3NBbnRlcmlvcmVzKGZvcm11bGFyaW86IEZvcm1Hcm91cCk6IElEYXRhRW50aWRhZGVQYWdpbmFkYTxUPjtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSURhdGFCYXJSZXZlcnRlclNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvYnJlbmUvT25lRHJpdmUvRG9jdW1lbnRvcy9HaXRIdWIvYmlibGlvdGVjYS1hbmd1bGFyL3Byb2plY3RzL2ljLWRhdGFiYXItbGliL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb250cmF0by9JRGF0YUJhclJldmVydGVyU2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgRVN0YXR1cyB9IGZyb20gJy4uL2VudW0vZXN0YXR1cyc7XHJcbmltcG9ydCB7IElEYXRhRW50aWRhZGVQYWdpbmFkYSB9IGZyb20gJy4vSURhdGFFbnRpZGFkZVBhZ2luYWRhJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4ge1xyXG4gICAgc3RhdHVzQW50ZXJpb3I6IEVTdGF0dXM7XHJcbiAgICBzZXREYWRvc0FudGVyaW9yZXMoXHJcbiAgICAgICAgc3RhdHVzOiBFU3RhdHVzLFxyXG4gICAgICAgIGZvcm11bGFybzogRm9ybUdyb3VwLFxyXG4gICAgICAgIGVudGlkYWRlUGFnaW5hZGE6IElEYXRhRW50aWRhZGVQYWdpbmFkYTxUPixcclxuICAgICk6IHZvaWQ7XHJcbiAgICByZXN0YXVyYXJEYWRvc0FudGVyaW9yZXMoZm9ybXVsYXJpbzogRm9ybUdyb3VwKTogSURhdGFFbnRpZGFkZVBhZ2luYWRhPFQ+O1xyXG59XHJcbiJdfQ==
@@ -13,6 +13,7 @@ export var EEventoClick;
13
13
  EEventoClick["onClickSalvar"] = "onClickSalvar";
14
14
  EEventoClick["afterClickSalvar"] = "afterClickSalvar";
15
15
  EEventoClick["onClickModoTabela"] = "onClickModoTabela";
16
+ EEventoClick["onClickClonar"] = "onClickClonar";
16
17
  EEventoClick["afterClickClonar"] = "afterClickClonar";
17
18
  })(EEventoClick || (EEventoClick = {}));
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWV2ZW50b2NsaWNrLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2JyZW5lL09uZURyaXZlL0RvY3VtZW50b3MvR2l0SHViL2JpYmxpb3RlY2EtYW5ndWxhci9wcm9qZWN0cy9pYy1kYXRhYmFyLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvZW51bS9lZXZlbnRvY2xpY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFlWDtBQWZELFdBQVksWUFBWTtJQUNwQiw0Q0FBNEIsQ0FBQTtJQUM1Qix1REFBdUMsQ0FBQTtJQUN2Qyw4Q0FBOEIsQ0FBQTtJQUM5Qix5REFBeUMsQ0FBQTtJQUN6QyxzREFBc0MsQ0FBQTtJQUN0QyxpRUFBaUQsQ0FBQTtJQUNqRCwwQ0FBMEIsQ0FBQTtJQUMxQixxREFBcUMsQ0FBQTtJQUNyQyw0Q0FBNEIsQ0FBQTtJQUM1Qix1REFBdUMsQ0FBQTtJQUN2QywrQ0FBK0IsQ0FBQTtJQUMvQixxREFBcUMsQ0FBQTtJQUNyQyx1REFBdUMsQ0FBQTtJQUN2QyxxREFBcUMsQ0FBQTtBQUN6QyxDQUFDLEVBZlcsWUFBWSxLQUFaLFlBQVksUUFldkIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFRXZlbnRvQ2xpY2sge1xyXG4gICAgb25DbGlja0luc2VyaXIgPSAnb25JbnNlcmlyJyxcclxuICAgIGFmdGVyQ2xpY2tJbnNlcmlyID0gJ2FmdGVyQ2xpY2tJbnNlcmlyJyxcclxuICAgIG9uQ2xpY2tSZXZlcnRlciA9ICdvblJldmVydGVyJyxcclxuICAgIGFmdGVyQ2xpY2tSZXZlcnRlciA9ICdhZnRlckNsaWNrUmV2ZXJ0ZXInLFxyXG4gICAgb25DbGlja05vdmFQZXNxdWlzYSA9ICdvbk5vdmFQZXNxdWlzYScsXHJcbiAgICBhZnRlckNsaWNrTm92YVBlc3F1aXNhID0gJ2FmdGVyQ2xpY2tOb3ZhUGVzcXVpc2EnLFxyXG4gICAgb25DbGlja0VkaXRhciA9ICdvbkVkaXRhcicsXHJcbiAgICBhZnRlckNsaWNrRWRpdGFyID0gJ2FmdGVyQ2xpY2tFZGl0YXInLFxyXG4gICAgb25DbGlja1JlbW92ZXIgPSAnb25SZW1vdmVyJyxcclxuICAgIGFmdGVyQ2xpY2tSZW1vdmVyID0gJ2FmdGVyQ2xpY2tSZW1vdmVyJyxcclxuICAgIG9uQ2xpY2tTYWx2YXIgPSAnb25DbGlja1NhbHZhcicsXHJcbiAgICBhZnRlckNsaWNrU2FsdmFyID0gJ2FmdGVyQ2xpY2tTYWx2YXInLFxyXG4gICAgb25DbGlja01vZG9UYWJlbGEgPSAnb25DbGlja01vZG9UYWJlbGEnLFxyXG4gICAgYWZ0ZXJDbGlja0Nsb25hciA9ICdhZnRlckNsaWNrQ2xvbmFyJyxcclxufVxyXG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWV2ZW50b2NsaWNrLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2JyZW5lL09uZURyaXZlL0RvY3VtZW50b3MvR2l0SHViL2JpYmxpb3RlY2EtYW5ndWxhci9wcm9qZWN0cy9pYy1kYXRhYmFyLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvZW51bS9lZXZlbnRvY2xpY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksWUFnQlg7QUFoQkQsV0FBWSxZQUFZO0lBQ3BCLDRDQUE0QixDQUFBO0lBQzVCLHVEQUF1QyxDQUFBO0lBQ3ZDLDhDQUE4QixDQUFBO0lBQzlCLHlEQUF5QyxDQUFBO0lBQ3pDLHNEQUFzQyxDQUFBO0lBQ3RDLGlFQUFpRCxDQUFBO0lBQ2pELDBDQUEwQixDQUFBO0lBQzFCLHFEQUFxQyxDQUFBO0lBQ3JDLDRDQUE0QixDQUFBO0lBQzVCLHVEQUF1QyxDQUFBO0lBQ3ZDLCtDQUErQixDQUFBO0lBQy9CLHFEQUFxQyxDQUFBO0lBQ3JDLHVEQUF1QyxDQUFBO0lBQ3ZDLCtDQUErQixDQUFBO0lBQy9CLHFEQUFxQyxDQUFBO0FBQ3pDLENBQUMsRUFoQlcsWUFBWSxLQUFaLFlBQVksUUFnQnZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRUV2ZW50b0NsaWNrIHtcclxuICAgIG9uQ2xpY2tJbnNlcmlyID0gJ29uSW5zZXJpcicsXHJcbiAgICBhZnRlckNsaWNrSW5zZXJpciA9ICdhZnRlckNsaWNrSW5zZXJpcicsXHJcbiAgICBvbkNsaWNrUmV2ZXJ0ZXIgPSAnb25SZXZlcnRlcicsXHJcbiAgICBhZnRlckNsaWNrUmV2ZXJ0ZXIgPSAnYWZ0ZXJDbGlja1JldmVydGVyJyxcclxuICAgIG9uQ2xpY2tOb3ZhUGVzcXVpc2EgPSAnb25Ob3ZhUGVzcXVpc2EnLFxyXG4gICAgYWZ0ZXJDbGlja05vdmFQZXNxdWlzYSA9ICdhZnRlckNsaWNrTm92YVBlc3F1aXNhJyxcclxuICAgIG9uQ2xpY2tFZGl0YXIgPSAnb25FZGl0YXInLFxyXG4gICAgYWZ0ZXJDbGlja0VkaXRhciA9ICdhZnRlckNsaWNrRWRpdGFyJyxcclxuICAgIG9uQ2xpY2tSZW1vdmVyID0gJ29uUmVtb3ZlcicsXHJcbiAgICBhZnRlckNsaWNrUmVtb3ZlciA9ICdhZnRlckNsaWNrUmVtb3ZlcicsXHJcbiAgICBvbkNsaWNrU2FsdmFyID0gJ29uQ2xpY2tTYWx2YXInLFxyXG4gICAgYWZ0ZXJDbGlja1NhbHZhciA9ICdhZnRlckNsaWNrU2FsdmFyJyxcclxuICAgIG9uQ2xpY2tNb2RvVGFiZWxhID0gJ29uQ2xpY2tNb2RvVGFiZWxhJyxcclxuICAgIG9uQ2xpY2tDbG9uYXIgPSAnb25DbGlja0Nsb25hcicsXHJcbiAgICBhZnRlckNsaWNrQ2xvbmFyID0gJ2FmdGVyQ2xpY2tDbG9uYXInLFxyXG59XHJcbiJdfQ==
@@ -153,8 +153,8 @@ export class DataBarComponent {
153
153
  this._emitirEventoClick(EEventoClick.afterClickEditar);
154
154
  }
155
155
  clonar() {
156
- this.inserir();
157
- this.form.patchValue(this.retornarServicoReverter().dadosAnterioresFormulario);
156
+ this._emitirEventoClick(EEventoClick.onClickClonar);
157
+ this._clickClonar();
158
158
  this._emitirEventoClick(EEventoClick.afterClickClonar);
159
159
  }
160
160
  remover() {
@@ -340,6 +340,14 @@ export class DataBarComponent {
340
340
  this.drawer.close();
341
341
  this.setStatus(EStatus.editando);
342
342
  }
343
+ _clickClonar() {
344
+ this._setDadosAnteriores();
345
+ this._resetarContadorPaginacao();
346
+ this._databarService.habilitarForm(this.form);
347
+ this.form.markAllAsTouched();
348
+ this.drawer.close();
349
+ this.setStatus(EStatus.inserindo);
350
+ }
343
351
  _clickRemover() {
344
352
  this.setStatus(EStatus.removendo);
345
353
  this._exibirDialogConfirmacao();
@@ -468,4 +476,4 @@ DataBarComponent.propDecorators = {
468
476
  drawer: [{ type: ViewChild, args: ['drawer', { static: false },] }],
469
477
  fecharSidenav: [{ type: HostListener, args: ['document:click', ['$event'],] }]
470
478
  };
471
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWMtZGF0YS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2JyZW5lL09uZURyaXZlL0RvY3VtZW50b3MvR2l0SHViL2JpYmxpb3RlY2EtYW5ndWxhci9wcm9qZWN0cy9pYy1kYXRhYmFyLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvaWMtZGF0YS1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBUXJHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTy9ELE1BQU0sT0FBTyxnQkFBZ0I7SUF1QnpCLFlBQ1ksT0FBZ0MsRUFDaEMsV0FBK0IsRUFDL0IsV0FBdUIsRUFDdkIsZUFBK0IsRUFDL0IsZ0JBQW9DO1FBSnBDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFv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QUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuRDtZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxZQUFZLENBQUMsU0FBa0I7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDbkYsQ0FBQzs7O1lBbmxCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLDRnbEJBQWdEOzthQUVuRDs7O1lBdEJRLHVCQUF1QjtZQUt2QixrQkFBa0I7WUFoQnZCLFVBQVU7WUEyQkwsY0FBYztZQWZkLGtCQUFrQjs7OzBCQXVCdEIsS0FBSzttQkFJTCxLQUFLOytCQUNMLEtBQUs7dUJBQ0wsS0FBSzt3Q0FDTCxLQUFLOzhCQUNMLEtBQUs7NEJBSUwsTUFBTTtxQkFRTixTQUFTLFNBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs0QkF5QnJDLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERyYXdlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBJY0NvbmZpcm1hRGlhbG9nU2VydmljZSB9IGZyb20gJ0Bpbm92YW1vYmlsL2ljLWNvbmZpcm1hLWRpYWxvZyc7XHJcbmltcG9ydCB7IEljbVNuYWNrQmFyU2VydmljZSB9IGZyb20gJ0Bpbm92YW1vYmlsL2ljbS1zbmFja2Jhcic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IEVycm9yRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZGlhbG9ncy9lcnJvci1kaWFsb2cvc2VydmljZS9lcnJvci1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhYmFyQmluZFN0YXR1c1NlcnZpY2UgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgQUNBT19QQUdJTkFDQU8gfSBmcm9tICcuL2NvbnN0YW50cy9pYy1kYXRhYmFyLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IERhdGFCYXJDb25maWdCb3RvZXNTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9EYXRhQmFyQ29uZmlnQm90b2VzU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhYmFyQmluZE9uQ2xpY2tTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUJhckJpbmRPbkNsaWNrU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUJhclJldmVydGVyU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhQmFyQmluZFNlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhRW50aWRhZGVQYWdpbmFkYSB9IGZyb20gJy4vY29udHJhdG8vSURhdGFFbnRpZGFkZVBhZ2luYWRhJztcclxuaW1wb3J0IHsgRUV2ZW50b0NsaWNrIH0gZnJvbSAnLi9lbnVtL2VldmVudG9jbGljayc7XHJcbmltcG9ydCB7IEVTdGF0dXMgfSBmcm9tICcuL2VudW0vZXN0YXR1cyc7XHJcbmltcG9ydCB7IEljRGF0YWJhclJldmVydGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaWMtZGF0YWJhci1yZXZlcnRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YWJhclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2ljLWRhdGFiYXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnaWMtZGF0YS1iYXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZpZXcvaWMtZGF0YS1iYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdmlldy9pYy1kYXRhLWJhci5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUJhckNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBJbnB1dCgpIHNlcnZpY29CaW5kOlxyXG4gICAgICAgIHwgSURhdGFCYXJCaW5kU2VydmljZTxUPlxyXG4gICAgICAgIHwgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPlxyXG4gICAgICAgIHwgSURhdGFiYXJCaW5kT25DbGlja1NlcnZpY2U8VD47XHJcbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXA7XHJcbiAgICBASW5wdXQoKSBlbnRpZGFkZVBhZ2luYWRhOiBJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD47XHJcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lczogRGF0YUJhckNvbmZpZ0JvdG9lc1NlcnZpY2U7XHJcbiAgICBASW5wdXQoKSBzZXQgc2Vydmljb1JldmVydGVyKHNlcnZpY286IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+KSB7XHJcbiAgICAgICAgdGhpcy5fc2Vydmljb1JldmVydGVyID0gc2VydmljbztcclxuICAgIH1cclxuXHJcbiAgICBAT3V0cHV0KCkgc3RhdHVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RVN0YXR1cz4oKTtcclxuXHJcbiAgICBwdWJsaWMgc3RhdHVzOiBFU3RhdHVzO1xyXG4gICAgcHVibGljIEVTdGF0dXMgPSBFU3RhdHVzO1xyXG4gICAgcHVibGljIGVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9zZXJ2aWNvUmV2ZXJ0ZXI6IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+O1xyXG4gICAgcHJpdmF0ZSAkc2V0U3RhdHVzOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnZHJhd2VyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGRyYXdlcjogTWF0RHJhd2VyO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZzogSWNDb25maXJtYURpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nRXJybzogRXJyb3JEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBfZGF0YWJhclNlcnZpY2U6IERhdGFiYXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgX3NuYWNrQmFyU2VydmljZTogSWNtU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsaWRhclByb3BlcnRzT2JyaWdhdG9yaWFzKCk7XHJcbiAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgIHRoaXMubm92YVBlc3F1aXNhKCk7XHJcbiAgICAgICAgdGhpcy5fc3VibWV0ZXJGb3JtdWxhcmlvT25FbnRlcigpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2YXJTZXRTdGF0dXMoKTtcclxuICAgICAgICB0aGlzLl9wZXNxdWlzYXJQb3NpY2FvU2VsZWNpb25hZGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIpIHRoaXMuc2Vydmljb0JpbmQub25DbGlja0VudGVyLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLiRzZXRTdGF0dXMpIHRoaXMuJHNldFN0YXR1cy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmNsaWNrJywgWyckZXZlbnQnXSlcclxuICAgIGZlY2hhclNpZGVuYXYoZXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBpbnNlcmluZG9PdUVkaXRhbmRvKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnN0YXR1cyA9PT0gRVN0YXR1cy5pbnNlcmluZG8gfHwgdGhpcy5zdGF0dXMgPT09IEVTdGF0dXMuZWRpdGFuZG87XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9Nb2RvVGFiZWxhKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuaW5zZXJpbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmZvcm0uaW52YWxpZCB8fFxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY29Db25maWd1cmFjYW9Cb3RvZXM/LmRlc2FiaWxpdGFyQm90YW9Nb2RvVGFiZWxhKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvUGVzcXVpc2FyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuaW5zZXJpbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MgfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmZvcm0uaW52YWxpZCB8fFxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY29Db25maWd1cmFjYW9Cb3RvZXM/LmRlc2FiaWxpdGFyQm90YW9QZXNxdWlzYXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9SZXZlcnRlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLm5vdmFQZXNxdWlzYSB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmV4ZWN1dGFyQWNhbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1JldmVydGVyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvQWRpY2lvbmFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb0FkaWNpb25hcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb0VkaXRhcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmluc2VyaW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLm5vdmFQZXNxdWlzYSB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmV4ZWN1dGFyQWNhbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLnBlc3F1aXNhbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb0VkaXRhcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb0Nsb25hcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy5lbnRpZGFkZVBhZ2luYWRhPy5lbnRpZGFkZSB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb0Nsb25hcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb1JlbW92ZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgIXRoaXMuZW50aWRhZGVQYWdpbmFkYT8uZW50aWRhZGUgfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgIT0gRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MgfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnNlcnZpY29Db25maWd1cmFjYW9Cb3RvZXM/LmRlc2FiaWxpdGFyQm90YW9SZW1vdmVyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvU2FsdmFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybT8uaW52YWxpZCB8fFxyXG4gICAgICAgICAgICAodGhpcy5zdGF0dXMgIT0gRVN0YXR1cy5pbnNlcmluZG8gJiYgdGhpcy5zdGF0dXMgIT0gRVN0YXR1cy5lZGl0YW5kbykgfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1NhbHZhcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3RvZXNQYWdpbmFjYW9SZXRyb2NlZGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuaW5zZXJpbmRvT3VFZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA8PSAxIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc29cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdG9lc1BhZ2luYWNhb0F2YW5jYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5pbnNlcmluZG9PdUVkaXRhbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID49IHRoaXMuZW50aWRhZGVQYWdpbmFkYS50b3RhbCB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrUmV2ZXJ0ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZXhpYmlyRGlhbG9nQ29uZmlybWFjYW9SZXZlcnRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2tNb2RvVGFiZWxhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrTW9kb1RhYmVsYSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGlja05vdmFQZXNxdWlzYSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja05vdmFQZXNxdWlzYSk7XHJcbiAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja05vdmFQZXNxdWlzYSk7XHJcbiAgICB9XHJcblxyXG4gICAgbm92YVBlc3F1aXNhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmhhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoeyBlbWl0RXZlbnQ6IGZhbHNlLCBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEuZW50aWRhZGUgPSB0aGlzLmZvcm0udmFsdWU7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSAwO1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS50b3RhbCA9IDA7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5ub3ZhUGVzcXVpc2EpO1xyXG4gICAgfVxyXG5cclxuICAgIHBlc3F1aXNhcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5wZXNxdWlzYW5kbyk7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID0gW10uY29uY2F0KHRoaXMuX2dldEVudGlkYWRlKCkpO1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGluc2VyaXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tJbnNlcmlyKTtcclxuICAgICAgICB0aGlzLl9jbGlja0luc2VyaXIoKTtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja0luc2VyaXIpO1xyXG4gICAgfVxyXG5cclxuICAgIGVkaXRhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja0VkaXRhcik7XHJcbiAgICAgICAgdGhpcy5fY2xpY2tFZGl0YXIoKTtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja0VkaXRhcik7XHJcbiAgICB9XHJcblxyXG4gICAgY2xvbmFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5zZXJpcigpO1xyXG4gICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMucmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKS5kYWRvc0FudGVyaW9yZXNGb3JtdWxhcmlvKTtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja0Nsb25hcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja1JlbW92ZXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrUmVtb3ZlcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrUmVtb3Zlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJveGltbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9wYWdpbmFyKCdwcm94aW1vJyk7XHJcbiAgICB9XHJcblxyXG4gICAgYW50ZXJpb3IoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcignYW50ZXJpb3InKTtcclxuICAgIH1cclxuXHJcbiAgICB1bHRpbW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigndWx0aW1vJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpbWVpcm8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigncHJpbWVpcm8nKTtcclxuICAgIH1cclxuXHJcbiAgICBzYWx2YXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tTYWx2YXIpO1xyXG5cclxuICAgICAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5pbnNlcmluZG86XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnNlcmlyKCk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5lZGl0YW5kbzpcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VkaXRhcigpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2luc2VyaXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5zYWx2YW5kbyk7XHJcbiAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28odHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZFxyXG4gICAgICAgICAgICAuY3JpYXIoKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja1NhbHZhcik7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHN1Y2Nlc3MpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrQmFyU2VydmljZS5hYnJpclNuYWNrQmFyU3VjZXNzbyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZ2lzdHJvIHNhbHZvIGNvbSBzdWNlc3NvIScsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoc3VjY2Vzcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmluc2VyaW5kbyk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2VkaXRhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnNhbHZhbmRvKTtcclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyh0cnVlKTtcclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kXHJcbiAgICAgICAgICAgIC5lZGl0YXIoKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja1NhbHZhcik7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHN1Y2Nlc3MpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2UuYWJyaXJTbmFja0JhclN1Y2Vzc28oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZWdpc3RybyBlZGl0YWRvIGNvbSBzdWNlc3NvIScsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoc3VjY2Vzcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5kZXNhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZWRpdGFuZG8pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9ic2VydmFyU2V0U3RhdHVzKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICgodGhpcy5zZXJ2aWNvQmluZCBhcyBJRGF0YWJhckJpbmRTdGF0dXNTZXJ2aWNlPFQ+KS5zZXRTdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy4kc2V0U3RhdHVzID0gKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZCBhcyBJRGF0YWJhckJpbmRTdGF0dXNTZXJ2aWNlPFQ+XHJcbiAgICAgICAgICAgICkuc2V0U3RhdHVzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5lZGl0YW5kbzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lZGl0YXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMuaW5zZXJpbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluc2VyaXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMucGVzcXVpc2FuZG86XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVzcXVpc2FyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5ub3ZhUGVzcXVpc2E6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm92YVBlc3F1aXNhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgRVN0YXR1cy5yZW1vdmVuZG86XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXR1cyA9IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXRvcm5hclNlcnZpY29SZXZlcnRlcigpOiBJRGF0YUJhclJldmVydGVyU2VydmljZTxUPiB7XHJcbiAgICAgICAgaWYgKHRoaXMuX3NlcnZpY29SZXZlcnRlciA9PSBudWxsKVxyXG4gICAgICAgICAgICB0aGlzLl9zZXJ2aWNvUmV2ZXJ0ZXIgPSBuZXcgSWNEYXRhYmFyUmV2ZXJ0ZXJTZXJ2aWNlKCk7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl9zZXJ2aWNvUmV2ZXJ0ZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0RGFkb3NBbnRlcmlvcmVzKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKS5zZXREYWRvc0FudGVyaW9yZXMoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLFxyXG4gICAgICAgICAgICB0aGlzLmZvcm0sXHJcbiAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JldmVydGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrUmV2ZXJ0ZXIpO1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYSA9IHRoaXMucmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKS5yZXN0YXVyYXJEYWRvc0FudGVyaW9yZXMoXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHN0YXR1c0FudGVyaW9yID0gdGhpcy5yZXRvcm5hclNlcnZpY29SZXZlcnRlcigpLnN0YXR1c0FudGVyaW9yO1xyXG5cclxuICAgICAgICBpZiAoc3RhdHVzQW50ZXJpb3IgPT0gRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpXHJcbiAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIGVsc2UgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG5cclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhzdGF0dXNBbnRlcmlvcik7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tSZXZlcnRlcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVzZXRhckNvbnRhZG9yUGFnaW5hY2FvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gMDtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEudG90YWwgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdmFsaWRhclByb3BlcnRzT2JyaWdhdG9yaWFzKCk6IGFueSB7XHJcbiAgICAgICAgaWYgKHRoaXMuc2Vydmljb0JpbmQgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ8OJIG9icmlnYXTDs3JpbyB0ZXIgdW0gc2VydmnDp28gZGUgYmluZCB2aW5jdWxhZG8uJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5lbnRpZGFkZVBhZ2luYWRhID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfDiSBvYnJpZ2F0w7NyaW8gdGVyIHVtYSBlbnRpZGFkZSBwYWdpbmFkYSB2aW5jdWxhZGEuJyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0U3RhdHVzKHN0YXR1czogRVN0YXR1cyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghc3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0dXM7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLmVtaXQodGhpcy5zdGF0dXMpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldEVudGlkYWRlKCk6IFQge1xyXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIGFzIFQ7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zdWJtZXRlckZvcm11bGFyaW9PbkVudGVyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIpIHJldHVybjtcclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kLm9uQ2xpY2tFbnRlci5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09IEVTdGF0dXMubm92YVBlc3F1aXNhICYmIHRoaXMuZm9ybS52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wZXNxdWlzYXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Blc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2Vydmljb0JpbmQucGVzcXVpc2FyUG9zaWNhb1NlbGVjaW9uYWRhKSByZXR1cm47XHJcblxyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmQucGVzcXVpc2FyUG9zaWNhb1NlbGVjaW9uYWRhLnN1YnNjcmliZSgoZW50aWRhZGVQYWdpbmFkYSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5zdGF0dXMgPT09IEVTdGF0dXMubm92YVBlc3F1aXNhICYmIHRoaXMuZm9ybS52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhID0gZW50aWRhZGVQYWdpbmFkYTtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3Blc3F1aXNhclNlbGVjaW9uYWRvKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wZXNxdWlzYXJTZWxlY2lvbmFkbygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5wZXNxdWlzYW5kbyk7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcignY3VzdG9taXphZG8nKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2NsaWNrSW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLl9yZXNldGFyQ29udGFkb3JQYWdpbmFjYW8oKTtcclxuICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5oYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgdGhpcy5mb3JtLnJlc2V0KHsgZW1pdEV2ZW50OiBmYWxzZSwgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuaW5zZXJpbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja0VkaXRhcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5oYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmVkaXRhbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja1JlbW92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5yZW1vdmVuZG8pO1xyXG4gICAgICAgIHRoaXMuX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9lbWl0aXJFdmVudG9DbGljayhldmVudG86IEVFdmVudG9DbGljayk6IHZvaWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhYmFyU2VydmljZS5lbWl0aXJFdmVudG9DbGljazxUPihcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZCBhcyBJRGF0YWJhckJpbmRPbkNsaWNrU2VydmljZTxUPixcclxuICAgICAgICAgICAgZXZlbnRvLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYWNhb0Nsb3NlRGlhbG9nQ29uZmlybWFjYW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmNsb3NlRGlhbG9nKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvTWVuc2FnZW0gPSAnUmVtb3ZlbmRvIHJlZ2lzdHJvLi4uJztcclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb09rID0gKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5yZW1vdmVyKCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5jbG9zZURpYWxvZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm92YVBlc3F1aXNhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKCdSZW1vdmlkbyBjb20gc3VjZXNzbyEnKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLl9hY2FvQ2xvc2VEaWFsb2dDb25maXJtYWNhbygpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvQ2FuY2VsYXIgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjYW9DbG9zZURpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2coXHJcbiAgICAgICAgICAgICdBdGVuw6fDo28hJyxcclxuICAgICAgICAgICAgJ1ZvY8OqIHJlYWxtZW50ZSBkZXNlamEgZXhjbHVpciBlc3RlIHJlZ2lzdHJvPycsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvT2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JldmVydGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb0NhbmNlbGFyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAnQXMgYWx0ZXJhw6fDtWVzIHJlYWxpemFkYXMgc2Vyw6NvIHBlcmRpZGFzLiBEZXNlamEgY29udGludWFyPycsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wYWdpbmFyKGFjYW8/OiBBQ0FPX1BBR0lOQUNBTyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMucGVzcXVpc2FuZG8pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID0gW10uY29uY2F0KHRoaXMuX2dldEVudGlkYWRlKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcG9zaWNhb0FudGVyaW9yID0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW87XHJcblxyXG4gICAgICAgIHN3aXRjaCAoYWNhbykge1xyXG4gICAgICAgICAgICBjYXNlICdwcmltZWlybyc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndWx0aW1vJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3Byb3hpbW8nOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8rKztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhbnRlcmlvcic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhby0tO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbWl6YWRvJzpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSAwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5saXN0YXJQYWdpbmFjYW8odGhpcy5lbnRpZGFkZVBhZ2luYWRhKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ0Vycm8ub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnTmVuaHVtIHJlZ2lzdHJvIGZvaSBlbmNvbnRyYWRvLicsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5yZXNldEZvcm0odGhpcy5mb3JtLCB0aGlzLmVudGlkYWRlUGFnaW5hZGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhID0gc3VjY2VzcztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gc3VjY2Vzcy50b3RhbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IHN1Y2Nlc3MucG9zaWNhbztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShzdWNjZXNzLmVudGlkYWRlWzBdKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQyMikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gcG9zaWNhb0FudGVyaW9yO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJybyBwYWdpbmHDp8OjbycsIGVycm9yKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0UHJvZ3Jlc3NvKHByb2dyZXNzbzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSB0aGlzLl9kYXRhYmFyU2VydmljZS5kZWZpbmlyUHJvZ3Jlc3NvKHRoaXMuZm9ybSwgcHJvZ3Jlc3NvKTtcclxuICAgIH1cclxufVxyXG4iXX0=
479
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWMtZGF0YS1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2JyZW5lL09uZURyaXZlL0RvY3VtZW50b3MvR2l0SHViL2JpYmxpb3RlY2EtYW5ndWxhci9wcm9qZWN0cy9pYy1kYXRhYmFyLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvaWMtZGF0YS1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlFQUFpRSxDQUFDO0FBUXJHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBTy9ELE1BQU0sT0FBTyxnQkFBZ0I7SUF1QnpCLFlBQ1ksT0FBZ0MsRUFDaEMsV0FBK0IsRUFDL0IsV0FBdUIsRUFDdkIsZUFBK0IsRUFDL0IsZ0JBQW9DO1FBSnBDLFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUN2QixvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFv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WSxTQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBPbkluaXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XHJcbmltcG9ydCB7IEljQ29uZmlybWFEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGlub3ZhbW9iaWwvaWMtY29uZmlybWEtZGlhbG9nJztcclxuaW1wb3J0IHsgSWNtU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnQGlub3ZhbW9iaWwvaWNtLXNuYWNrYmFyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRXJyb3JEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9kaWFsb2dzL2Vycm9yLWRpYWxvZy9zZXJ2aWNlL2Vycm9yLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZSB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBBQ0FPX1BBR0lOQUNBTyB9IGZyb20gJy4vY29uc3RhbnRzL2ljLWRhdGFiYXIuY29uc3RhbnRzJztcclxuaW1wb3J0IHsgRGF0YUJhckNvbmZpZ0JvdG9lc1NlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0RhdGFCYXJDb25maWdCb3RvZXNTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFiYXJCaW5kT25DbGlja1NlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyQmluZE9uQ2xpY2tTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFCYXJSZXZlcnRlclNlcnZpY2UgfSBmcm9tICcuL2NvbnRyYXRvL0lEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFCYXJCaW5kU2VydmljZSB9IGZyb20gJy4vY29udHJhdG8vSURhdGFCYXJTZXJ2aWNlJztcclxuaW1wb3J0IHsgSURhdGFFbnRpZGFkZVBhZ2luYWRhIH0gZnJvbSAnLi9jb250cmF0by9JRGF0YUVudGlkYWRlUGFnaW5hZGEnO1xyXG5pbXBvcnQgeyBFRXZlbnRvQ2xpY2sgfSBmcm9tICcuL2VudW0vZWV2ZW50b2NsaWNrJztcclxuaW1wb3J0IHsgRVN0YXR1cyB9IGZyb20gJy4vZW51bS9lc3RhdHVzJztcclxuaW1wb3J0IHsgSWNEYXRhYmFyUmV2ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9pYy1kYXRhYmFyLXJldmVydGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhYmFyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvaWMtZGF0YWJhci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdpYy1kYXRhLWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdmlldy9pYy1kYXRhLWJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi92aWV3L2ljLWRhdGEtYmFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhQmFyQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkgc2Vydmljb0JpbmQ6XHJcbiAgICAgICAgfCBJRGF0YUJhckJpbmRTZXJ2aWNlPFQ+XHJcbiAgICAgICAgfCBJRGF0YWJhckJpbmRTdGF0dXNTZXJ2aWNlPFQ+XHJcbiAgICAgICAgfCBJRGF0YWJhckJpbmRPbkNsaWNrU2VydmljZTxUPjtcclxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcclxuICAgIEBJbnB1dCgpIGVudGlkYWRlUGFnaW5hZGE6IElEYXRhRW50aWRhZGVQYWdpbmFkYTxUPjtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzOiBEYXRhQmFyQ29uZmlnQm90b2VzU2VydmljZTtcclxuICAgIEBJbnB1dCgpIHNldCBzZXJ2aWNvUmV2ZXJ0ZXIoc2VydmljbzogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4pIHtcclxuICAgICAgICB0aGlzLl9zZXJ2aWNvUmV2ZXJ0ZXIgPSBzZXJ2aWNvO1xyXG4gICAgfVxyXG5cclxuICAgIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxFU3RhdHVzPigpO1xyXG5cclxuICAgIHB1YmxpYyBzdGF0dXM6IEVTdGF0dXM7XHJcbiAgICBwdWJsaWMgRVN0YXR1cyA9IEVTdGF0dXM7XHJcbiAgICBwdWJsaWMgZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgIHByaXZhdGUgX3NlcnZpY29SZXZlcnRlcjogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD47XHJcbiAgICBwcml2YXRlICRzZXRTdGF0dXM6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKCdkcmF3ZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJhd2VyOiBNYXREcmF3ZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nOiBJY0NvbmZpcm1hRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9kaWFsb2dFcnJvOiBFcnJvckRpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIF9kYXRhYmFyU2VydmljZTogRGF0YWJhclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBfc25hY2tCYXJTZXJ2aWNlOiBJY21TbmFja0JhclNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52YWxpZGFyUHJvcGVydHNPYnJpZ2F0b3JpYXMoKTtcclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5ub3ZhUGVzcXVpc2EoKTtcclxuICAgICAgICB0aGlzLl9zdWJtZXRlckZvcm11bGFyaW9PbkVudGVyKCk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZhclNldFN0YXR1cygpO1xyXG4gICAgICAgIHRoaXMuX3Blc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY29CaW5kLm9uQ2xpY2tFbnRlcikgdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuJHNldFN0YXR1cykgdGhpcy4kc2V0U3RhdHVzLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gICAgZmVjaGFyU2lkZW5hdihldmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGluc2VyaW5kb091RWRpdGFuZG8oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLmluc2VyaW5kbyB8fCB0aGlzLnN0YXR1cyA9PT0gRVN0YXR1cy5lZGl0YW5kbztcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb01vZG9UYWJlbGEoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9QZXNxdWlzYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5pbnNlcmluZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybS5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1Blc3F1aXNhcigpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgZGVzYWJpbGl0YXJCb3Rhb1JldmVydGVyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvUmV2ZXJ0ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9BZGljaW9uYXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyA9PSBFU3RhdHVzLmluc2VyaW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvQWRpY2lvbmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvRWRpdGFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuaW5zZXJpbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMubm92YVBlc3F1aXNhIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMuZXhlY3V0YXJBY2FvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzID09IEVTdGF0dXMucGVzcXVpc2FuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5zdGF0dXMgPT0gRVN0YXR1cy5lZGl0YW5kbyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvRWRpdGFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvQ2xvbmFyKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICF0aGlzLmVudGlkYWRlUGFnaW5hZGE/LmVudGlkYWRlIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzICE9IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvQ2xvbmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdGFvUmVtb3ZlcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAhdGhpcy5lbnRpZGFkZVBhZ2luYWRhPy5lbnRpZGFkZSB8fFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuc2Vydmljb0NvbmZpZ3VyYWNhb0JvdG9lcz8uZGVzYWJpbGl0YXJCb3Rhb1JlbW92ZXIoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90YW9TYWx2YXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5mb3JtPy5pbnZhbGlkIHx8XHJcbiAgICAgICAgICAgICh0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmluc2VyaW5kbyAmJiB0aGlzLnN0YXR1cyAhPSBFU3RhdHVzLmVkaXRhbmRvKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmVtUHJvZ3Jlc3NvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgfHxcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQ29uZmlndXJhY2FvQm90b2VzPy5kZXNhYmlsaXRhckJvdGFvU2FsdmFyKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkZXNhYmlsaXRhckJvdG9lc1BhZ2luYWNhb1JldHJvY2VkZXIoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgdGhpcy5pbnNlcmluZG9PdUVkaXRhbmRvIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvIDw9IDEgfHxcclxuICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzb1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRlc2FiaWxpdGFyQm90b2VzUGFnaW5hY2FvQXZhbmNhcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICB0aGlzLmluc2VyaW5kb091RWRpdGFuZG8gfHxcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPj0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsIHx8XHJcbiAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc29cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uQ2xpY2tSZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25DbGlja01vZG9UYWJlbGEoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tNb2RvVGFiZWxhKTtcclxuICAgIH1cclxuXHJcbiAgICBvbkNsaWNrTm92YVBlc3F1aXNhKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrTm92YVBlc3F1aXNhKTtcclxuICAgIH1cclxuXHJcbiAgICBub3ZhUGVzcXVpc2EoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gMDtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICB9XHJcblxyXG4gICAgcGVzcXVpc2FyKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLnBlc3F1aXNhbmRvKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEuZW50aWRhZGUgPSBbXS5jb25jYXQodGhpcy5fZ2V0RW50aWRhZGUoKSk7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigpO1xyXG4gICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5zZXJpcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja0luc2VyaXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrSW5zZXJpcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrSW5zZXJpcik7XHJcbiAgICB9XHJcblxyXG4gICAgZWRpdGFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrRWRpdGFyKTtcclxuICAgICAgICB0aGlzLl9jbGlja0VkaXRhcigpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrRWRpdGFyKTtcclxuICAgIH1cclxuXHJcbiAgICBjbG9uYXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tDbG9uYXIpO1xyXG4gICAgICAgIHRoaXMuX2NsaWNrQ2xvbmFyKCk7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tDbG9uYXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLm9uQ2xpY2tSZW1vdmVyKTtcclxuICAgICAgICB0aGlzLl9jbGlja1JlbW92ZXIoKTtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2suYWZ0ZXJDbGlja1JlbW92ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3hpbW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcGFnaW5hcigncHJveGltbycpO1xyXG4gICAgfVxyXG5cclxuICAgIGFudGVyaW9yKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ2FudGVyaW9yJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdWx0aW1vKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ3VsdGltbycpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaW1laXJvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ3ByaW1laXJvJyk7XHJcbiAgICB9XHJcblxyXG4gICAgc2FsdmFyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5vbkNsaWNrU2FsdmFyKTtcclxuXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLnN0YXR1cykge1xyXG4gICAgICAgICAgICBjYXNlIEVTdGF0dXMuaW5zZXJpbmRvOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJpcigpO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIEVTdGF0dXMuZWRpdGFuZG86XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lZGl0YXIoKTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9pbnNlcmlyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuc2FsdmFuZG8pO1xyXG4gICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKHRydWUpO1xyXG4gICAgICAgIHRoaXMuc2Vydmljb0JpbmRcclxuICAgICAgICAgICAgLmNyaWFyKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tTYWx2YXIpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zbmFja0JhclNlcnZpY2UuYWJyaXJTbmFja0JhclN1Y2Vzc28oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdSZWdpc3RybyBzYWx2byBjb20gc3VjZXNzbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcyk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5pbnNlcmluZG8pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9lZGl0YXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5zYWx2YW5kbyk7XHJcbiAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28odHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZFxyXG4gICAgICAgICAgICAuZWRpdGFyKClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdGlyRXZlbnRvQ2xpY2soRUV2ZW50b0NsaWNrLmFmdGVyQ2xpY2tTYWx2YXIpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZShcclxuICAgICAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnUmVnaXN0cm8gZWRpdGFkbyBjb20gc3VjZXNzbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHN1Y2Nlc3MpO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhd2VyLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UHJvZ3Jlc3NvKGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmVkaXRhbmRvKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBvYnNlcnZhclNldFN0YXR1cygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoKHRoaXMuc2Vydmljb0JpbmQgYXMgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPikuc2V0U3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuJHNldFN0YXR1cyA9IChcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Vydmljb0JpbmQgYXMgSURhdGFiYXJCaW5kU3RhdHVzU2VydmljZTxUPlxyXG4gICAgICAgICAgICApLnNldFN0YXR1cy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMuZWRpdGFuZG86XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdGFyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmluc2VyaW5kbzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnNlcmlyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLnBlc3F1aXNhbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlc3F1aXNhcigpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMubm92YVBlc3F1aXNhOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdmFQZXNxdWlzYSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIEVTdGF0dXMucmVtb3ZlbmRvOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvczpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBFU3RhdHVzLmRhZG9zQ2FycmVnYWRvcztcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKTogSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4ge1xyXG4gICAgICAgIGlmICh0aGlzLl9zZXJ2aWNvUmV2ZXJ0ZXIgPT0gbnVsbClcclxuICAgICAgICAgICAgdGhpcy5fc2Vydmljb1JldmVydGVyID0gbmV3IEljRGF0YWJhclJldmVydGVyU2VydmljZSgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fc2Vydmljb1JldmVydGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldERhZG9zQW50ZXJpb3JlcygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJldG9ybmFyU2Vydmljb1JldmVydGVyKCkuc2V0RGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgICAgICB0aGlzLnN0YXR1cyxcclxuICAgICAgICAgICAgdGhpcy5mb3JtLFxyXG4gICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZXZlcnRlcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbWl0aXJFdmVudG9DbGljayhFRXZlbnRvQ2xpY2sub25DbGlja1JldmVydGVyKTtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEgPSB0aGlzLnJldG9ybmFyU2Vydmljb1JldmVydGVyKCkucmVzdGF1cmFyRGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgICAgICB0aGlzLmZvcm0sXHJcbiAgICAgICAgKTtcclxuICAgICAgICBjb25zdCBzdGF0dXNBbnRlcmlvciA9IHRoaXMucmV0b3JuYXJTZXJ2aWNvUmV2ZXJ0ZXIoKS5zdGF0dXNBbnRlcmlvcjtcclxuXHJcbiAgICAgICAgaWYgKHN0YXR1c0FudGVyaW9yID09IEVTdGF0dXMuZGFkb3NDYXJyZWdhZG9zKVxyXG4gICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5kZXNhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuICAgICAgICBlbHNlIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmhhYmlsaXRhckZvcm0odGhpcy5mb3JtKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoc3RhdHVzQW50ZXJpb3IpO1xyXG4gICAgICAgIHRoaXMuX2VtaXRpckV2ZW50b0NsaWNrKEVFdmVudG9DbGljay5hZnRlckNsaWNrUmV2ZXJ0ZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3Jlc2V0YXJDb250YWRvclBhZ2luYWNhbygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDA7XHJcbiAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXJQcm9wZXJ0c09icmlnYXRvcmlhcygpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlcnZpY29CaW5kID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfDiSBvYnJpZ2F0w7NyaW8gdGVyIHVtIHNlcnZpw6dvIGRlIGJpbmQgdmluY3VsYWRvLicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuZW50aWRhZGVQYWdpbmFkYSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignw4kgb2JyaWdhdMOzcmlvIHRlciB1bWEgZW50aWRhZGUgcGFnaW5hZGEgdmluY3VsYWRhLicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFN0YXR1cyhzdGF0dXM6IEVTdGF0dXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXN0YXR1cykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdHVzO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHRoaXMuc3RhdHVzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRFbnRpZGFkZSgpOiBUIHtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSBhcyBUO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3VibWV0ZXJGb3JtdWxhcmlvT25FbnRlcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuc2Vydmljb0JpbmQub25DbGlja0VudGVyKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5vbkNsaWNrRW50ZXIuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLm5vdmFQZXNxdWlzYSAmJiB0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucGVzcXVpc2FyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wZXNxdWlzYXJQb3NpY2FvU2VsZWNpb25hZGEoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY29CaW5kLnBlc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYSkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLnNlcnZpY29CaW5kLnBlc3F1aXNhclBvc2ljYW9TZWxlY2lvbmFkYS5zdWJzY3JpYmUoKGVudGlkYWRlUGFnaW5hZGEpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc3RhdHVzID09PSBFU3RhdHVzLm5vdmFQZXNxdWlzYSAmJiB0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYSA9IGVudGlkYWRlUGFnaW5hZGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9wZXNxdWlzYXJTZWxlY2lvbmFkbygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcGVzcXVpc2FyU2VsZWNpb25hZG8oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX3NldERhZG9zQW50ZXJpb3JlcygpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMucGVzcXVpc2FuZG8pO1xyXG4gICAgICAgIHRoaXMuX3BhZ2luYXIoJ2N1c3RvbWl6YWRvJyk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja0luc2VyaXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5fcmVzZXRhckNvbnRhZG9yUGFnaW5hY2FvKCk7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCh7IGVtaXRFdmVudDogZmFsc2UsIG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmluc2VyaW5kbyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2xpY2tFZGl0YXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fc2V0RGFkb3NBbnRlcmlvcmVzKCk7XHJcbiAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuaGFiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLmVkaXRhbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja0Nsb25hcigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9zZXREYWRvc0FudGVyaW9yZXMoKTtcclxuICAgICAgICB0aGlzLl9yZXNldGFyQ29udGFkb3JQYWdpbmFjYW8oKTtcclxuICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5oYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgdGhpcy5mb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuICAgICAgICB0aGlzLmRyYXdlci5jbG9zZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMuaW5zZXJpbmRvKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jbGlja1JlbW92ZXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5yZW1vdmVuZG8pO1xyXG4gICAgICAgIHRoaXMuX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgdGhpcy5kcmF3ZXIuY2xvc2UoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9lbWl0aXJFdmVudG9DbGljayhldmVudG86IEVFdmVudG9DbGljayk6IHZvaWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhYmFyU2VydmljZS5lbWl0aXJFdmVudG9DbGljazxUPihcclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZCBhcyBJRGF0YWJhckJpbmRPbkNsaWNrU2VydmljZTxUPixcclxuICAgICAgICAgICAgZXZlbnRvLFxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYWNhb0Nsb3NlRGlhbG9nQ29uZmlybWFjYW8oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLmNsb3NlRGlhbG9nKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2V4aWJpckRpYWxvZ0NvbmZpcm1hY2FvKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvTWVuc2FnZW0gPSAnUmVtb3ZlbmRvIHJlZ2lzdHJvLi4uJztcclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb09rID0gKCkgPT5cclxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5yZW1vdmVyKCkuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5jbG9zZURpYWxvZygpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm92YVBlc3F1aXNhKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nLmVtUHJvZ3Jlc3NvID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc25hY2tCYXJTZXJ2aWNlLmFicmlyU25hY2tCYXJTdWNlc3NvKCdSZW1vdmlkbyBjb20gc3VjZXNzbyEnKTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiB0aGlzLl9hY2FvQ2xvc2VEaWFsb2dDb25maXJtYWNhbygpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvQ2FuY2VsYXIgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjYW9DbG9zZURpYWxvZ0NvbmZpcm1hY2FvKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy5fZGlhbG9nLm9wZW5EaWFsb2coXHJcbiAgICAgICAgICAgICdBdGVuw6fDo28hJyxcclxuICAgICAgICAgICAgJ1ZvY8OqIHJlYWxtZW50ZSBkZXNlamEgZXhjbHVpciBlc3RlIHJlZ2lzdHJvPycsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9leGliaXJEaWFsb2dDb25maXJtYWNhb1JldmVydGVyKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2RpYWxvZy5hY2FvT2sgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JldmVydGVyKCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZy5lbVByb2dyZXNzbyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cuYWNhb0NhbmNlbGFyID0gKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9kaWFsb2cuY2xvc2VEaWFsb2coKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB0aGlzLl9kaWFsb2cub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAnQXMgYWx0ZXJhw6fDtWVzIHJlYWxpemFkYXMgc2Vyw6NvIHBlcmRpZGFzLiBEZXNlamEgY29udGludWFyPycsXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9wYWdpbmFyKGFjYW8/OiBBQ0FPX1BBR0lOQUNBTyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMucGVzcXVpc2FuZG8pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlID0gW10uY29uY2F0KHRoaXMuX2dldEVudGlkYWRlKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgcG9zaWNhb0FudGVyaW9yID0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW87XHJcblxyXG4gICAgICAgIHN3aXRjaCAoYWNhbykge1xyXG4gICAgICAgICAgICBjYXNlICdwcmltZWlybyc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IDE7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAndWx0aW1vJzpcclxuICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ3Byb3hpbW8nOlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8rKztcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdhbnRlcmlvcic6XHJcbiAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhby0tO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ2N1c3RvbWl6YWRvJzpcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8gPSAwO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldFByb2dyZXNzbyh0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZXJ2aWNvQmluZC5saXN0YXJQYWdpbmFjYW8odGhpcy5lbnRpZGFkZVBhZ2luYWRhKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgIChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHN1Y2Nlc3MgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ0Vycm8ub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ0F0ZW7Dp8OjbyEnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAnTmVuaHVtIHJlZ2lzdHJvIGZvaSBlbmNvbnRyYWRvLicsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXR1cyhFU3RhdHVzLm5vdmFQZXNxdWlzYSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzLmVudGlkYWRlID09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhYmFyU2VydmljZS5yZXNldEZvcm0odGhpcy5mb3JtLCB0aGlzLmVudGlkYWRlUGFnaW5hZGEpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhID0gc3VjY2VzcztcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbnRpZGFkZVBhZ2luYWRhLnRvdGFsID0gc3VjY2Vzcy50b3RhbDtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVudGlkYWRlUGFnaW5hZGEucG9zaWNhbyA9IHN1Y2Nlc3MucG9zaWNhbztcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShzdWNjZXNzLmVudGlkYWRlWzBdKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFByb2dyZXNzbyhmYWxzZSk7XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZGF0YWJhclNlcnZpY2UuZGVzYWJpbGl0YXJGb3JtKHRoaXMuZm9ybSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIChlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT09IDQyMikge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdHVzKEVTdGF0dXMubm92YVBlc3F1aXNhKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0dXMoRVN0YXR1cy5kYWRvc0NhcnJlZ2Fkb3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvID0gcG9zaWNhb0FudGVyaW9yO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2RhdGFiYXJTZXJ2aWNlLmRlc2FiaWxpdGFyRm9ybSh0aGlzLmZvcm0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRQcm9ncmVzc28oZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignZXJybyBwYWdpbmHDp8OjbycsIGVycm9yKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0UHJvZ3Jlc3NvKHByb2dyZXNzbzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZW1Qcm9ncmVzc28gPSB0aGlzLl9kYXRhYmFyU2VydmljZS5kZWZpbmlyUHJvZ3Jlc3NvKHRoaXMuZm9ybSwgcHJvZ3Jlc3NvKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -3,9 +3,6 @@ export class IcDatabarReverterService {
3
3
  get statusAnterior() {
4
4
  return this._statusAnterior;
5
5
  }
6
- get dadosAnterioresFormulario() {
7
- return this._dadosAnterioresFormulario;
8
- }
9
6
  setDadosAnteriores(status, formularo, entidadePaginada) {
10
7
  this._entidadePaginadaAnterior = {
11
8
  entidade: entidadePaginada.entidade,
@@ -24,4 +21,4 @@ export class IcDatabarReverterService {
24
21
  IcDatabarReverterService.decorators = [
25
22
  { type: Injectable }
26
23
  ];
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWMtZGF0YWJhci1yZXZlcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2JyZW5lL09uZURyaXZlL0RvY3VtZW50b3MvR2l0SHViL2JpYmxpb3RlY2EtYW5ndWxhci9wcm9qZWN0cy9pYy1kYXRhYmFyLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvaWMtZGF0YWJhci1yZXZlcnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUtqQyxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUkseUJBQXlCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDO0lBQzNDLENBQUM7SUFFTSxrQkFBa0IsQ0FDckIsTUFBZSxFQUNmLFNBQW9CLEVBQ3BCLGdCQUEwQztRQUUxQyxJQUFJLENBQUMseUJBQXlCLEdBQUc7WUFDN0IsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLE9BQU87WUFDakMsVUFBVSxFQUFFLGdCQUFnQixDQUFDLFVBQVU7WUFDdkMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLEtBQUs7U0FDSixDQUFDO1FBRTlCLElBQUksQ0FBQywwQkFBMEIsR0FBRyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7SUFDbEMsQ0FBQztJQUVNLHdCQUF3QixDQUFDLFVBQXFCO1FBQ2pELFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDMUMsQ0FBQzs7O1lBakNKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlIH0gZnJvbSAnLi4vY29udHJhdG8vSURhdGFCYXJSZXZlcnRlclNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJRGF0YUVudGlkYWRlUGFnaW5hZGEgfSBmcm9tICcuLi9jb250cmF0by9JRGF0YUVudGlkYWRlUGFnaW5hZGEnO1xyXG5pbXBvcnQgeyBFU3RhdHVzIH0gZnJvbSAnLi4vZW51bS9lc3RhdHVzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEljRGF0YWJhclJldmVydGVyU2VydmljZTxUPiBpbXBsZW1lbnRzIElEYXRhQmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+IHtcclxuICAgIHByaXZhdGUgX3N0YXR1c0FudGVyaW9yOiBFU3RhdHVzO1xyXG4gICAgcHJpdmF0ZSBfZGFkb3NBbnRlcmlvcmVzRm9ybXVsYXJpbzogVDtcclxuICAgIHByaXZhdGUgX2VudGlkYWRlUGFnaW5hZGFBbnRlcmlvcjogSURhdGFFbnRpZGFkZVBhZ2luYWRhPFQ+O1xyXG5cclxuICAgIGdldCBzdGF0dXNBbnRlcmlvcigpOiBFU3RhdHVzIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzQW50ZXJpb3I7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGRhZG9zQW50ZXJpb3Jlc0Zvcm11bGFyaW8oKTogVCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhZG9zQW50ZXJpb3Jlc0Zvcm11bGFyaW87XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldERhZG9zQW50ZXJpb3JlcyhcclxuICAgICAgICBzdGF0dXM6IEVTdGF0dXMsXHJcbiAgICAgICAgZm9ybXVsYXJvOiBGb3JtR3JvdXAsXHJcbiAgICAgICAgZW50aWRhZGVQYWdpbmFkYTogSURhdGFFbnRpZGFkZVBhZ2luYWRhPFQ+LFxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZW50aWRhZGVQYWdpbmFkYUFudGVyaW9yID0ge1xyXG4gICAgICAgICAgICBlbnRpZGFkZTogZW50aWRhZGVQYWdpbmFkYS5lbnRpZGFkZSxcclxuICAgICAgICAgICAgcG9zaWNhbzogZW50aWRhZGVQYWdpbmFkYS5wb3NpY2FvLFxyXG4gICAgICAgICAgICBxdWFudGlkYWRlOiBlbnRpZGFkZVBhZ2luYWRhLnF1YW50aWRhZGUsXHJcbiAgICAgICAgICAgIHRvdGFsOiBlbnRpZGFkZVBhZ2luYWRhLnRvdGFsLFxyXG4gICAgICAgIH0gYXMgSURhdGFFbnRpZGFkZVBhZ2luYWRhPFQ+O1xyXG5cclxuICAgICAgICB0aGlzLl9kYWRvc0FudGVyaW9yZXNGb3JtdWxhcmlvID0gZm9ybXVsYXJvLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5fc3RhdHVzQW50ZXJpb3IgPSBzdGF0dXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlc3RhdXJhckRhZG9zQW50ZXJpb3Jlcyhmb3JtdWxhcmlvOiBGb3JtR3JvdXApOiBJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD4ge1xyXG4gICAgICAgIGZvcm11bGFyaW8ucGF0Y2hWYWx1ZSh0aGlzLl9kYWRvc0FudGVyaW9yZXNGb3JtdWxhcmlvKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZW50aWRhZGVQYWdpbmFkYUFudGVyaW9yO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWMtZGF0YWJhci1yZXZlcnRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL2JyZW5lL09uZURyaXZlL0RvY3VtZW50b3MvR2l0SHViL2JpYmxpb3RlY2EtYW5ndWxhci9wcm9qZWN0cy9pYy1kYXRhYmFyLWxpYi9zcmMvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvaWMtZGF0YWJhci1yZXZlcnRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsTUFBTSxPQUFPLHdCQUF3QjtJQUtqQyxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVNLGtCQUFrQixDQUNyQixNQUFlLEVBQ2YsU0FBb0IsRUFDcEIsZ0JBQTBDO1FBRTFDLElBQUksQ0FBQyx5QkFBeUIsR0FBRztZQUM3QixRQUFRLEVBQUUsZ0JBQWdCLENBQUMsUUFBUTtZQUNuQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsT0FBTztZQUNqQyxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsVUFBVTtZQUN2QyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsS0FBSztTQUNKLENBQUM7UUFFOUIsSUFBSSxDQUFDLDBCQUEwQixHQUFHLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRU0sd0JBQXdCLENBQUMsVUFBcUI7UUFDakQsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztJQUMxQyxDQUFDOzs7WUE3QkosVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgSURhdGFCYXJSZXZlcnRlclNlcnZpY2UgfSBmcm9tICcuLi9jb250cmF0by9JRGF0YUJhclJldmVydGVyU2VydmljZSc7XHJcbmltcG9ydCB7IElEYXRhRW50aWRhZGVQYWdpbmFkYSB9IGZyb20gJy4uL2NvbnRyYXRvL0lEYXRhRW50aWRhZGVQYWdpbmFkYSc7XHJcbmltcG9ydCB7IEVTdGF0dXMgfSBmcm9tICcuLi9lbnVtL2VzdGF0dXMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSWNEYXRhYmFyUmV2ZXJ0ZXJTZXJ2aWNlPFQ+IGltcGxlbWVudHMgSURhdGFCYXJSZXZlcnRlclNlcnZpY2U8VD4ge1xyXG4gICAgcHJpdmF0ZSBfc3RhdHVzQW50ZXJpb3I6IEVTdGF0dXM7XHJcbiAgICBwcml2YXRlIF9kYWRvc0FudGVyaW9yZXNGb3JtdWxhcmlvOiBUO1xyXG4gICAgcHJpdmF0ZSBfZW50aWRhZGVQYWdpbmFkYUFudGVyaW9yOiBJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD47XHJcblxyXG4gICAgZ2V0IHN0YXR1c0FudGVyaW9yKCk6IEVTdGF0dXMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXNBbnRlcmlvcjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0RGFkb3NBbnRlcmlvcmVzKFxyXG4gICAgICAgIHN0YXR1czogRVN0YXR1cyxcclxuICAgICAgICBmb3JtdWxhcm86IEZvcm1Hcm91cCxcclxuICAgICAgICBlbnRpZGFkZVBhZ2luYWRhOiBJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD4sXHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9lbnRpZGFkZVBhZ2luYWRhQW50ZXJpb3IgPSB7XHJcbiAgICAgICAgICAgIGVudGlkYWRlOiBlbnRpZGFkZVBhZ2luYWRhLmVudGlkYWRlLFxyXG4gICAgICAgICAgICBwb3NpY2FvOiBlbnRpZGFkZVBhZ2luYWRhLnBvc2ljYW8sXHJcbiAgICAgICAgICAgIHF1YW50aWRhZGU6IGVudGlkYWRlUGFnaW5hZGEucXVhbnRpZGFkZSxcclxuICAgICAgICAgICAgdG90YWw6IGVudGlkYWRlUGFnaW5hZGEudG90YWwsXHJcbiAgICAgICAgfSBhcyBJRGF0YUVudGlkYWRlUGFnaW5hZGE8VD47XHJcblxyXG4gICAgICAgIHRoaXMuX2RhZG9zQW50ZXJpb3Jlc0Zvcm11bGFyaW8gPSBmb3JtdWxhcm8uZ2V0UmF3VmFsdWUoKTtcclxuICAgICAgICB0aGlzLl9zdGF0dXNBbnRlcmlvciA9IHN0YXR1cztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVzdGF1cmFyRGFkb3NBbnRlcmlvcmVzKGZvcm11bGFyaW86IEZvcm1Hcm91cCk6IElEYXRhRW50aWRhZGVQYWdpbmFkYTxUPiB7XHJcbiAgICAgICAgZm9ybXVsYXJpby5wYXRjaFZhbHVlKHRoaXMuX2RhZG9zQW50ZXJpb3Jlc0Zvcm11bGFyaW8pO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9lbnRpZGFkZVBhZ2luYWRhQW50ZXJpb3I7XHJcbiAgICB9XHJcbn1cclxuIl19