info-library 2.10.69 → 2.10.70

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/info-library/src/global-config.ts","../../../projects/info-library/src/model/app-config.model.ts","../../../projects/info-library/src/model/data-access.model.ts","../../../projects/info-library/src/model/dialog-result.model.ts","../../../projects/info-library/src/model/dialog.model.ts","../../../projects/info-library/src/enum/page-action.enum.ts","../../../projects/info-library/src/enum/modal-action.enum.ts","../../../projects/info-library/src/model/form-prop.model.ts","../../../projects/info-library/src/model/grid-button.model.ts","../../../projects/info-library/src/model/method-grid-button.model.ts","../../../projects/info-library/src/model/last-search.model.ts","../../../projects/info-library/src/model/login.model.ts","../../../projects/info-library/src/model/pagebar-buttons.model.ts","../../../projects/info-library/src/model/permission.model.ts","../../../projects/info-library/src/model/platform.model.ts","../../../projects/info-library/src/model/session.model.ts","../../../projects/info-library/src/model/notification.model.ts","../../../projects/info-library/src/enum/dialog-buttons.enum.ts","../../../projects/info-library/src/service/translate.service.ts","../../../projects/info-library/src/pipe/translate.pipe.ts","../../../projects/info-library/src/pipe/mask.pipe.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/info-library/src/service/data.service.ts","../../../projects/info-library/src/service/authentication.service.ts","../../../projects/info-library/src/service/theme.service.ts","../../../projects/info-library/src/service/configuration.service.ts","../../../projects/info-library/src/controls/alert/alert.component.ts","../../../projects/info-library/src/controls/autocomplete/autocomplete.component.ts","../../../projects/info-library/src/controls/big-checkbox/big-checkbox.component.ts","../../../projects/info-library/src/controls/card/card.component.ts","../../../projects/info-library/src/controls/card-menu/card-menu.component.ts","../../../projects/info-library/src/controls/checkbox/checkbox.component.ts","../../../projects/info-library/src/controls/date/date.component.ts","../../../projects/info-library/src/controls/date-month/date-month.component.ts","../../../projects/info-library/src/layouts/dialog/dialog.component.ts","../../../projects/info-library/src/controls/grid/grid.component.ts","../../../projects/info-library/src/controls/input/input.component.ts","../../../projects/info-library/src/controls/input-list/input-list.component.ts","../../../projects/info-library/src/controls/list-checkbox/list-checkbox.component.ts","../../../projects/info-library/src/controls/message/message.component.ts","../../../projects/info-library/src/controls/paginator/paginator.component.ts","../../../projects/info-library/src/controls/select/select.component.ts","../../../projects/info-library/src/controls/timeline/timeline.component.ts","../../../projects/info-library/src/controls/editor/editor.component.ts","../../../projects/info-library/src/controls/multi-select/multi-select.component.ts","../../../projects/info-library/src/controls/chips/chips.component.ts","../../../projects/info-library/src/layouts/main/main.component.ts","../../../projects/info-library/src/layouts/sidebar/sidebar.component.ts","../../../projects/info-library/src/layouts/topbar/topbar.component.ts","../../../projects/info-library/src/layouts/topmenu/topmenu.component.ts","../../../projects/info-library/src/layouts/loading/loading.component.ts","../../../projects/info-library/src/layouts/modal/modal.component.ts","../../../projects/info-library/src/layouts/pagebar/pagebar.component.ts","../../../projects/info-library/src/directives/mask.directive.ts","../../../projects/info-library/src/directives/unmask.directive.ts","../../../projects/info-library/src/info-library.module.ts"],"names":["DICTIONARIES_CONFIG","InjectionToken","APICONTROLLER_CONFIG","this","production","webapiUrl","processingUrl","theme","dictionary","ux","style","topMenu","enabledPrime","data","success","messages","name","description","total","parentId","referenceGuid","external","Name","Description","Total","Success","Messages","ParentId","ReferenceGuid","External","Data","Array","button","yesOrNo","message","width","labelOk","labelCancel","labelAux","colorOk","colorCancel","colorAux","processingMode","disableButtonCancel","InfoPageAction","None","View","New","Edit","Delete","Search","InfoModalAction","Ok","Yes","No","Cancel","Save","Special","Aux","InfoFormPropModel","modalAction","modalComponent","api","prototype","set","pageAction","readonly","title","label","passId","icon","navigateTo","widthModalComponent","method","disabledField","confirm","showOnlyClass","url","model","index","enabledSearch","modal","modalwidth","InfoPlatformModel","TokenKey","SessionKey","ConfigIsNull","Themes","Config","InfoAppConfigModel","UnificarTopbar","MenuMin","ModoPrime","PaginaLimpa","Menu","ShortcutApi","setConfig","config","Permissoes","Empresas","Parametros","Count","Itens","InfoDialogButtons","InfoTranslateService","_translations","_plataforma","_key","lang","localStorage","getItem","_currentLang","Object","defineProperty","setItem","translate","key","translation","currentLang","Values","getCalendar","Calendar","instant","Injectable","args","providedIn","Inject","InfoTranslatePipe","_translate","transform","value","Pipe","pure","InfoMaskPipe","mask","from","map","c","conformToMask","guide","conformedValue","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","create","InfoDataService","_apiController","_http","_router","getToken","token","navigateByUrl","getHeaderToken","HttpHeaders","getAPIUrl","controller","toString","replace","toLowerCase","getNoToken","param","_this","get","pipe","r","InfoDataAccessModel","catchError","errorHandling","headers","getById","id","postNoToken","post","delete","undefined","alert","deleteByModel","httpOptions","request","formData","FormData","append","redirect","status","document","location","href","of","HttpClient","Router","InfoAuthenticationService","_sessao","_dataService","_modal","_keySessao","_sessionActive","getSessao","getPlatform","canActivate","activatedRouteSnapshot","routerStateSnapshot","isLogged","logout","setTimeout","refreshSessionTime","definePaginaAtiva","getPermission","hasPermission","indexOf","paramMap","error","switchMap","res","permissao","params","RegExp","p","toPromise","_a","clearInterval","_sessionTimeInterval","TempoInatividade","tempoSessao","Date","valueOf","setInterval","tempoRestante","Math","round","parseInt","isNaN","showMessage","open","RefreshSessionTimeModalComponent","disableClose","afterClosed","subscribe","login","usuario","senha","reCaptchaToken","codigo2FA","removeSessao","Usuario","Senha","ReCaptchaToken","Codigo2FA","Token","InfoLoginModel","trocarEmpresa","empresaId","EmpresaId","clonar","reload","getPermissions","logAtividade","setTrocaSenha","setRecuperarSenha","setResetarSenha","getLoginResources","keyFunction","urlGenerica","getUrlGenerica","some","s","URL","ChaveFuncionalidade","Acesso","validaSessao","ret","Observable","observer","complete","forEach","item","filter","JSON","stringify","keys","includes","aux","substring","split","tituloMenu","PaginaAtiva","Icone","Titulo","m","Title","Icon","retorno","urlParts","i","parseFloat","isGuid","error_description","match","InfoSessionModel","MatDialog","_ref","time","ngOnInit","interval","ativo","close","Component","template","MatDialogRef","InfoThemeService","_overlay","_plataform","_session","setTheme","find","unificarTopbar","getContainerElement","classList","themeClassesToRemove","remove","add","removeAttribute","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","cssFile","createElement","type","rel","head","appendChild","cssClient","InfoAlertComponent","onClose","selector","Input","InfoAutoCompleteComponent","_dataAcess","control","FormControl","placeholder","required","selectfirst","disablednoregisters","getdataonchange","getdataonchangetime","maxlist","startwith","minchar","onselecteditem","EventEmitter","selectedValue","initialized","_loading","_params","_disabled","_data","setDisabledState","loading","getData","a","disable","enable","writeValue","Id","floor","random","valueChanges","debounceTime","distinctUntilChanged","options","filterValue","Nome","option","slice","parameters","charAt","toUpperCase","reduce","b","assign","onBlur","trim","first","onFocus","setValue","displayFn","indexSmall","obj","onChange","emit","registerOnChange","fn","registerOnTouched","onTouched","isDisabled","disabled","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","Output","InfoBigCheckboxComponent","preload","enabledcheckall","labelselectall","labelsearch","max","submessage","_paramsmodel","paramsmodel","loadByParamModel","load","paramModel","getModel","getFilteredData","d","existData","Descricao","Selecionado","selectAll","removeItems","splice","InfoCardComponent","onclick","onCardClick","InfoMenuCardComponent","menu","cols","loadinit","menuRows","col","colClass","permission","numberItensRow","ceil","InfoCheckboxComponent","min","checkboxValue","true","false","onChangeValue","customType","Number","modelValue","PT_BR_DATE_FORMATS","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","InfoDateComponent","minDate","maxDate","datefilter","dateclass","ngAfterViewInit","placeholderChar","createAutoCorrectedDatePipe","modelClean","keepCharPositions","dateMask","createTextMaskInputElement","inputElement","input","nativeElement","onInputDate","update","dateValue","moment","isBefore","isAfter","setMinutes","getMinutes","getTimezoneOffset","getFullYear","getMonth","getDate","onKeyPress","keyCode","MAT_DATE_LOCALE","useValue","DateAdapter","useClass","MomentDateAdapter","deps","MAT_DATE_FORMATS","MAT_MOMENT_DATE_ADAPTER_OPTIONS","useUtc","ViewChild","static","PT_BR_DATE_MONTH_FORMATS","InfoDateMonthComponent","changeonlyonmonth","chosenYearHandler","year","chosenMonthHandler","datepicker","month","InfoDialogModal","dialog","InfoDialogModel","InfoDialogComponent","YesOrNo","Confirm","Custom","Processing","ref","onclickCancel","InfoDialogResult","onclickOk","onclickAux","decorators","MAT_DIALOG_DATA","InfoGridComponent","_dialog","_platform","_prop","_dataAccessService","_activatedRoute","_authenticationService","_changeDetectorRef","_lastSearch","_renderer","_element","pagetitle","prefixtitle","pagebarbuttons","fullarea","form","parent","apidownload","methoddownload","backurl","newurl","newlabel","editurl","viewurl","templateurl","paged","size","autorefresh","enablednew","enablededit","enableddelete","enabledview","enabledcancelsearch","enableddetail","enabledclassicons","enabledclickaccess","enabledclickevent","searchopened","searchonlyonebutton","disablesearchlast","statictitle","disabledcol","accessicon","loadoninit","searchmodel","onbeforesearch","onloadcomplete","onclosemodal","onnew","onedit","onview","ondelete","customdelete","dynamiccols","buttons","searchbuttons","showmessageerror","defaultnewobject","resultTitle","searchModelReset","showPagebar","hasPermissionNew","hasPermissionEdit","hasPermissionDelete","tableHeight","pagebarTitle","icons","colunasItens","colunasHeaders","colunasType","colunasWidth","colunasTranslate","currentUrl","parentIdUrlChange","parentIdUrlValue","_cols","setColumns","snapshot","addClass","setPagebarTitle","formModel","formSearch","toArray","addControl","paginator","hideLoad","registro","column","header","dados","parts","headerInfo","navigate","openCustomModal","openModal","getSearch","getPaged","getAll","getByParentId","getDataReturn","Index","Size","dataInicial","dataFinal","dataInicio","dataFim","refreshPaginator","parentIdUrl","refresh","fillIcons","changePage","cancelSearch","search","detail","access","edit","view","observers","icone","Tooltip","Principal","index_1","element","element_1","info","back","keydownEvents","detectChanges","download","arquivoId","binaryString","window","atob","Conteudo","binaryLen","bytes","Uint8Array","ascii","charCodeAt","blob","Blob","navigator","msSaveOrOpenBlob","fileURL","createObjectURL","elementA","click","removeChild","eventButton","ActivatedRoute","ChangeDetectorRef","InfoLastSearchModel","Renderer2","ElementRef","ContentChildren","NgModel","NgForm","InfoInputComponent","rows","tabindex","iconPrefix","iconSuffix","onblur","maskOptions","align","allowNegative","decimal","precision","prefix","suffix","thousands","customMask","passwordMode","methodIsmask","toLocaleLowerCase","ismask","startsWith","InfoInputListComponent","percent","hiddenDe","novoValor","De","Ate","Valor","Excluir","ngOnChanges","ordernar","remover","findIndex","sort","InfoListCheckboxComponent","filterlabel","selectedlabel","onelist","filterList","filterSelected","disabledValue","valor","selecionados","todos","marcarFiltrados","marcar","ids","marcarTodos","InfoMessageComponent","color","outline","event","preventDefault","InfoPaginatorComponent","show","change","_total","indexActive","numberPages","pages","totalDescription","x","setDescription","goto","previous","currentInit","currentEnd","InfoSelectComponent","_dataAcessService","blank","blankItem","notranslate","translatValue","InfoTimelineComponent","showdate","alignLeft","alignCenter","alignRight","alignBetween","host","[class.timeline]","[class.show-date]","HostBinding","InfoEditorComponent","_sanitizer","enabledhtmlmode","sanitize","focused","editorConfig","editable","spellcheck","height","minHeight","maxHeight","minWidth","enableToolbar","showToolbar","defaultParagraphSeparator","toolbarPosition","fonts","class","getGuid","querySelector","addEventListener","editor","editorToolbar","saveSelection","SecurityContext","HTML","DomSanitizer","InfoMultiSelectComponent","selectedValues","InfoChipsComponent","separatorKeysCodes","ENTER","values","modelValues","InfoMainComponent","opened","version","_themes","languages","profileurl","loginurl","menuapi","menumethod","activemenubyurl","loggeduserapi","loggedusermethod","notificationapi","notificationgetmethod","notificationpostmethod","notificationverifymethod","notificationverifyenabled","fastsearchform","fastsearchformwidth","fastsearchtitle","setthemeonchangecompany","shortcutapi","ongetnotification","onverifynotification","themes","getLoggedUser","onChangeTopBarState","onChangeSideBarState","topbar","openSidebar","UsuarioId","Login","Email","Perfil","Empresa","UltimoAcesso","Master","Clone","DataMovimentacao","OcultarNomeCliente","MFA","Versao","Chave","onGetNotificationsTopBar","onVerifyNotificationsTopBar","InfoSidebarComponent","_authentication","onchangestate","openSubmenu","menuAtivo","monitorarUrl","toggle","menuItem","Enabled","Active","resetLastSearch","ativarMenu","events","NavigationStart","itemMenu","Routing","toggleSubmenu","changeSidebar","toggleSidebar","InfoTopbarComponent","_translateService","modalRef","prodution","notifications","InfoNotificationModel","empresa","tema","idioma","notificacao","calendario","getNotifications","setCompany","company","setAttribute","removeItem","err","setLanguage","language","toggleMode","openFastSearch","achtiveMenu","verifyNotifications","VerifyCount","setNotificationStatus","read","Leitura","Exclusao","InfoTopMenuComponent","enabled","mode","InfoModalComponent","prop","modaltitle","showcloseicon","loadingblock","labelclose","labelcancel","labelsubmit","onsave","onsuccess","updateSize","ctrlKey","valid","submit","InfoPagebarComponent","margintop","transparent","atalhoId","podeCriarAtalho","exibirAcessos","GuardsCheckStart","NavigationEnd","getAtalho","_pageTitle","goBack","toggleAtalho","openModalAtalho","Url","AtalhoModalComponent","InfoMaskDirective","renderer","_onTouched","_onChange","changes","setupMask","maskInputElement","normalizedValue","setProperty","onInput","lastValue","tagName","getElementsByTagName","maskType","emailMask","maskConfig","Directive","(input)","(blur)","InfoUnmaskDirective","elementRef","inputChange","newValue","NgControl","HostListener","NgModule","imports","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","MatCardModule","MatIconModule","MatInputModule","MatFormFieldModule","MatListModule","MatSelectModule","MatCheckboxModule","MatRadioModule","MatButtonModule","MatDatepickerModule","MatMomentDateModule","MatDialogModule","MatProgressBarModule","MatAutocompleteModule","MatTooltipModule","RouterModule","CurrencyMaskModule","AngularEditorModule","MatChipsModule","declarations","InfoLoadingComponent","exports","schemas","CUSTOM_ELEMENTS_SCHEMA","entryComponents"],"mappings":"kvGAEaA,EAAsB,IAAIC,EAAAA,eAAoB,uBAC9CC,EAAuB,IAAID,EAAAA,eAAoB,0BCH5D,WACIE,KAAAC,YAAsB,EACtBD,KAAAE,UAAoB,GACpBF,KAAAG,cAAwB,GACxBH,KAAAI,MAAgB,GAChBJ,KAAAK,WAAqB,GACrBL,KAAAM,GAAa,EACbN,KAAAO,MAAgB,GAChBP,KAAAQ,SAAmB,EACnBR,KAAAS,cAAwB,SCGxB,SAAYC,EAAWC,EAAmBC,GAT1CZ,KAAAY,SAAqB,GACrBZ,KAAAa,KAAe,KACfb,KAAAc,YAAsB,KAEtBd,KAAAe,MAAgB,EAChBf,KAAAgB,SAAmB,KACnBhB,KAAAiB,cAAwB,KACxBjB,KAAAkB,UAAW,EAIK,MAARR,IACiB,MAAbA,EAAKS,MAA6B,IAAbT,EAAKS,OAC1BnB,KAAKa,KAAOH,EAAKS,MAEG,MAApBT,EAAKU,aAA2C,IAApBV,EAAKU,cACjCpB,KAAKc,YAAcJ,EAAKU,aAEV,MAAdV,EAAKW,QACLrB,KAAKe,MAAQL,EAAKW,OAEF,MAAhBX,EAAKY,UACLX,EAAUD,EAAKY,SAEfZ,EAAKa,WACLX,EAAWF,EAAKa,UAEC,MAAjBb,EAAKc,WACLxB,KAAKgB,SAAWN,EAAKc,UAEC,MAAtBd,EAAKe,gBACLzB,KAAKiB,cAAgBP,EAAKe,eAET,MAAjBf,EAAKgB,WACL1B,KAAKkB,SAAWR,EAAKgB,UAEzB1B,KAAKU,KAAOA,EAAKiB,MAGrB3B,KAAKW,QAAqB,MAAXA,GAAyBA,EACxCX,KAAKY,SAAWA,EAEK,MAAjBZ,KAAKY,UAAoBZ,KAAKY,UAAY,KAC1CZ,KAAKY,SAAW,IAAIgB,cCvC5B,SAAYC,EAA2BnB,GAJvCV,KAAAU,KAAa,KAKTV,KAAK6B,OAASA,EACd7B,KAAKU,KAAOA,SCTpB,WAEIV,KAAA8B,SAAmB,EAEnB9B,KAAA+B,QAAkB,GAClB/B,KAAAgC,MAAgB,IAEhBhC,KAAAiC,QAAkB,KAClBjC,KAAAkC,YAAsB,WACtBlC,KAAAmC,SAAmB,KAEnBnC,KAAAoC,QAAkB,GAClBpC,KAAAqC,YAAsB,GACtBrC,KAAAsC,SAAmB,GAEnBtC,KAAAuC,gBAA0B,EAE1BvC,KAAAwC,qBAA+B,OCjBvBC,EAAc,CACtBC,MAAI,EAEJC,KAAI,EACJC,IAAG,EACHC,KAAI,EACJC,OAAM,EACNC,OAAM,mHCPEC,EAAe,CACvBN,KAAI,EACJO,GAAE,EACFC,IAAG,EACHC,GAAE,EACFC,OAAM,EACNC,KAAI,EACJC,QAAO,EACPC,IAAG,0JCLP,SAAAC,IAMIxD,KAAAyD,YAA+BT,EAAgBN,KAC/C1C,KAAA0D,eAAsB,KACtB1D,KAAA2D,IAAW,YAEXH,EAAAI,UAAAC,IAAA,SAAIC,EAA4BpD,GAM5B,OAJAV,KAAKU,KAAOA,EACZV,KAAK+D,SAAWD,GAAcrB,EAAeE,KAC7C3C,KAAK8D,WAAaA,EAEVA,GAEJ,KAAKrB,EAAeG,IAChB5C,KAAKgE,MAAQ,OACb,MAEJ,KAAKvB,EAAeM,OAChB/C,KAAKgE,MAAQ,YACb,MAEJ,KAAKvB,EAAeE,KAChB3C,KAAKgE,MAAQ,aACb,MAEJ,KAAKvB,EAAeI,KAChB7C,KAAKgE,MAAQ,SACb,MAEJ,KAAKvB,EAAeK,OAChB9C,KAAKgE,MAAQ,UACb,MAEJ,QACIhE,KAAKgE,MAAQ,gBCvBzB,SAAYC,EAAeC,EAAiBC,EAAcC,EAAoBV,EAAiCW,EAAoCV,EAAiBW,EAAuBC,EAA8BC,QAA3I,IAAAd,IAAAA,EAAA,WAAiC,IAAAW,IAAAA,EAAA,WAAoC,IAAAV,IAAAA,EAAA,WAAiB,IAAAW,IAAAA,EAAA,WAAuB,IAAAC,IAAAA,EAAA,WAA8B,IAAAC,IAAAA,GAAA,GAbzNxE,KAAA0D,eAAsB,KACtB1D,KAAAqE,oBAA8B,IAC9BrE,KAAA2D,IAAW,KACX3D,KAAAsE,OAAiB,KACjBtE,KAAAyE,cAAwB,KACxBzE,KAAAuE,cAAwB,KASpBvE,KAAKiE,MAAQA,EACbjE,KAAKkE,OAASA,EACdlE,KAAKmE,KAAOA,EACZnE,KAAKoE,WAAaA,EAElBpE,KAAK0D,eAAiBA,EACtB1D,KAAKqE,oBAAsBA,EAE3BrE,KAAK2D,IAAMA,EACX3D,KAAKsE,OAASA,EACdtE,KAAKuE,cAAgBA,EACrBvE,KAAKwE,QAAUA,SCzBnB,SAAYP,EAAeE,EAAcG,GAFzCtE,KAAAsE,OAAoB,KAIhBtE,KAAKiE,MAAQA,EACbjE,KAAKmE,KAAOA,EACZnE,KAAKsE,OAASA,SCVtB,WACItE,KAAA0E,IAAc,GACd1E,KAAA2E,MAAa,KACb3E,KAAA4E,MAAgB,EAChB5E,KAAA6E,eAAyB,SCEzB,SAAYlE,EAAkBC,EAAkBF,GAJhDV,KAAAW,SAAmB,EAKfX,KAAKW,QAAUA,EACfX,KAAKY,SAAWA,EAChBZ,KAAKU,KAAOA,SCChB,SAAYuD,EAAeS,EAAaP,EAAgCW,EAAmBC,QAAnD,IAAAZ,IAAAA,EAAA,sBAAgC,IAAAW,IAAAA,EAAA,WAAmB,IAAAC,IAAAA,EAAA,KAT3F/E,KAAAiE,MAAgB,GAChBjE,KAAA0E,IAAc,GACd1E,KAAAmE,KAAe,GACfnE,KAAA8E,MAAa,KACb9E,KAAA+E,WAAqB,IAMjB/E,KAAKiE,MAAQA,EACbjE,KAAK0E,IAAMA,EACX1E,KAAKmE,KAAOA,EACZnE,KAAK8E,MAAQA,EACb9E,KAAK+E,WAAaA,SCf1B,+BCEA,SAAAC,IAEIhF,KAAAiF,SAAmB,QACnBjF,KAAAkF,WAAqB,SAErBlF,KAAAmF,cAAwB,EACxBnF,KAAAoF,OAAc,GACdpF,KAAAqF,OAA6B,IAAIC,EAGjCtF,KAAAuF,gBAA0B,EAC1BvF,KAAAwF,SAAmB,EACnBxF,KAAAyF,WAAqB,EACrBzF,KAAA0F,aAAuB,EAEvB1F,KAAA2F,KAAY,GAEZ3F,KAAA4F,YAAmB,YAEZZ,EAAApB,UAAAiC,UAAA,SAAUC,GACb9F,KAAKqF,OAASS,EACd9F,KAAKmF,cAAe,eCrB5B,WAeInF,KAAA+F,WAAoC,GACpC/F,KAAAgG,SAAkB,GAClBhG,KAAAiG,WAAoB,aCnBxB,WACIjG,KAAAkG,MAAgB,EAChBlG,KAAAmG,MAAqC,WAGzC,iBCLYC,GAAiB,CACzBnD,GAAE,EACFG,OAAM,EACNF,IAAG,EACHC,GAAE,EACFI,IAAG,4GCUH,SAAA8C,EAAiDC,EAA4BC,GAA5BvG,KAAAsG,cAAAA,EAA4BtG,KAAAuG,YAAAA,EANrEvG,KAAAwG,KAAe,kBAQfC,EAAOC,aAAaC,QAAQ3G,KAAKwG,MAEjCxG,KAAK4G,aADG,MAARH,EACoB,QACCA,SAT7BI,OAAAC,eAAWT,EAAAzC,UAAA,cAAW,KAAtB,WACI,OAAO5D,KAAK4G,8CAWTP,EAAAzC,UAAAC,IAAA,SAAI4C,GACPzG,KAAK4G,aAAeH,EACpBC,aAAaK,QAAQ/G,KAAKwG,KAAMC,IAG7BJ,EAAAzC,UAAAoD,UAAA,SAAUC,OACTC,EAAcD,EAQlB,OANIjH,KAAKsG,cAActG,KAAKmH,cAAgBnH,KAAKsG,cAActG,KAAKmH,aAAaC,QAAUpH,KAAKsG,cAActG,KAAKmH,aAAaC,OAAOH,IAEzG,iBAD1BC,GAAelH,KAAKsG,cAActG,KAAKmH,aAAaC,OAAOpH,KAAKuG,YAAYlB,OAAOhF,aAAe,IAAI4G,IAAQjH,KAAKsG,cAActG,KAAKmH,aAAaC,OAAOH,MAEtJC,EAAcD,GAGfC,GAGJb,EAAAzC,UAAAyD,YAAA,WACH,GAAIrH,KAAKsG,cAActG,KAAKmH,cAAgBnH,KAAKsG,cAActG,KAAKmH,aAAaG,SAC7E,OAAOtH,KAAKsG,cAActG,KAAKmH,aAAaG,UAI7CjB,EAAAzC,UAAA2D,QAAA,SAAQN,GACX,OAAOjH,KAAKgH,UAAUC,8BA3C7BO,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,8EAUCC,EAAAA,OAAMF,KAAA,CAAC5H,YAdfmF,oJCQL,SAAA4C,EAAoBC,GAAA7H,KAAA6H,WAAAA,SAEpBD,EAAAhE,UAAAkE,UAAA,SAAUC,EAAeN,GACrB,GAAKM,EAGL,OAAa,IAATN,EACOM,EAEJ/H,KAAK6H,WAAWN,QAAQQ,8BAftCC,EAAAA,KAAIP,KAAA,CAAC,CACF5G,KAAM,YACNoH,MAAM,gDAJD5B,wBCSL,SAAA6B,YAEAA,EAAAtE,UAAAkE,UAAA,SAAUC,EAAeN,GACrB,GAAKM,EAAL,KAEII,EAAO,GAeX,OAZIA,EADQ,SAARV,EACO,CAAC,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MACrE,OAARA,EACE,CAAC,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MAC3E,OAARA,EACE,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,MAC1C,OAARA,EACE,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,MACzD,QAARA,EACE,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,MAElF7F,MAAMwG,KAAKX,GAAMY,KAAG,SAACC,GAAK,MAAK,KAALA,EAAW,KAAOA,KAEhDC,EAAAA,cAAcR,EAAOI,EAAM,CAACK,OAAO,IAAQC,2CA1BzDT,EAAAA,KAAIP,KAAA,CAAC,CACF5G,KAAM,OACNoH,MAAM,sDC+DMS,GAAUC,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIE,WAAU,SAAUC,EAASC,GAC/C,SAASC,EAAUnB,GAAS,IAAMoB,EAAKL,EAAUM,KAAKrB,IAAW,MAAOsB,GAAKJ,EAAOI,IACpF,SAASC,EAASvB,GAAS,IAAMoB,EAAKL,EAAiB,MAAEf,IAAW,MAAOsB,GAAKJ,EAAOI,IACvF,SAASF,EAAKI,GAJlB,IAAexB,EAIawB,EAAOC,KAAOR,EAAQO,EAAOxB,QAJ1CA,EAIyDwB,EAAOxB,MAJhDA,aAAiBc,EAAId,EAAQ,IAAIc,GAAE,SAAUG,GAAWA,EAAQjB,OAIT0B,KAAKP,EAAWI,GAClGH,GAAML,EAAYA,EAAUY,MAAMf,EAASC,GAAc,KAAKQ,oBAItDO,GAAYhB,EAASiB,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEhG,MAAO,EAAGiG,KAAM,WAAa,GAAW,EAAPH,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOI,KAAM,GAAIC,IAAK,IAChG,OAAOJ,EAAI,CAAEZ,KAAMiB,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BR,EAAEQ,OAAOC,UAAY,WAAa,OAAOzK,OAAUgK,EACvJ,SAASK,EAAKK,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIf,EAAG,MAAM,IAAIgB,UAAU,mCAC3B,KAAOZ,OACH,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARa,EAAG,GAASd,EAAU,OAAIc,EAAG,GAAKd,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEe,KAAKhB,GAAI,GAAKA,EAAEV,SAAWW,EAAIA,EAAEe,KAAKhB,EAAGc,EAAG,KAAKpB,KAAM,OAAOO,EAE3J,OADID,EAAI,EAAGC,IAAGa,EAAK,CAAS,EAARA,EAAG,GAAQb,EAAEhC,QACzB6C,EAAG,IACP,KAAK,EAAG,KAAK,EAAGb,EAAIa,EAAI,MACxB,KAAK,EAAc,OAAXX,EAAEhG,QAAgB,CAAE8D,MAAO6C,EAAG,GAAIpB,MAAM,GAChD,KAAK,EAAGS,EAAEhG,QAAS6F,EAAIc,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKX,EAAEG,IAAIW,MAAOd,EAAEE,KAAKY,MAAO,SACxC,QACI,KAAMhB,EAAIE,EAAEE,MAAMJ,EAAIA,EAAEiB,OAAS,GAAKjB,EAAEA,EAAEiB,OAAS,KAAkB,IAAVJ,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEX,EAAI,EAAG,SACjG,GAAc,IAAVW,EAAG,MAAcb,GAAMa,EAAG,GAAKb,EAAE,IAAMa,EAAG,GAAKb,EAAE,IAAM,CAAEE,EAAEhG,MAAQ2G,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYX,EAAEhG,MAAQ8F,EAAE,GAAI,CAAEE,EAAEhG,MAAQ8F,EAAE,GAAIA,EAAIa,EAAI,MAC7D,GAAIb,GAAKE,EAAEhG,MAAQ8F,EAAE,GAAI,CAAEE,EAAEhG,MAAQ8F,EAAE,GAAIE,EAAEG,IAAIa,KAAKL,GAAK,MACvDb,EAAE,IAAIE,EAAEG,IAAIW,MAChBd,EAAEE,KAAKY,MAAO,SAEtBH,EAAKhB,EAAKkB,KAAKnC,EAASsB,GAC1B,MAAOZ,GAAKuB,EAAK,CAAC,EAAGvB,GAAIS,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARa,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE7C,MAAO6C,EAAG,GAAKA,EAAG,QAAK,EAAQpB,MAAM,GArB9BL,CAAK,CAACuB,EAAGC,MAyBhC9D,OAAOqE,OA0GXrE,OAAOqE,yBCpM5B,SAAAC,EAAkDC,EAA6BC,EAA2BC,EAAyB/E,GAAjFvG,KAAAoL,eAAAA,EAA6BpL,KAAAqL,MAAAA,EAA2BrL,KAAAsL,QAAAA,EAAyBtL,KAAAuG,YAAAA,EAH3HvG,KAAAwG,KAAe,eAKhB2E,EAAAvH,UAAA2H,SAAA,WAGH,OAFAvL,KAAKwL,MAAQ9E,aAAaC,QAAQ3G,KAAKwG,MAErB,MAAdxG,KAAKwL,OACLxL,KAAKsL,QAAQG,cAAc,IACpB,IAEG,UAAYzL,KAAKwL,OAG5BL,EAAAvH,UAAA8H,eAAA,WACH,OAAO,IAAIC,EAAAA,aAAc9H,IAAI,gBAAiB7D,KAAKuL,aAGhDJ,EAAAvH,UAAAgI,UAAA,SAAUC,OACTlI,EAAM,GAOhB,OAJCA,EADyB,iBAAtB,EACI3D,KAAKoL,eAAeS,GAAYC,WAET,MAAdD,EAAqB,GAAKA,EAAWC,WAE/C9L,KAAKuG,YAAYlB,OAAOnF,WAAayD,EAAIoI,QAAQ,IAAK,KAAO,KAAKC,eAMhEb,EAAAvH,UAAAqI,WAAA,SAAWJ,EAAiBvH,EAAiB4H,GAA7C,IAAAC,EAAAnM,KAEH,OAAOA,KAAKqL,MACPe,IAAIpM,KAAK4L,UAAUC,IAAyB,MAAVvH,EAAiB,GAAKA,EAAO0H,gBAA2B,MAATE,EAAgB,GAAM,IAAMA,EAAMH,QAAQ,QAAS,IAAIA,QAAQ,aAAc,MAC9JM,KACGhE,EAAAA,KAAG,SAACiE,GAAK,OAAA,IAAIC,EAAoBD,MACjCE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAO7D8B,EAAAvH,UAAAwI,IAAA,SAAIP,EAAiBvH,EAAiB4H,GAAtC,IAAAC,EAAAnM,KAEH,OAAOA,KAAKqL,MACPe,IAAIpM,KAAK4L,UAAUC,IAAyB,MAAVvH,EAAiB,GAAKA,EAAO0H,gBAA2B,MAATE,EAAgB,GAAM,IAAMA,EAAMH,QAAQ,QAAS,IAAIA,QAAQ,aAAc,KAAO,CAAEW,QAAS1M,KAAK0L,mBACrLW,KACGhE,EAAAA,KAAG,SAACiE,GAAK,OAAA,IAAIC,EAAoBD,MACjCE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI7D8B,EAAAvH,UAAA+I,QAAA,SAAQd,EAAiBe,GAAzB,IAAAT,EAAAnM,KAEH,OAAOA,KAAKqL,MACPe,IAAIpM,KAAK4L,UAAUC,GAAce,EAAGd,WAAY,CAAEY,QAAS1M,KAAK0L,mBAChEW,KACGhE,EAAAA,KAAG,SAACiE,GAAK,OAAA,IAAIC,EAAoBD,MACjCE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAM7D8B,EAAAvH,UAAAiJ,YAAA,SAAYhB,EAAiBlH,EAAYL,GAAzC,IAAA6H,EAAAnM,KAEH,OAAOA,KAAKqL,MACPyB,KAAK9M,KAAK4L,UAAUC,GAAcvH,EAAO0H,cAAerH,GACxD0H,KACGhE,EAAAA,KAAG,SAACiE,GAAK,OAAA,IAAIC,EAAoBD,MACjCE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAM7D8B,EAAAvH,UAAAkJ,KAAA,SAAKjB,EAAiBlH,EAAYL,GAAlC,IAAA6H,EAAAnM,KAEH,OAAOA,KAAKqL,MACPyB,KAAK9M,KAAK4L,UAAUC,IAAyB,MAAVvH,EAAiB,GAAKA,GAASK,EAAO,CAAE+H,QAAS1M,KAAK0L,mBACzFW,KACGhE,EAAAA,KAAG,SAACiE,GAAK,OAAA,IAAIC,EAAoBD,MACjCE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,GAAG,QAMhE8B,EAAAvH,UAAAmJ,OAAA,SAAOlB,EAAiBe,EAAStI,GAAjC,IAAA6H,EAAAnM,KAKH,OAHUgN,MAANJ,GAAyB,MAANA,GACnBK,MAAM,oBAEHjN,KAAKqL,MACP0B,OAAO/M,KAAK4L,UAAUC,IAAyB,MAAVvH,EAAiB,GAAKA,EAAO0H,eAAiB,OAASY,EAAGd,WAAY,CAAEY,QAAS1M,KAAK0L,mBAC3HW,KACGhE,EAAAA,KAAG,SAACiE,GAAK,OAAA,IAAIC,EAAoBD,MACjCE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAM7D8B,EAAAvH,UAAAsJ,cAAA,SAAcrB,EAAiBlH,EAAYL,GAA3C,IAAA6H,EAAAnM,KAECmN,EAAc,CACdT,QAAS1M,KAAK0L,iBACd9B,KAAMjF,GAGV,OAAO3E,KAAKqL,MACP0B,OAAO/M,KAAK4L,UAAUC,IAAyB,MAAVvH,EAAiB,GAAKA,EAAO0H,eAAgBmB,GAClFd,KACGhE,EAAAA,KAAG,SAACiE,GAAK,OAAA,IAAIC,EAAoBD,MACjCE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAM7D8B,EAAAvH,UAAAwJ,QAAA,SAAQvB,EAAiBlH,EAAcL,EAAiB4H,GAG3D,IAHG,IAAAC,EAAAnM,KAECqN,EAAW,IAAIC,SACV1I,EAAQ,EAAGA,EAAQD,EAAMqG,OAAQpG,IACtCyI,EAASE,OAAO5I,EAAMC,GAAO/D,KAAM8D,EAAMC,IAE7C,OAAO5E,KAAKqL,MACP+B,QAAQ,OAAQpN,KAAK4L,UAAUC,IAAyB,MAAVvH,EAAiB,GAAKA,IAAoB,MAAT4H,EAAgB,GAAM,IAAMA,GAAS,CAAEQ,QAAS1M,KAAK0L,iBAAkB9B,KAAMyD,IAC5JhB,KACGhE,EAAAA,KAAG,SAACiE,GAAK,OAAA,IAAIC,EAAoBD,MACjCE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI5D8B,EAAAvH,UAAA6I,cAAA,SAAcpD,EAAsBmE,QAAA,IAAAA,IAAAA,GAAA,GACxB,KAAZnE,EAAEoE,OACFC,SAASC,SAASC,KAAO,WACpBJ,IACLE,SAASC,SAASC,KAAO,cAEzBhN,EAAqB,IAAIgB,MAAMyH,EAAEtH,SACrC,OAAO8L,EAAAA,GAAG,IAAItB,EAAoB,MAAM,EAAO3L,+BAtJtD4G,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,8EAOCC,EAAAA,OAAMF,KAAA,CAAC1H,YAff+N,EAAAA,kBADAC,EAAAA,cAMA/I,kMCeL,SAAAgJ,EAAoB1C,EACAD,EACA4C,EACA1H,EACA2H,EACAC,GALAnO,KAAAsL,QAAAA,EACAtL,KAAAqL,MAAAA,EACArL,KAAAiO,QAAAA,EACAjO,KAAAuG,YAAAA,EACAvG,KAAAkO,aAAAA,EACAlO,KAAAmO,OAAAA,EAVZnO,KAAAwG,KAAe,QACfxG,KAAAoO,WAAqB,SAErBpO,KAAAqO,gBAA0B,SASlCL,EAAApK,UAAA0K,UAAA,WACI,OAAOtO,KAAKiO,SAGhBD,EAAApK,UAAA2K,YAAA,WACI,OAAOvO,KAAKuG,aAGhByH,EAAApK,UAAA4K,YAAA,SAAYC,EAAgDC,GAA5D,IAAAvC,EAAAnM,KAEI,IAAKA,KAAK2O,aAAe3O,KAAKqO,eAE1B,OADArO,KAAK4O,UACE,MAGLlK,EAAM+J,EAAuB/N,KAAU,KAAKgO,EAAoBhK,IAQtE,OANAmK,YAAU,WACN1C,EAAK2C,uBACN,KAEH9O,KAAK+O,kBAAkBrK,GAEhB1E,KAAKgP,cAActK,GAAK,GAClB2H,KACGhE,EAAAA,KAAG,WACC,MAAW,KAAP3D,IAGCyH,EAAK8C,cAAcvK,IACpByH,EAAKb,QAAQG,cAAc,cAE3B/G,EAAIwK,QAAQ,SAAW,IAAM/C,EAAK8C,cAAcvK,EAAK,QACrDyH,EAAKb,QAAQG,cAAc,cAE3B/G,EAAIwK,QAAQ,eAAiB,GAAkD,MAA7CT,EAAuBU,SAAS/C,IAAI,QAAkBD,EAAK8C,cAAcvK,EAAK,SAChHyH,EAAKb,QAAQG,cAAc,gBATpB,IAafe,EAAAA,YAAU,SAAC4C,GAEP,OADoB,KAAhBA,EAAM3B,QAAetB,EAAKyC,SACvBf,EAAAA,IAAG,QAEfxB,KACCgD,EAAAA,WAAS,SAAOC,GAAG,OAAA5G,GAAAyD,OAAA,OAAA,GAAA,wEAGf,OAFMoD,EAAYd,EAAuB/N,KAAgB,YAKrD8O,GAAUD,EAAU,IAAM,IAAIxD,QAAQ0D,OAAO,YAAa,MAAI,SAAGxF,EAAGyF,GAAM,OAAAjB,EAAuBe,OAAOE,MAEpG,CAAA,EAAM1P,KAAKkO,aAAa9B,IAAImD,EAAU,GAAIA,EAAU,GAAIC,GAAQG,cAJpE,CAAA,GAAO,UAQX,OAJIrD,EAAIsD,EAAA1F,QACDvJ,SAAqB,GAAV2L,EAAE5L,MAChBV,KAAKsL,QAAQG,cAAc,cAE/B,CAAA,GAAO,eAK/BuC,EAAApK,UAAA+K,SAAA,WACI,OAA2C,MAAnCjI,aAAaC,QAAQ3G,KAAKwG,OAGzCwH,EAAApK,UAAAkL,mBAAA,WAAA,IAAA3C,EAAAnM,KACO,GAAKA,KAAKqO,iBAGVwB,cAAc7P,KAAK8P,wBAEkB,MAAjC9P,KAAKiO,QAAQ8B,kBAA4B/P,KAAKiO,QAAQ8B,kBAAoB,IAA9E,KAGIC,EAAchQ,KAAKiO,QAAQ8B,iBAC/BrJ,aAAaK,QAAQ,MAAM,IAAIkJ,MAAOC,UAAUpE,YAEhD9L,KAAK8P,qBAAuBK,aAAW,WAEnC,GAAIH,EAAc,EACdA,QADJ,KAKII,EAAgBC,KAAKC,MAAMnE,EAAK8B,QAAQ8B,mBAAqB,IAAIE,MAAOC,UAAYK,SAAS7J,aAAaC,QAAQ,QAAU,MAE3H6J,MAAMJ,IAAkBA,EAAgB,EACzCJ,EAAcI,GAIlBP,cAAc1D,EAAK2D,sBACnB3D,EAAKkC,gBAAiB,EAElBmC,MAAMJ,GACNjE,EAAKyC,SAEJzC,EAAKsE,kBACX,OAGPzC,EAAApK,UAAA6M,YAAA,WAAA,IAAAtE,EAAAnM,KACcA,KAAKmO,OAAOuC,KAAKC,GAAkC,CACzDjQ,KAAM,KACNkQ,cAAc,EACd5O,MAAO,UAGP6O,cAAcC,WAAS,SAAExE,GAEhB,MAALA,IAAcA,EAAE7I,aAAeT,EAAgBE,KAAQiJ,EAAK8B,QAAQ8B,mBAAqB,IAAIE,MAAOC,UAAYK,SAAS7J,aAAaC,QAAQ,QAAU,IAAS,IACjKwF,EAAKkC,gBAAiB,EACtBlC,EAAK2C,sBAGJ3C,EAAKyC,aAIlBZ,EAAApK,UAAAmN,MAAA,SAAMC,EAAiBC,EAAeC,EAA+BC,GAArE,IAAAhF,EAAAnM,KAGI,YAHkC,IAAAkR,IAAAA,EAAA,WAA+B,IAAAC,IAAAA,EAAA,MACjEnR,KAAKoR,eAEEpR,KAAKqL,MACAyB,KAAK9M,KAAKuG,YAAYlB,OAAOnF,UAAY,oCAAqC,CAAEmR,QAASL,EAASM,MAAOL,EAAOM,eAAgBL,EAAgBM,UAAWL,IAC3J9E,KACGhE,EAAAA,KAAG,SAAEiE,GAID,OAHIA,EAAEhL,SAAqB,MAAVgL,EAAE3K,MACf+E,aAAaK,QAAQoF,EAAK3F,KAAM8F,EAAE3K,KAAK8P,OAEpC,IAAIC,EAAepF,EAAEhL,QAASgL,EAAE/K,SAAU+K,EAAE3K,SAEvD6K,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI3E2E,EAAApK,UAAA+N,cAAA,SAAcX,EAAiBY,GAA/B,IAAAzF,EAAAnM,KACI,OAAOA,KAAKqL,MACAyB,KAAK9M,KAAKuG,YAAYlB,OAAOnF,UAAY,uCAAwC,CAAE2R,UAAWD,GAAa,CAAElF,QAAS1M,KAAKkO,aAAaxC,mBACxIW,KACGhE,EAAAA,KAAG,SAAEiE,GAID,OAHIA,EAAEhL,SAAqB,MAAVgL,EAAE3K,MACf+E,aAAaK,QAAQoF,EAAK3F,KAAM8F,EAAE3K,MAE/B,IAAI+P,EAAepF,EAAEhL,QAASgL,EAAE/K,SAAU+K,EAAE3K,SAEvD6K,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI3E2E,EAAApK,UAAAkO,OAAA,SAAOd,GAAP,IAAA7E,EAAAnM,KACI,OAAOA,KAAKqL,MACAyB,KAAK9M,KAAKuG,YAAYlB,OAAOnF,UAAY,gCAAiC,CAAEmR,QAASL,GAAW,CAAEtE,QAAS1M,KAAKkO,aAAaxC,mBAC7HW,KACGhE,EAAAA,KAAG,SAAEiE,GAID,OAHIA,EAAEhL,SAAqB,MAAVgL,EAAE3K,MACf+E,aAAaK,QAAQoF,EAAK3F,KAAM8F,EAAE3K,MAE/B,IAAI+P,EAAepF,EAAEhL,QAASgL,EAAE/K,SAAU+K,EAAE3K,SAEvD6K,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI3E2E,EAAApK,UAAAgL,OAAA,WACI5O,KAAKoR,eACLpR,KAAKsL,QAAQG,cAAc,SAAShC,MAAI,SAAC6C,GAAOqB,SAASoE,aAG7D/D,EAAApK,UAAAoO,eAAA,SAAetN,EAAauN,GAA5B,IAAA9F,EAAAnM,KACI,YADwB,IAAAiS,IAAAA,GAAA,GACjBjS,KAAKqL,MACAe,IAAIpM,KAAKuG,YAAYlB,OAAOnF,UAAY,2CAA6CwE,EAAM,iBAAmBuN,EAAanG,WAAY,CAAEY,QAAS1M,KAAKkO,aAAaxC,mBACpKW,KACGhE,EAAAA,KAAG,SAAEiE,GAAW,OAAA,IAAIoF,EAAepF,EAAEhL,QAASgL,EAAE/K,SAAU+K,EAAE3K,SAC5D6K,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI3E2E,EAAApK,UAAAsO,cAAA,SAAcvN,GAAd,IAAAwH,EAAAnM,KACI,OAAOA,KAAKqL,MACAyB,KAAK9M,KAAKuG,YAAYlB,OAAOnF,UAAY,qCAAsCyE,EAAO,CAAE+H,QAAS1M,KAAKkO,aAAaxC,mBACnHW,KACGhE,EAAAA,KAAG,SAAEiE,GAAW,OAAA,IAAIoF,EAAepF,EAAEhL,QAASgL,EAAE/K,SAAU+K,EAAE3K,SAC5D6K,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI3E2E,EAAApK,UAAAuO,kBAAA,SAAkBxN,GAAlB,IAAAwH,EAAAnM,KACI,OAAOA,KAAKqL,MACAyB,KAAK9M,KAAKuG,YAAYlB,OAAOnF,UAAY,wCAAyCyE,EAAO,CAAE+H,QAAS1M,KAAKkO,aAAaxC,mBACtHW,KACGhE,EAAAA,KAAG,SAAEiE,GAAW,OAAA,IAAIoF,EAAepF,EAAEhL,QAASgL,EAAE/K,SAAU+K,EAAE3K,SAC5D6K,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI3E2E,EAAApK,UAAAwO,gBAAA,SAAgBzN,GAAhB,IAAAwH,EAAAnM,KACI,OAAOA,KAAKqL,MACAyB,KAAK9M,KAAKuG,YAAYlB,OAAOnF,UAAY,sCAAuCyE,GAChF0H,KACGhE,EAAAA,KAAG,SAAEiE,GAAW,OAAA,IAAIoF,EAAepF,EAAEhL,QAASgL,EAAE/K,SAAU+K,EAAE3K,SAC5D6K,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI3E2E,EAAApK,UAAAyO,kBAAA,WAAA,IAAAlG,EAAAnM,KACI,OAAOA,KAAKqL,MACAe,IAAIpM,KAAKuG,YAAYlB,OAAOnF,UAAY,wCACxCmM,KACGhE,EAAAA,KAAG,SAAEiE,GAAW,OAAA,IAAIoF,EAAepF,EAAEhL,QAASgL,EAAE/K,SAAU+K,EAAE3K,SAC5D6K,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAI3E2E,EAAApK,UAAAqL,cAAA,SAAcvK,EAAa4N,GAEvB,QAFuB,IAAAA,IAAAA,EAAA,QAEZ,KAAP5N,GAA6B,QAAf4N,EACd,OAAO,MAEPC,EAAcvS,KAAKwS,eAAe9N,GACtC,OAAO1E,KAAKiO,QAAQlI,WAAW0M,MAAI,SAACC,GAAK,OAAAA,EAAEC,KAAOJ,GAAeG,EAAEE,qBAAuBN,GAAeI,EAAEG,WAG/G7E,EAAApK,UAAAoL,cAAA,SAActK,EAAauN,GAA3B,IAAA9F,EAAAnM,UAA2B,IAAAiS,IAAAA,GAAA,OAEnBM,EAAcvS,KAAKwS,eAAe9N,GAEtC,OADgB1E,KAAKiO,QAAQlI,WAAW0M,MAAI,SAACC,GAAK,OAAAA,EAAEC,KAAOJ,KAEnDN,EACOjS,KAAK8S,aAAapO,GAAK2H,KAAKhE,EAAAA,KAAG,SAAC0K,GAInC,OAHKA,EAAIpS,SACLwL,EAAKyC,UAEF,KAEXpC,EAAAA,YAAU,SAAC4C,GAEP,OADoB,KAAhBA,EAAM3B,QAAetB,EAAKyC,SACvBf,EAAAA,IAAG,OAGP,IAAImF,EAAAA,YAAU,SAAWC,GAC5BA,EAAS7J,MAAK,GACd6J,EAASC,cAIVlT,KAAKgS,eAAeO,EAAaN,GAAc5F,KAAKhE,EAAAA,KAAG,SAAC0K,GAE3D,GAAIA,EAAIpS,QAAS,CACb,GAAgB,MAAZoS,EAAIrS,KAEJ,OADAyL,EAAKyC,UACE,EAGXmE,EAAIrS,KAAKyS,SAAO,SAACC,GAC6G,GAAtHjH,EAAK8B,QAAQlI,WAAWsN,QAAM,SAACX,GAAK,OAAAA,EAAEC,KAAOS,EAAKT,KAAOD,EAAEE,qBAAuBQ,EAAKR,uBAAqB5H,QAC5GmB,EAAK8B,QAAQlI,WAAWkF,KAAKmI,MAGrCL,EAAIrS,KAAK+R,MAAI,SAACC,GAAK,OAAAA,EAAEC,KAAOJ,KAE5B7L,aAAaK,QAAQoF,EAAKiC,WAAYkF,KAAKC,UAAUpH,EAAK8B,UAG9D,OAjBgB,KAmBpBzB,EAAAA,YAAU,SAAC4C,GAEP,OADoB,KAAhBA,EAAM3B,QAAetB,EAAKyC,SACvBf,EAAAA,IAAG,QAKtBG,EAAApK,UAAAkP,aAAA,SAAapO,GAAb,IAAAyH,EAAAnM,KACI,OAAOA,KAAKqL,MACPe,IAAIpM,KAAKuG,YAAYlB,OAAOnF,UAAY,2CAA6CwE,EAAK,CAAEgI,QAAS1M,KAAKkO,aAAaxC,mBACvHW,KACGhE,EAAAA,KAAG,SAAEiE,GAAW,OAAA,IAAIoF,GAAqB,IAANpF,EAAY,GAAIA,MACnDE,EAAAA,YAAU,SAAEnD,GAAyB,OAAA8C,EAAKM,cAAcpD,QAIpE2E,EAAApK,UAAAwN,aAAA,WACIvK,OAAO2M,KAAK9M,cAAcyM,SAAO,SAAElM,GAC1BA,EAAIwM,SAAS,qBAAqB/M,aAAaO,OAI5D+G,EAAApK,UAAAmL,kBAAA,SAAkBrK,GAEd,GAA6B,MAAzB1E,KAAKuG,YAAYZ,MAAuB,MAAPjB,EAArC,KAKIgP,EAAgBhP,EAAIiP,UAAU,GAAG5H,QAAQ,KAAM,IAAIC,cAAc4H,MAAM,KACvEC,EAAqBH,EAAI1I,OAAS,EAAI0I,EAAI,GAAG5H,WAAapH,EAE9D,GAAImP,EAAW3E,QAAQ,aAAe,EAClClP,KAAKuG,YAAYuN,YAAc,CAAEC,MAAO,UAAWC,OAAQ,iBAE1D,KACGZ,EAAYpT,KAAKuG,YAAYZ,KAAK0N,QAAM,SAACY,GAAK,OAAAA,EAAEC,MAAMlI,cAAckD,QAAQ2E,IAAe,KAEnF,MAART,GAAgBA,EAAKpI,OAAS,EAC9BhL,KAAKuG,YAAYuN,YAAc,CAAEC,MAAOX,EAAK,GAAGe,KAAMH,OAAQZ,EAAK,GAAGc,OACrElU,KAAKuG,YAAYuN,YAAc,CAAEC,MAAO,WAAYC,OAAQ,oBAfjEhU,KAAKuG,YAAYuN,YAAc,MAmBvC9F,EAAApK,UAAA4O,eAAA,SAAe9N,GAGX,QAFI0P,EAAU,GACVC,EAAqB3P,EAAIkP,MAAM,KAC1BU,EAAI,EAAGA,EAAID,EAASrJ,SACpBwF,MAAM+D,WAAWF,EAASC,OAAQtU,KAAKwU,OAAOH,EAASC,KAAoC,QAA7BD,EAASC,GAAGtI,eAD9CsI,IAI7BF,GAAW,IAAMC,EAASC,GAElC,OAAOF,EAAQT,UAAU,IAGrB3F,EAAApK,UAAA6I,cAAA,SAAcpD,GAClB,GAAgB,KAAZA,EAAEoE,OACFzN,KAAK4O,aAEJ,CAAA,GAAgB,KAAZvF,EAAEoE,OAGN,OAAe,MAAXpE,EAAE+F,OAA8C,MAA7B/F,EAAE+F,MAAMqF,kBACzB5G,EAAAA,GAAG,IAAI6D,GAAe,EAAOrI,EAAE+F,MAAMqF,oBAEpC5G,EAAAA,GAAG,IAAI6D,GAAe,EAAO,kDALrC1R,KAAKsL,QAAQG,cAAc,SAQ3BuC,EAAApK,UAAA4Q,OAAA,SAAOzM,GACX,OAAgH,QAAxGA,GAAS,IAAI2M,MAAM,4GAhWlClN,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,qDAbmDqG,EAAAA,cAC1DD,EAAAA,kBAGA6G,UACA3P,UAEAmG,UAEAyJ,EAAAA,iPAkXR,SAAAjE,EAAoBkE,GAAA7U,KAAA6U,KAAAA,EAHjB7U,KAAA8U,KAAO,UAKPnE,EAAA/M,UAAAmR,SAAA,WAAA,IAAA5I,EAAAnM,KACI6P,cAAc7P,KAAKgV,UAEnBhV,KAAKgV,SAAW7E,aAAW,WACnBhE,EAAK2I,KAAO,EACZ3I,EAAK2I,QAEL3I,EAAK8I,OAAM,GACXpF,cAAc1D,EAAK6I,aAExB,MAGPrE,EAAA/M,UAAAqR,MAAA,SAAMA,GACFjV,KAAK6U,KAAKK,MAAM,CAAEzR,YAAawR,EAAQjS,EAAgBE,IAAMF,EAAgBG,gCA3BpFgS,EAAAA,UAAS1N,KAAA,CAAC,CACV2N,SAAU,4TAxWSC,EAAAA,kCCAhB,SAAAC,EAAmBC,EAAmCC,EAAsCC,GAAzEzV,KAAAuV,SAAAA,EAAmCvV,KAAAwV,WAAAA,EAAsCxV,KAAAyV,SAAAA,SAErFH,EAAA1R,UAAA8R,SAAA,SAAStV,GAGZ,GAA8B,MAA1BJ,KAAKwV,WAAWpQ,OAAe,KAC3BgO,EAAOpT,KAAKwV,WAAWpQ,OAAOuQ,MAAI,SAAC5L,GAAK,OAAAA,EAAElJ,MAAQT,KACtDJ,KAAKwV,WAAWjQ,eAAyB,MAAR6N,GAAuBA,EAAKwC,mBAG7DL,EAAWvV,KAAKuV,SAASM,sBAAsBC,UAC/CC,EAA4BnU,MAAMwG,KAAKmN,GAAUlC,QAAM,SAAED,GAAiB,OAAAA,EAAKK,SAAS,aAExFsC,GAAwBA,EAAqB/K,OAAS,GACtDuK,EAASS,OAAOD,GAEpBR,EAASS,OAAO,sBAChBT,EAASU,IAAI7V,GAEbsN,SAAS9D,KAAKsM,gBAAgB,SAC9BxI,SAAS9D,KAAKkM,UAAUG,IAAI7V,GAExBJ,KAAKwV,WAAWjQ,gBAChBmI,SAAS9D,KAAKkM,UAAUG,IAAI,sBAE5BjW,KAAKwV,WAAWhQ,SAChBkI,SAAS9D,KAAKkM,UAAUG,IAAI,YAE5BjW,KAAKwV,WAAW/P,WAChBiI,SAAS9D,KAAKkM,UAAUG,IAAI,cAEhCvI,SAAS9D,KAAKkM,UAAUG,IAAI,MAAQjW,KAAKwV,WAAWnQ,OAAO/E,GAAKN,KAAKwV,WAAWnQ,OAAO/E,GAAK,IAE5F6V,eAAepP,QAAQ,KAAM3G,GAC7BsG,aAAaK,QAAQ,KAAM3G,IAGxBkV,EAAA1R,UAAAwS,wBAAA,WAEHpW,KAAK0V,SAAS1V,KAAKyV,SAASY,OAAS,EAAI,IAAIrW,KAAKyV,SAASY,OAAM,SAAW,kBAGzEf,EAAA1R,UAAA0S,WAAA,SAAWvO,QAAA,IAAAA,IAAAA,EAAA,MACd/H,KAAKwV,WAAWhQ,QAAmB,MAATuC,GAAiB/H,KAAKwV,WAAWhQ,QAAUuC,EAErE2F,SAAS9D,KAAKkM,UAAUE,OAAO,YAE3BhW,KAAKwV,WAAWhQ,SAChBkI,SAAS9D,KAAKkM,UAAUG,IAAI,YAEhCE,eAAepP,QAAQ,KAAM/G,KAAKwV,WAAWhQ,QAAQsG,YACrDpF,aAAaK,QAAQ,KAAM/G,KAAKwV,WAAWhQ,QAAQsG,aAGhDwJ,EAAA1R,UAAA2S,aAAA,SAAaC,QAAA,IAAAA,IAAAA,EAAA,MAChBxW,KAAKwV,WAAW/P,UAAqB,MAAT+Q,GAAiBxW,KAAKwV,WAAW/P,UAAY+Q,EAEzE9I,SAAS9D,KAAKkM,UAAUE,OAAO,cAE3BhW,KAAKwV,WAAW/P,WAChBiI,SAAS9D,KAAKkM,UAAUG,IAAI,cAEhCE,eAAepP,QAAQ,KAAM/G,KAAKwV,WAAW/P,UAAUqG,YACvDpF,aAAaK,QAAQ,KAAM/G,KAAKwV,WAAW/P,UAAUqG,uCApE5DtE,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,qDALP+O,EAAAA,wBACAzR,UACA2P,oLCQL,SAAA+B,EAAoBrL,EAA2B9E,EAAwCoQ,GAAnE3W,KAAAqL,MAAAA,EAA2BrL,KAAAuG,YAAAA,EAAwCvG,KAAA2W,cAAAA,SAEvFD,EAAA9S,UAAAgT,WAAA,WAAA,IAAAzK,EAAAnM,KAEI,OAAO,IAAI+I,SAAO,SAAEuD,EAAGjD,GACnB8C,EAAKd,MACAe,IAAwB,eACxB0E,WAAS,SAAChL,OACH+Q,EAAcV,eAAexP,QAAQ,OAASD,aAAaC,QAAQ,MACnEmQ,EAAUX,eAAexP,QAAQ,OAASD,aAAaC,QAAQ,MAC/D6P,EAAQL,eAAexP,QAAQ,OAASD,aAAaC,QAAQ,MAEjEwF,EAAK5F,YAAYlB,OAASS,EAC1BqG,EAAK5F,YAAYpB,cAAe,EAEE,MAA9BgH,EAAK5F,YAAYlB,OAAO/E,IAA4C0M,MAA9Bb,EAAK5F,YAAYlB,OAAO/E,KAC9D6L,EAAK5F,YAAYlB,OAAO/E,GAAK,GAEC,GAA9B6L,EAAK5F,YAAYlB,OAAO/E,KACxBwW,EAAU,aAEVC,EAAUrJ,SAASsJ,cAAc,QAOrC,GANAD,EAAQnJ,KAAOzB,EAAK5F,YAAYlB,OAAOnF,UAAU6L,QAAQ,aAAc,IAAM,oBAC7EgL,EAAQE,KAAO,WACfF,EAAQG,IAAM,aAEdxJ,SAASyJ,KAAKC,YAAYL,GAEW,MAAjC5K,EAAK5F,YAAYlB,OAAO9E,MAAc,KAClC8W,EAAY3J,SAASsJ,cAAc,QACvCK,EAAUzJ,KAAO,WAAazB,EAAK5F,YAAYlB,OAAO9E,MAAQ,aAC9D8W,EAAUJ,KAAO,WACjBI,EAAUH,IAAM,aAChBxJ,SAASyJ,KAAKC,YAAYC,GAGX,MAAfR,GAAsC7J,MAAf6J,IACvBA,EAAc,IAAI1K,EAAK5F,YAAYlB,OAAOjF,MAAK,UAEnD+L,EAAKwK,cAAcjB,SAASmB,GAAe,iBAC3C1K,EAAKwK,cAAcL,WAAsB,QAAXQ,GAC9B3K,EAAKwK,cAAcJ,aAAsB,QAATC,GAEhClK,EAAExG,oCAhDrB0B,EAAAA,WAAUC,KAAA,CAAC,CACRC,WAAY,qDANPoG,EAAAA,kBACA9I,UAEAsQ,8KCFT,SAAAgC,IAkBatX,KAAAY,SAAqB,UAE9B0W,EAAA1T,UAAA2T,QAAA,WACIvX,KAAKY,SAAW,8BArBvBuU,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,aACVpC,SAAU,w+CAgBTqC,EAAAA,2BC+FD,SAAAC,EAAoBC,GAAA3X,KAAA2X,WAAAA,EAjGpB3X,KAAA4X,QAAU,IAAIC,EAAAA,YAEL7X,KAAA8X,YAAc,GACd9X,KAAAa,KAAO,GACPb,KAAA+X,UAAW,EACX/X,KAAAgY,aAAc,EACdhY,KAAAiY,qBAAsB,EACtBjY,KAAAkY,iBAAkB,EAClBlY,KAAAmY,oBAAsB,IACtBnY,KAAA2D,IAAW,KACX3D,KAAAsE,OAAS,gBACTtE,KAAAoY,QAAU,GACVpY,KAAAqY,WAAY,EACZrY,KAAAsY,QAAU,EAETtY,KAAAuY,eAAiB,IAAIC,EAAAA,aAG/BxY,KAAAyY,cAAqB,KAKrBzY,KAAA0Y,aAAc,EAEd1Y,KAAA2Y,UAAoB,EAmBpB3Y,KAAA4Y,QAAkB,KAalB5Y,KAAA6Y,UAAqB,KAYrB7Y,KAAA8Y,MAAa,UA3CbjS,OAAAC,eACI4Q,EAAA9T,UAAA,UAAO,KADX,WAEI,OAAO5D,KAAK2Y,cAGhB,SAAY5Q,GACR/H,KAAK2Y,SAAW5Q,EAEM,MAAlB/H,KAAK6Y,UACL7Y,KAAK6Y,WAAY,EAEiB,IAA7B7Y,KAAK6Y,UAAU/M,aACpB9L,KAAK6Y,WAAY,GAEC,GAAlB7Y,KAAK6Y,WACL7Y,KAAK+Y,iBAAiB/Y,KAAKgZ,0CAInCnS,OAAAC,eACI4Q,EAAA9T,UAAA,SAAM,KADV,WAEI,OAAO5D,KAAK4Y,aAGhB,SAAW7Q,GAAX,IAAAoE,EAAAnM,KACIA,KAAK4Y,QAAU7Q,EAEX/H,KAAK0Y,aACL1Y,KAAKiZ,UAAUnI,WAAS,SAACoI,GAAO/M,EAAKzL,KAAOwY,EAAExY,KAAMyL,EAAK6M,SAAU,sCAI3EnS,OAAAC,eACI4Q,EAAA9T,UAAA,WAAQ,KADZ,SACamE,GACa,MAAlB/H,KAAK6Y,YACL7Y,KAAK6Y,UAAY9Q,GAEjBA,EACA/H,KAAK4X,QAAQuB,UAEbnZ,KAAK4X,QAAQwB,0CAIrBvS,OAAAC,eACI4Q,EAAA9T,UAAA,OAAI,KADR,WAEI,OAAO5D,KAAK8Y,WAGhB,SAAS/Q,GAAT,IAAAoE,EAAAnM,KACIA,KAAK8Y,MAAQ/Q,EAET/H,KAAKkY,iBAGTrJ,YAAU,WACoB,MAAtB1C,EAAKsM,cACc,MAAdtM,EAAK2M,QAAgC,MAAd3M,EAAK2M,OAAsC,GAArB3M,EAAK2M,MAAM9N,SAAkBmB,EAAK6M,QAIhF7M,EAAKkN,WAAoC,MAAzBlN,EAAKsM,cAAca,GAAanN,EAAKsM,cAAgBtM,EAAKsM,cAAca,KAHxFnN,EAAKkN,WAAW,MAChBlN,EAAKsM,cAAgB,MAIpBtM,EAAK6L,aAA4B,MAAb7L,EAAKzL,MAAgByL,EAAKzL,KAAKsK,OAAS,GACjEmB,EAAKkN,WAAWlN,EAAKzL,KAAK,GAAG4Y,IAE7BnN,EAAK8L,qBACL9L,EAAK4M,iBAA+B,MAAb5M,EAAKzL,MAAoC,GAApByL,EAAKzL,KAAKsK,UAC3D,sCAKP0M,EAAA9T,UAAAmR,SAAA,WAAA,IAAA5I,EAAAnM,MACwB,MAAhBA,KAAKsY,SAAmBtY,KAAKsY,QAAU,KAAGtY,KAAKsY,QAAU,GAC7DtY,KAAKa,KAAOb,KAAK8X,YAAY/L,QAAQ,KAAM,IAAMsE,KAAKkJ,MAAsB,IAAhBlJ,KAAKmJ,UAAiB1N,WAE7E9L,KAAKkY,gBAINlY,KAAK4X,QAAQ6B,aAAapN,KACtBqN,EAAAA,aAAa1Z,KAAKmY,qBAClBwB,EAAAA,uBACAtK,EAAAA,WAAS,SAACtH,GAAS,OAAAoE,EAAK8M,QAAQlR,OAClC+I,WAAS,SAACoI,GAAK,OAAA/M,EAAKzL,KAAOyL,EAAKyN,QAAUV,EAAExY,SAP9CV,KAAKiZ,UAAUnI,WAAS,SAACoI,GAAO/M,EAAKzL,KAAOwY,EAAExY,KAAMyL,EAAK6M,SAAU,KACnEhZ,KAAK4X,QAAQ6B,aAAa3I,WAAS,SAAC/I,GAAWoE,EAAKyN,QAAUzN,EAAKkH,OAAOtL,QAUlF2P,EAAA9T,UAAAyP,OAAA,SAAOtL,GACH,GAAa,MAATA,GAAiBA,EAAMiD,OAAShL,KAAKsY,QAAS,MAAO,OACrDuB,EAA4B,MAAd9R,EAAM+R,KAAe/R,EAAM+D,WAAWE,cAAgBjE,EAAM+R,KAE9E,OAAI9Z,KAAKqY,UACErY,KAAKU,KAAK2S,QAAM,SAAC0G,GAAU,OAAmD,IAAnDA,EAAOD,KAAK9N,cAAckD,QAAQ2K,KAAqC,MAAdE,EAAOxW,IAAc,GAAKwW,EAAOxW,IAAIyI,eAAiB6N,MAAcG,MAAM,EAAGha,KAAKoY,SAEtKpY,KAAKU,KAAK2S,QAAM,SAAC0G,GAAU,OAAAA,EAAOD,KAAK9N,cAAckD,QAAQ2K,IAAgB,IAAoB,MAAdE,EAAOxW,IAAc,GAAKwW,EAAOxW,IAAIyI,cAAckD,QAAQ2K,IAAgB,MAAIG,MAAM,EAAGha,KAAKoY,UAG/LV,EAAA9T,UAAAqV,QAAA,SAAQlR,GAGJ,QAHI,IAAAA,IAAAA,EAAA,MACJ/H,KAAK0Y,aAAc,EAEH,MAAZ1Y,KAAK2D,KAA2B,IAAZ3D,KAAK2D,IACzB,OAAO,IAAIqP,EAAAA,WAEfhT,KAAKgZ,SAAWhZ,KAAKkY,gBACrBlY,KAAKU,KAAO,OACRuZ,EAAaja,KAAKwP,QAAU,GAEhC,GAAIxP,KAAKkY,gBAAiB,CACtB,GAAa,MAATnQ,GAA0B,IAATA,EACjB,OAAO,IAAIiL,EAAAA,WAEG,MAAdiH,GAAoC,IAAdA,IACtBA,GAAc,SAIdtV,GAFJsV,GAAc,SAAsB,MAAdlS,EAAM+R,KAAe/R,EAAM+D,WAAWE,cAAgBjE,EAAM+R,MAAI,SAAS9Z,KAAKoY,SAE7ExE,MAAM,KAAKvL,KAAG,SAACC,SAAK,OAAAsH,EAAA,IAAItH,EAAEsL,MAAM,KAAK,GAAGsG,OAAO,GAAGC,cAAgB7R,EAAEsL,MAAM,KAAK,GAAGD,UAAU,IAAKrL,EAAEsL,MAAM,KAAK,GAAEhE,KAAKwK,QAAM,SAAElB,EAAEmB,GAAM,OAAAxT,OAAAyT,OAAAzT,OAAAyT,OAAA,GAAKpB,GAAMmB,MACvK,OAAOra,KAAK2X,WAAW7K,KAAK9M,KAAK2D,IAAKgB,EAAO3E,KAAKsE,QAGtD,OAAOtE,KAAK2X,WAAWvL,IAAIpM,KAAK2D,IAAK3D,KAAKsE,OAAQ2V,IAGtDvC,EAAA9T,UAAA2W,OAAA,SAAOxS,GAAP,IAAAoE,EAAAnM,KACI6O,YAAU,WACN,GAA0B,MAAtB1C,EAAKsM,eAAkD,MAAzBtM,EAAKsM,cAAca,GAGrD,GAAKvR,GAA+B,MAAtBoE,EAAKsM,eAAsD,IAA7BtM,EAAKsM,cAAc+B,OAE1D,KACGC,EAAQtO,EAAKkH,OAAOtL,GACX,MAAT0S,GAAiBA,EAAMzP,OAAS,EAChCmB,EAAKkN,WAAWoB,EAAM,GAAGnB,IAEzBnN,EAAKkN,WAAW,WANpBlN,EAAKkN,WAAW,QAQrB,MAGP3B,EAAA9T,UAAA8W,QAAA,SAAQ3S,GAAR,IAAAoE,EAAAnM,KACwB,MAAhBA,KAAKsY,SAAmC,GAAhBtY,KAAKsY,SAA0B,MAATvQ,GAA0B,IAATA,GAC/D8G,YAAU,WAAS1C,EAAKyL,QAAQ+C,SAAS,MAAQ,MAGzDjD,EAAA9T,UAAAgX,UAAA,SAAUjW,GACN,GAAa,MAATA,GAA+B,MAAdA,EAAMmV,KACvB,MAAO,OAEPe,EAAalW,EAAMmV,KAAK5K,QAAQ,UACpC,OAAO2L,GAAc,EAAIlW,EAAMmV,KAAKnG,UAAU,EAAGkH,GAAYL,OAAS7V,EAAMmV,MAGhFpC,EAAA9T,UAAAyV,WAAA,SAAWtR,OACH+S,EAAM9a,KAAKU,KAAKiV,MAAI,SAACrJ,GAAK,OAAAA,EAAEgN,IAAMvR,KACtC/H,KAAK4X,QAAQ+C,SAASG,GAET,MAAT/S,GAAwB,MAAP+S,IACjB9a,KAAKyY,cAAgB1Q,GAEJ,MAAjB/H,KAAK+a,UACL/a,KAAK+a,SAAShT,GAES,MAAvB/H,KAAKuY,gBACLvY,KAAKuY,eAAeyC,KAAkB,MAAbhb,KAAKU,KAAe,KAAOV,KAAKU,KAAKiV,MAAI,SAACrJ,GAAK,OAAAA,EAAEgN,IAAMvR,OAGxF2P,EAAA9T,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpBxD,EAAA9T,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAKob,UAAYF,GAGrBxD,EAAA9T,UAAAmV,iBAAA,SAAkBsC,GACdrb,KAAKsb,YAAWtb,KAAKiY,qBAAqC,MAAbjY,KAAKU,MAAoC,GAApBV,KAAKU,KAAKsK,SAAsBqQ,6BAvNzGlG,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,oBACVpC,SAAA,qzBAEAmG,UAAW,CAAC,CACRC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAjE,MAC9BkE,OAAO,8PAXNzQ,4CAiBJsM,EAAAA,oBACAA,EAAAA,wBACAA,EAAAA,2BACAA,EAAAA,mCACAA,EAAAA,+BACAA,EAAAA,mCACAA,EAAAA,mBACAA,EAAAA,sBACAA,EAAAA,uBACAA,EAAAA,yBACAA,EAAAA,uBACAA,EAAAA,8BAEAoE,EAAAA,wBAWApE,EAAAA,sBAmBAA,EAAAA,wBAaAA,EAAAA,oBAYAA,EAAAA,2BCnCD,SAAAqE,EAAoB5N,GAAAlO,KAAAkO,aAAAA,EA3CXlO,KAAA+D,UAAoB,EACpB/D,KAAA+b,SAAmB,EACnB/b,KAAAgc,iBAA2B,EAC3Bhc,KAAAic,eAAyB,QACzBjc,KAAAkc,YAAsB,SACtBlc,KAAAsY,QAAkB,EAClBtY,KAAAmc,IAAc,GAEdnc,KAAAoc,WAAqB,GAErBpc,KAAA+H,MAAgB,GAChB/H,KAAA2D,IAAW,KACX3D,KAAAsE,OAAiB,KAEjBtE,KAAA2E,MAAa,GACb3E,KAAAU,KAAc,GACdV,KAAA0T,IAAc,KAEf1T,KAAA4Y,QAAe,KAWf5Y,KAAAqc,aAAoB,KAW5Brc,KAAAgZ,SAAmB,EACnBhZ,KAAAa,KAAe,UAtBfgG,OAAAC,eACIgV,EAAAlY,UAAA,SAAM,KADV,WAEI,OAAO5D,KAAK4Y,aAGhB,SAAW7Q,GACP/H,KAAK4Y,QAAU7Q,EACf/H,KAAKiZ,2CAITpS,OAAAC,eACIgV,EAAAlY,UAAA,cAAW,KADf,WAEI,OAAO5D,KAAKqc,kBAGhB,SAAgBtU,GACZ/H,KAAKqc,aAAetU,EACpB/H,KAAKiZ,2CAQT6C,EAAAlY,UAAAmR,SAAA,WACI/U,KAAKoc,WAAa,6BAA+Bpc,KAAKmc,IAAM,+BAC5Dnc,KAAKa,KAAO,gBAAkBwP,KAAKkJ,MAAsB,IAAhBlJ,KAAKmJ,UAAiB1N,WAC/D9L,KAAKiZ,WAGT6C,EAAAlY,UAAAqV,QAAA,WACQjZ,KAAK+b,UACc,MAAf/b,KAAKwP,QAAsC,MAApBxP,KAAKsc,YAC5Btc,KAAKuc,iBAAiBvc,KAAKsc,aAE1Btc,KAAKwc,KAAKxc,KAAKwP,UAI5BsM,EAAAlY,UAAA4Y,KAAA,SAAKtQ,GAAL,IAAAC,EAAAnM,UAAK,IAAAkM,IAAAA,EAAA,MAEe,MAAZlM,KAAK2D,MAGT3D,KAAKgZ,SAAU,EACfhZ,KAAKU,KAAO,GAEM,MAAdV,KAAK2E,QACL3E,KAAK2E,MAAQ,IAEjB3E,KAAKkO,aACA9B,IAAIpM,KAAK2D,IAAK3D,KAAKsE,OAAQ4H,GAAO4E,WAAS,SAACxE,GACzCA,EAAE3L,UACFwL,EAAKzL,KAAO4L,EAAE5L,MAElByL,EAAK6M,SAAU,OAIvB8C,EAAAlY,UAAA2Y,iBAAA,SAAiBE,GAAjB,IAAAtQ,EAAAnM,UAAiB,IAAAyc,IAAAA,EAAA,MAEG,MAAZzc,KAAK2D,MAGT3D,KAAKgZ,SAAU,EACfhZ,KAAKU,KAAO,GAEM,MAAdV,KAAK2E,QACL3E,KAAK2E,MAAQ,IAEjB3E,KAAKkO,aAAapB,KAAK9M,KAAK2D,IAAK8Y,EAAYzc,KAAKsE,QAAQwM,WAAS,SAACxE,GAC5DA,EAAE3L,UACFwL,EAAKzL,KAAO4L,EAAE5L,MAElByL,EAAK6M,SAAU,OAIvB8C,EAAAlY,UAAA8Y,SAAA,WAAA,IAAAvQ,EAAAnM,KAEI,OAAkB,MAAdA,KAAK2E,OAAsC,GAArB3E,KAAK2E,MAAMqG,OAC1B,GAEJhL,KAAK2E,MAAM0O,QAAM,SAACY,GAAK,OAAY,MAAZ9H,EAAKuH,KAAeO,EAAE1Q,KAAO4I,EAAKuH,QAGpEoI,EAAAlY,UAAA+Y,gBAAA,WAAA,IAAAxQ,EAAAnM,KAEI,OAAwB,GAApBA,KAAKU,KAAKsK,QAAehL,KAAK+H,MAAMiD,OAAShL,KAAKsY,QAC3C,GAEJtY,KAAKU,KAAK2S,QAAM,SAACuJ,GACpB,OAAa,MAAZzQ,EAAKuH,KAAevH,EAAKuH,KAAOkJ,EAAErZ,MACY,GAA/C4I,EAAKxH,MAAM0O,QAAM,SAACY,GAAK,OAAAA,EAAEqF,IAAMsD,EAAEtD,MAAItO,QACrC4R,EAAE9C,KAAK9N,cAAckD,QAAQ/C,EAAKpE,MAAMiE,gBAAkB,KAE5DgO,MAAM,EAAGha,KAAKmc,MAGpBL,EAAAlY,UAAAiZ,UAAA,WAAA,IAAA1Q,EAAAnM,KACI,OAAqB,MAAbA,KAAKU,MACLV,KAAKU,KAAKsK,OAAS,GACnBhL,KAAKU,KAAK2S,QAAM,SAACuJ,GAAK,OAAY,MAAZzQ,EAAKuH,KAAevH,EAAKuH,KAAOkJ,EAAErZ,OAAKyH,OAAS,GAGlF8Q,EAAAlY,UAAAqS,IAAA,SAAI7C,GAEkB,MAAdpT,KAAK2E,QACL3E,KAAK2E,MAAQ,IAEjB3E,KAAK2E,MAAMsG,KAAK,CACZqO,GAAIlG,EAAKkG,GACTQ,KAAM1G,EAAK0G,KACXvW,IAAkB,MAAZvD,KAAK0T,IAAcN,EAAK7P,IAAMvD,KAAK0T,IACzCoJ,UAA6B,MAAlB1J,EAAK0J,UAAoB1J,EAAK0G,KAAO1G,EAAK0J,UACrDC,aAAa,KAIrBjB,EAAAlY,UAAAoZ,UAAA,WAAA,IAAA7Q,EAAAnM,KAEQid,EAAc,IAAIrb,MAEtB,GAAgB,MAAZ5B,KAAK0T,IACL,IAAK,IAAIY,EAAI,EAAGA,EAAItU,KAAK2E,MAAMqG,OAAQsJ,IAC/BtU,KAAK2E,MAAM2P,GAAG/Q,KAAOvD,KAAK0T,KAC1BuJ,EAAYhS,KAAKqJ,GAI7B2I,EAAY9J,SAAO,SAACvO,GAChBuH,EAAKxH,MAAMuY,OAAOtY,EAAO,iCA/JpCuQ,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,oBACVpC,SAAA,28EAJKjK,yCASJsM,EAAAA,uBACAA,EAAAA,+BACAA,EAAAA,8BACAA,EAAAA,2BACAA,EAAAA,uBACAA,EAAAA,mBACAA,EAAAA,uBACAA,EAAAA,0BACAA,EAAAA,qBAEAA,EAAAA,mBACAA,EAAAA,sBACAA,EAAAA,qBAEAA,EAAAA,oBACAA,EAAAA,mBACAA,EAAAA,sBAGAA,EAAAA,2BAWAA,EAAAA,2BCtBD,SAAA0F,EAAoB7R,GAAAtL,KAAAsL,QAAAA,EAFVtL,KAAAod,QAAU,IAAI5E,EAAAA,oBAIxB2E,EAAAvZ,UAAAyZ,YAAA,WACoB,MAAZrd,KAAK0E,KAA2B,IAAZ1E,KAAK0E,IACzB1E,KAAKod,QAAQpC,OAEZhb,KAAKsL,QAAQG,cAAczL,KAAK0E,gCArB5CyQ,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,YACVpC,SAAA,2mBAJKrH,EAAAA,0CAUJ0J,EAAAA,2BACAA,EAAAA,oBACAA,EAAAA,mBACAA,EAAAA,oBACAA,EAAAA,uBACAoE,EAAAA,4BCRL,SAAAyB,IAOatd,KAAAiE,MAAgB,KAChBjE,KAAAc,YAAsB,KACtBd,KAAAmE,KAAe,KACfnE,KAAAud,KAAc,GACdvd,KAAAwd,KAAe,EACfxd,KAAAyd,UAAoB,EAE7Bzd,KAAA0d,SAAkB,GAClB1d,KAAA2d,IAAc,GACd3d,KAAA4d,SAAmB,iBAEnBN,EAAA1Z,UAAAmR,SAAA,WACQ/U,KAAKyd,UACLzd,KAAKwc,QAGbc,EAAA1Z,UAAA4Y,KAAA,WAKI,GAJAxc,KAAK0d,SAAW,IAAI9b,MAEpB5B,KAAKud,KAAoB,MAAbvd,KAAKud,KAAe,KAAOvd,KAAKud,KAAKlK,QAAM,SAACiB,GAAK,OAAgB,GAAhBA,EAAEuJ,cAE9C,MAAb7d,KAAKud,MAAoC,GAApBvd,KAAKud,KAAKvS,QAA4B,MAAbhL,KAAKwd,MAA6B,GAAbxd,KAAKwd,KAGxE,OAFAxd,KAAK0d,SAASzS,KAAKjL,KAAKud,WACxBvd,KAAK4d,UAAY5d,KAAK2d,IAAI7R,YAM9B,QAFIgS,EAAiBzN,KAAK0N,KAAK/d,KAAKud,KAAKvS,OAAShL,KAAKwd,MAE9ClJ,EAAI,EAAGA,EAAItU,KAAKwd,KAAMlJ,IAC3BtU,KAAK0d,SAASzS,KAAKjL,KAAKud,KAAKvD,MAAM1F,EAAIwJ,EAAiBxJ,EAAIwJ,EAAkBA,IAElF9d,KAAK2d,IAAM,GAAK3d,KAAKwd,KACrBxd,KAAK4d,UAAY5d,KAAK2d,IAAI7R,sCAxCjCqJ,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,iBACVpC,SAAA,gyCAKCqC,EAAAA,2BACAA,EAAAA,oBACAA,EAAAA,oBACAA,EAAAA,oBACAA,EAAAA,wBACAA,EAAAA,2BCjBL,SAAAuG,IAYahe,KAAA8X,YAAsB,GACtB9X,KAAAiX,KAAe,KACfjX,KAAAie,KAAe,EAExBje,KAAA+H,OAAiB,EACjB/H,KAAAsb,UAAoB,EACpBtb,KAAAke,cAA2C,CAAEC,MAAM,EAAMC,OAAO,GAChEpe,KAAA0Y,aAAuB,SAKvB7R,OAAAC,eACIkX,EAAApa,UAAA,UAAO,KADX,WAEI,OAAO5D,KAAK+H,WAGhB,SAAYA,GAEJ/H,KAAK0Y,cACL1Y,KAAK+H,MAAQA,EACb/H,KAAKqe,kDAIbL,EAAApa,UAAAmR,SAAA,WACI,GAAiB,MAAb/U,KAAKiX,KAAc,KACfqH,EAAate,KAAKiX,KAAKrD,MAAM,KACjC5T,KAAKke,cAAcC,KAAO3N,MAAM+N,OAAOD,EAAW,KAAOA,EAAW,GAAKC,OAAOD,EAAW,IAC3Fte,KAAKke,cAAcE,MAAQ5N,MAAM+N,OAAOD,EAAW,KAAOA,EAAW,GAAKC,OAAOD,EAAW,IAGhGte,KAAK+H,OAAQ,GAGjBiW,EAAApa,UAAAyV,WAAA,SAAWmF,GAGHxe,KAAK+H,WADUiF,IAAfwR,GAA0C,MAAdA,GAGdA,IAAexe,KAAKke,cAAcC,KAEpDne,KAAKqe,iBAGTL,EAAApa,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpB8C,EAAApa,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAK0Y,aAAc,EACnB1Y,KAAKob,UAAYF,GAGrB8C,EAAApa,UAAAmV,iBAAA,SAAkBsC,GACdrb,KAAKsb,SAAWD,GAGpB2C,EAAApa,UAAAya,cAAA,eACQ9U,EAASvJ,KAAK+H,MAAQ/H,KAAKke,cAAcC,KAAOne,KAAKke,cAAcE,MAElD,MAAjBpe,KAAK+a,UACL/a,KAAK+a,SAASxR,8BA1EzB4L,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,gBACVpC,SAAA,qRAEAmG,UAAW,CAAC,CACRC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAqC,MAC9BpC,OAAO,YAJF,2KASRnE,EAAAA,oBACAA,EAAAA,mBACAA,EAAAA,uBAUAA,EAAAA,aCnBQgH,GAAqB,CAC9BC,MAAO,CACHC,UAAW,cAEfC,QAAS,CACLD,UAAW,aACXE,eAAgB,QAChBC,cAAe,KACfC,mBAAoB,yBAI5B,SAAAC,IAgBahf,KAAAsb,UAAoB,EACpBtb,KAAA+X,UAAoB,EACpB/X,KAAAif,QAAgB,IAAIhP,KAAK,KAAM,EAAG,GAClCjQ,KAAAkf,QAAgB,KAEhBlf,KAAAmf,WAAkB,KAClBnf,KAAAof,UAAiB,YAS1BJ,EAAApb,UAAAyb,gBAAA,eAEQvZ,EAAS,CACTqC,KAAM,CAAC,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MAC3DK,OAAO,EACP8W,gBAAiB,IACjBjT,KAAMkT,EAAAA,QAA4Bd,GAAmBC,MAAMC,UAAU3S,eACrEwT,YAAY,EACZC,mBAAmB,GAGvBzf,KAAK0f,SAAWC,EAAAA,2BACZ9Y,OAAOyT,OAAO,CAAEsF,aAAc5f,KAAK6f,MAAMC,eAAiBha,KAIlEkZ,EAAApb,UAAAmc,YAAA,SAAYhY,GACR/H,KAAK0f,SAASM,OAAOjY,IAGzBiX,EAAApb,UAAAya,cAAA,WAC0B,MAAlBre,KAAKigB,YACDC,EAAOlgB,KAAKigB,WAAWE,SAASD,EAAOlgB,KAAKif,YAC7Cjf,KAAKigB,UAAYjgB,KAAKif,SAEL,MAAhBjf,KAAKkf,SAAmBgB,EAAOlgB,KAAKigB,WAAWG,QAAQF,EAAOlgB,KAAKkf,YACnElf,KAAKigB,UAAYjgB,KAAKkf,UAGT,MAAjBlf,KAAK+a,UACL/a,KAAK+a,SAAS/a,KAAKigB,YAG3BjB,EAAApb,UAAAyV,WAAA,SAAWtR,GACM,MAATA,KACAA,EAAQ,IAAIkI,KAAKlI,IACXsY,WAAWtY,EAAMuY,aAAevY,EAAMwY,qBAC5CxY,EAAQ,IAAIkI,KAAKlI,EAAMyY,cAAezY,EAAM0Y,WAAY1Y,EAAM2Y,YAGlE1gB,KAAKigB,UAAYlY,EACjB/H,KAAKqe,iBAGTW,EAAApb,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpB8D,EAAApb,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAKob,UAAYF,GAGrB8D,EAAApb,UAAAmV,iBAAA,SAAkBsC,GACdrb,KAAKsb,SAAWD,GAGpB2D,EAAApb,UAAA+c,WAAA,SAAWtX,GACU,IAAbA,EAAEuX,SACF5gB,KAAKqe,2CAzFhBlJ,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,YACVpC,SAAA,4lBACAmG,UAAW,CAAC,CACRC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAqD,MAC9BpD,OAAO,GAEX,CAAEJ,QAASqF,EAAAA,gBAAiBC,SAAU,SACtC,CAAEtF,QAASuF,EAAAA,YAAaC,SAAUC,EAAAA,kBAAmBC,KAAM,CAACL,EAAAA,kBAC5D,CAAErF,QAAS2F,EAAAA,iBAAkBL,SAAUrC,IACvC,CAAEjD,QAAS4F,EAAAA,gCAAiCN,SAAU,CAAEO,QAAQ,+CAI/D5J,EAAAA,wBACAA,EAAAA,wBACAA,EAAAA,uBACAA,EAAAA,uBACAA,EAAAA,0BAEAA,EAAAA,yBACAA,EAAAA,qBAEA6J,EAAAA,UAAS7Z,KAAA,CAAC,YAAa,CAAE8Z,QAAQ,WClCzBC,GAA2B,CACpC9C,MAAO,CACHC,UAAW,WAEfC,QAAS,CACLD,UAAW,UACXE,eAAgB,WAChBC,cAAe,KACfC,mBAAoB,4BAI5B,SAAA0C,IAgBazhB,KAAAsb,UAAoB,EACpBtb,KAAA+X,UAAoB,EACpB/X,KAAA0hB,mBAA6B,EAC7B1hB,KAAAif,QAAgB,IAAIhP,KAAK,KAAM,EAAG,UAS3CwR,EAAA7d,UAAAyb,gBAAA,eAEQvZ,EAAS,CACTqC,KAAM,CAAC,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MAC1CK,OAAO,EACP8W,gBAAiB,IACjBjT,KAAMkT,EAAAA,QAA4BiC,GAAyB9C,MAAMC,UAAU3S,eAC3EwT,YAAY,EACZC,mBAAmB,GAGvBzf,KAAK0f,SAAWC,EAAAA,2BACZ9Y,OAAOyT,OAAO,CAAEsF,aAAc5f,KAAK6f,MAAMC,eAAiBha,KAIlE2b,EAAA7d,UAAAmc,YAAA,SAAYhY,GACR/H,KAAK0f,SAASM,OAAOjY,IAGzB0Z,EAAA7d,UAAAya,cAAA,WACyB,MAAjBre,KAAK+a,WACDmF,EAAOlgB,KAAKigB,WAAWE,SAASD,EAAOlgB,KAAKif,YAC7Cjf,KAAKigB,UAAYjgB,KAAKif,SAEzBjf,KAAK+a,SAAS/a,KAAKigB,aAI3BwB,EAAA7d,UAAAyV,WAAA,SAAWtR,GACM,MAATA,GAA0BiF,MAATjF,EACjB/H,KAAKigB,UAAY,OAEjBlY,EAAQ,IAAIkI,KAAKlI,IACXsY,WAAWtY,EAAMuY,aAAevY,EAAMwY,qBAC5CxY,EAAQ,IAAIkI,KAAKlI,EAAMyY,cAAezY,EAAM0Y,WAAY,GACxDzgB,KAAKigB,UAAYlY,GAGrB/H,KAAKqe,iBAGToD,EAAA7d,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpBuG,EAAA7d,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAKob,UAAYF,GAGrBuG,EAAA7d,UAAAmV,iBAAA,SAAkBsC,GACdrb,KAAKsb,SAAWD,GAGpBoG,EAAA7d,UAAA+d,kBAAA,SAAkB5Z,GACd,IAAI/H,KAAK0hB,kBAAT,KAEIhO,EAAM,IAAIzD,KAAKlI,EAAM6Z,OAAQ,IAAI3R,KAAKjQ,KAAKigB,WAAWQ,WAAY,GACtEzgB,KAAKigB,UAAYvM,EACjB1T,KAAKqe,kBAGToD,EAAA7d,UAAAie,mBAAA,SAAmB9Z,EAAe+Z,OAC1BpO,EAAM,IAAIzD,KAAKlI,EAAM6Z,OAAQ7Z,EAAMga,QAAS,GAChD/hB,KAAKigB,UAAYvM,EACjB1T,KAAKqe,gBACLyD,EAAW5M,SAGfuM,EAAA7d,UAAA+c,WAAA,SAAWtX,GACU,IAAbA,EAAEuX,SACF5gB,KAAKqe,2CAnGhBlJ,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,kBACVpC,SAAA,ioBACAmG,UAAW,CAAC,CACRC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAA8F,MAC9B7F,OAAO,GAEX,CAAEJ,QAASqF,EAAAA,gBAAiBC,SAAU,SACtC,CAAEtF,QAASuF,EAAAA,YAAaC,SAAUC,EAAAA,kBAAmBC,KAAM,CAACL,EAAAA,kBAC5D,CAAErF,QAAS2F,EAAAA,iBAAkBL,SAAUU,IACvC,CAAEhG,QAAS4F,EAAAA,gCAAiCN,SAAU,CAAEO,QAAQ,+CAI/D5J,EAAAA,wBACAA,EAAAA,wBACAA,EAAAA,iCACAA,EAAAA,uBACAA,EAAAA,qBAEA6J,EAAAA,UAAS7Z,KAAA,CAAC,YAAa,CAAE8Z,QAAQ,yBC/BlC,SAAAS,EAAmBC,GAAAjiB,KAAAiiB,OAAAA,SAEnBD,EAAApe,UAAAqJ,MAAA,SAAMlL,OAEE4C,EAAQ,IAAIud,EAWhB,OAVAvd,EAAM5C,QAAUA,EAChB4C,EAAMzC,YAAc,KACpByC,EAAMpC,gBAAiB,EAEbvC,KAAKiiB,OAAOvR,KAAKyR,GAAqB,CAC5CzhB,KAAMiE,EACNiM,cAAc,EACd5O,MAAO2C,EAAM3C,MAAQ,OAGd6O,eAGfmR,EAAApe,UAAAwe,QAAA,SAAQrgB,OACA4C,EAAQ,IAAIud,EAYhB,OAXAvd,EAAM5C,QAAUA,EAChB4C,EAAM7C,SAAU,EAChB6C,EAAMvC,QAAU,OAChBuC,EAAMpC,gBAAiB,EAEbvC,KAAKiiB,OAAOvR,KAAKyR,GAAqB,CAC5CzhB,KAAMiE,EACNiM,cAAc,EACd5O,MAAO2C,EAAM3C,MAAQ,OAGd6O,eAGfmR,EAAApe,UAAAye,QAAA,SAAQtgB,OACA4C,EAAQ,IAAIud,EAUhB,OATAvd,EAAM5C,QAAUA,EAChB4C,EAAMpC,gBAAiB,EAEbvC,KAAKiiB,OAAOvR,KAAKyR,GAAqB,CAC5CzhB,KAAMiE,EACNiM,cAAc,EACd5O,MAAO2C,EAAM3C,MAAQ,OAGd6O,eAGfmR,EAAApe,UAAA0e,OAAA,SAAO3d,GASH,OARAA,EAAMpC,gBAAiB,EAEbvC,KAAKiiB,OAAOvR,KAAKyR,GAAqB,CAC5CzhB,KAAMiE,EACNiM,cAAc,EACd5O,MAAO2C,EAAM3C,MAAQ,OAGd6O,eAGfmR,EAAApe,UAAA2e,WAAA,eACQ5d,EAAQ,IAAIud,EAahB,OAZAvd,EAAM5C,QAAU,GAChB4C,EAAM7C,SAAU,EAChB6C,EAAMzC,YAAc,KACpByC,EAAMvC,QAAU,OAChBuC,EAAMpC,gBAAiB,EAEbvC,KAAKiiB,OAAOvR,KAAKyR,GAAqB,CAC5CzhB,KAAMiE,EACNiM,cAAc,EACd5O,MAAO,UAGA6O,yCA/ElBrJ,EAAAA,uDANuCoN,EAAAA,+BA+FpC,SAAAuN,EAAmBK,EAAwE7d,GAAxE3E,KAAAwiB,IAAAA,EAAwExiB,KAAA2E,MAAAA,SAE3Fwd,EAAAve,UAAAmR,SAAA,WAEQ/U,KAAK2E,MAAM7C,UACX9B,KAAK2E,MAAM1C,QAAU,MACrBjC,KAAK2E,MAAMzC,YAAc,QAIjCigB,EAAAve,UAAA6e,cAAA,WACIziB,KAAKwiB,IAAItN,MAAM,IAAIwN,EAAiB1iB,KAAK2E,MAAM7C,QAAUsE,GAAkBjD,GAAKiD,GAAkBhD,UAGtG+e,EAAAve,UAAA+e,UAAA,WACI3iB,KAAKwiB,IAAItN,MAAM,IAAIwN,EAAiB1iB,KAAK2E,MAAM7C,QAAUsE,GAAkBlD,IAAMkD,GAAkBnD,MAGvGkf,EAAAve,UAAAgf,WAAA,WACI5iB,KAAKwiB,IAAItN,MAAM,IAAIwN,EAAiBtc,GAAkB7C,iCAzB7D4R,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,cACVpC,SAAA,g/BA3FKC,EAAAA,oBACA6M,EAAeW,WAAA,CAAA,CAAA5L,KA8FwCtP,EAAAA,OAAMF,KAAA,CAACqb,EAAAA,wCC4CnE,SAAAC,EAAoBC,EACDC,EACAne,EACCoe,EACAC,EACA7X,EACA8X,EACAC,EACAC,EACAzb,EACA0b,EACAC,EACAC,GAZAzjB,KAAAgjB,QAAAA,EACDhjB,KAAAijB,UAAAA,EACAjjB,KAAA8E,MAAAA,EACC9E,KAAAkjB,MAAAA,EACAljB,KAAAmjB,mBAAAA,EACAnjB,KAAAsL,QAAAA,EACAtL,KAAAojB,gBAAAA,EACApjB,KAAAqjB,uBAAAA,EACArjB,KAAAsjB,mBAAAA,EACAtjB,KAAA6H,WAAAA,EACA7H,KAAAujB,YAAAA,EACAvjB,KAAAwjB,UAAAA,EACAxjB,KAAAyjB,SAAAA,EA5HXzjB,KAAA0jB,UAAY,GACZ1jB,KAAA2jB,YAAc,GACd3jB,KAAAc,YAAc,GACdd,KAAA4jB,eAA2C,GAC3C5jB,KAAA6jB,UAAW,EAEX7jB,KAAA2D,IAAW,KACX3D,KAAAsE,OAAiB,KACjBtE,KAAA8jB,KAAY,KACZ9jB,KAAAgC,MAAgB,IAChBhC,KAAA+jB,OAAc,KACd/jB,KAAAgkB,YAAmB,KACnBhkB,KAAAikB,eAAyB,KAEzBjkB,KAAAkkB,QAAU,GACVlkB,KAAAmkB,OAAS,GACTnkB,KAAAokB,SAAW,OACXpkB,KAAAqkB,QAAU,GACVrkB,KAAAskB,QAAU,GACVtkB,KAAAukB,YAAc,GAEdvkB,KAAAwkB,OAAQ,EACRxkB,KAAAykB,KAAO,GACPzkB,KAAA0kB,YAAc,EAEd1kB,KAAA2kB,YAAa,EACb3kB,KAAA4kB,aAAc,EACd5kB,KAAA6kB,eAAgB,EAChB7kB,KAAA8kB,aAAc,EACd9kB,KAAA+kB,qBAAsB,EACtB/kB,KAAAglB,eAAgB,EAChBhlB,KAAAilB,mBAAoB,EACpBjlB,KAAAklB,oBAAqB,EACrBllB,KAAAmlB,mBAAoB,EAEpBnlB,KAAAolB,cAAe,EACfplB,KAAAqlB,qBAAsB,EACtBrlB,KAAAslB,mBAAoB,EACpBtlB,KAAAulB,aAAc,EACdvlB,KAAAwlB,YAAc,GACdxlB,KAAAylB,WAAa,gBAEbzlB,KAAA0lB,YAAa,EAEb1lB,KAAA2lB,YAAmB,KAElB3lB,KAAA4lB,eAAiB,IAAIpN,EAAAA,aACrBxY,KAAA6lB,eAAiB,IAAIrN,EAAAA,aACrBxY,KAAA8lB,aAAe,IAAItN,EAAAA,aACnBxY,KAAA+lB,MAAQ,IAAIvN,EAAAA,aACZxY,KAAAgmB,OAAS,IAAIxN,EAAAA,aACbxY,KAAAimB,OAAS,IAAIzN,EAAAA,aACbxY,KAAAkmB,SAAW,IAAI1N,EAAAA,aACfxY,KAAAmmB,aAAe,IAAI3N,EAAAA,aAEpBxY,KAAAomB,YAAsB,KACtBpmB,KAAAqmB,QAAiC,GACjCrmB,KAAAsmB,cAA6C,GAE7CtmB,KAAAumB,kBAAmB,EACnBvmB,KAAAwmB,iBAAwB,KAKjCxmB,KAAAY,SAAqB,GACrBZ,KAAAymB,YAAc,GACdzmB,KAAA6E,eAAgB,EAChB7E,KAAA0mB,iBAAwB,KAExB1mB,KAAA2mB,aAAc,EACd3mB,KAAA4mB,kBAAmB,EACnB5mB,KAAA6mB,mBAAoB,EACpB7mB,KAAA8mB,qBAAsB,EAEtB9mB,KAAA+mB,YAAc,EACd/mB,KAAAgZ,SAAU,EACVhZ,KAAAgnB,aAAe,GACfhnB,KAAAinB,MAAe,GACfjnB,KAAAknB,aAAe,GACflnB,KAAAmnB,eAAiB,GACjBnnB,KAAAonB,YAAc,GACdpnB,KAAAqnB,aAAe,GACfrnB,KAAAsnB,iBAAmB,GACnBtnB,KAAAunB,WAAqB,KACrBvnB,KAAA0E,IAAc,KAGJ1E,KAAAwnB,kBAAoB,IAAIhP,EAAAA,aAElCxY,KAAAynB,iBAA2B,KAW3BznB,KAAA0nB,MAAgB,UAVhB7gB,OAAAC,eACIic,EAAAnf,UAAA,cAAW,KADf,WAEI,OAAO5D,KAAKynB,sBAGhB,SAAgB1f,GACZ/H,KAAKynB,iBAAmB1f,EACxB/H,KAAKwnB,kBAAkBxM,KAAKhb,KAAKynB,mDAIrC5gB,OAAAC,eACIic,EAAAnf,UAAA,OAAI,KADR,WAEI,OAAO5D,KAAK0nB,WAGhB,SAAS3f,GACL/H,KAAK0nB,MAAQ3f,EACb/H,KAAK2nB,8CAiBT5E,EAAAnf,UAAAmR,SAAA,WACI/U,KAAK0E,KAAO1E,KAAKojB,gBAAgBwE,SAASlnB,KAAU,KAAKV,KAAKsL,QAAQ5G,KAAKsH,cAC3EhM,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,MAAQ9f,KAAKijB,UAAU5d,OAAO/E,IACnFN,KAAK8nB,kBAEmB,MAApB9nB,KAAK2lB,aACc,MAAf3lB,KAAKsE,SACLtE,KAAKsE,OAAS,UAElBtE,KAAK0mB,iBAAmB7f,OAAOyT,OAAO,GAAIta,KAAK2lB,cAG3B,MAAf3lB,KAAK+jB,QAAkC,MAAf/jB,KAAKsE,QAAiC,IAAftE,KAAKsE,SACzDtE,KAAKsE,OAAS,iBAEbtE,KAAKslB,mBAAqBtlB,KAAKqjB,uBAAuB7Q,eAAexS,KAAKujB,YAAY7e,MAAQ1E,KAAKqjB,uBAAuB7Q,eAAexS,KAAK0E,OAC/I1E,KAAK6E,cAAgB7E,KAAKujB,YAAY1e,cAEd,MAApB7E,KAAK2lB,aAAiD,MAA1B3lB,KAAKujB,YAAY5e,OAC7CkC,OAAOyT,OAAOta,KAAK2lB,YAAa3lB,KAAKujB,YAAY5e,QAGrD3E,KAAKolB,eACLplB,KAAK6E,eAAgB,GAErB7E,KAAK0kB,YAAc,IACnB1kB,KAAKunB,WAAa5Z,SAASC,MAE/B5N,KAAKkjB,MAAMvf,IAAM3D,KAAK2D,IACtB3D,KAAKkjB,MAAMxf,eAAiB1D,KAAK8jB,MAGrCf,EAAAnf,UAAAyb,gBAAA,WAAA,IAAAlT,EAAAnM,KACIA,KAAK2mB,YAAgC,IAAlB3mB,KAAK0jB,WAAuC,IAApB1jB,KAAK2jB,aAE3C3jB,KAAK6jB,UAAY7jB,KAAKijB,UAAU5d,OAAO/E,IAAM,IAC9CN,KAAK6jB,SAAW7jB,KAAK2mB,aAErB3mB,KAAK2lB,aAAe3lB,KAAK+nB,UAAU/c,OAAS,GAAKhL,KAAKgoB,YACtDhoB,KAAK+nB,UAAUE,UAAU9U,SAAO,SAACxO,GAAS,OAAAwH,EAAK6b,WAAWE,WAAWvjB,OAEpE3E,KAAKslB,mBAAqBtlB,KAAKwkB,OAASxkB,KAAKqjB,uBAAuB7Q,eAAexS,KAAKujB,YAAY7e,MAAQ1E,KAAKqjB,uBAAuB7Q,eAAexS,KAAK0E,OAC7J1E,KAAKmoB,UAAUvjB,MAAQ5E,KAAKujB,YAAY3e,OAEpB,MAApB5E,KAAKomB,aACLpmB,KAAK2nB,aACL3nB,KAAKgP,gBAEDhP,KAAK0lB,WACL1lB,KAAKiZ,UAEJjZ,KAAKooB,YAGTpoB,KAAKmjB,mBACL/W,IAAIpM,KAAK2D,IAAK3D,KAAKomB,aACnBtV,WAAS,SAACxE,GACPH,EAAKqR,KAAOlR,EAAE5L,KACdyL,EAAKwb,aACLxb,EAAK6C,gBAED7C,EAAKuZ,WACLvZ,EAAK8M,UAEJ9M,EAAKic,cAGdpoB,KAAKmlB,oBACLnlB,KAAKklB,oBAAqB,IAGlCnC,EAAAnf,UAAA+jB,WAAA,WAAA,IAAAxb,EAAAnM,KAEqB,IAAbA,KAAKwd,MACLvQ,MAAM,4BAEO,IAAbjN,KAAKwd,OACLxd,KAAKknB,aAAe,GACpBlnB,KAAKmnB,eAAiB,GACtBnnB,KAAKonB,YAAc,GACnBpnB,KAAKqnB,aAAe,GACpBrnB,KAAKsnB,iBAAmB,GAExBtnB,KAAKwd,KAAK5J,MAAM,KAAKT,SAAO,SAACkV,OAErBrhB,GAA+C,GAA1BqhB,EAASnZ,QAAQ,KAGtCoZ,EAFJD,EAAWA,EAAStc,QAAQ,KAAM,IAG9Bwc,EAAiBF,EACjBpR,EAAe,GACfjV,EAAgB,GAEpB,GAAIumB,EAAOrZ,QAAQ,MAAQ,EAAG,KACtBsZ,EAAQH,EAASzU,MAAM,KAC3B0U,EAASE,EAAM,GACfD,EAASC,EAAM,GAGnB,GAAID,EAAOrZ,QAAQ,MAAQ,EAAG,KACtBuZ,EAAQF,EAAO3U,MAAM,KAErB0U,GAAUC,IACVD,EAASG,EAAM,IAEnBF,EAASE,EAAM,GACfxR,EAAOwR,EAAM,OAGb/U,EAAc,IAARuD,EAAasR,EAAStR,EAChC,GAAIvD,EAAIxE,QAAQ,MAAQ,EAAG,KACnBwZ,EAAahV,EAAIE,MAAM,KAEf,IAARqD,GACIqR,GAAUC,IACVD,EAASI,EAAW,IAExBH,EAASG,EAAW,IAEjBzR,EAAOyR,EAAW,IAEzB1mB,EAAQ0mB,EAAW,IAETxZ,QAAQ,KAAO,GAAKlN,EAAMkN,QAAQ,MAAQ,IAChDlN,GAAS,MAGjBmK,EAAK+a,aAAajc,KAAKqd,GACvBnc,EAAKgb,eAAelc,KAAKsd,GACzBpc,EAAKib,YAAYnc,KAAa,IAARgM,EAAa,QAAUA,GAC7C9K,EAAKkb,aAAapc,KAAKjJ,GACvBmK,EAAKmb,iBAAiBrc,KAAKjE,MAGC,GAA5BhH,KAAKknB,aAAalc,QAA2C,GAA5BhL,KAAKqnB,aAAarc,SACnDhL,KAAKqnB,aAAa,GAAK,UAInCtE,EAAAnf,UAAAkkB,gBAAA,eACQpU,EAAM,GAEc,IAApB1T,KAAK2jB,cACLjQ,EAAM1T,KAAK6H,WAAWb,UAAUhH,KAAK2jB,cAEjB,IAApB3jB,KAAKymB,cACL/S,IAA4B,IAApB1T,KAAK2jB,YAAoB,MAAQ,IAAM3jB,KAAK6H,WAAWb,UAAUhH,KAAKymB,cAE5D,IAAlBzmB,KAAK0jB,YACLhQ,IAA4B,IAApB1T,KAAKymB,aAAyC,IAApBzmB,KAAK2jB,YAAoB,MAAQ,IAAM3jB,KAAK6H,WAAWb,UAAUhH,KAAK0jB,YAE5G1jB,KAAKgnB,aAAetT,GAGxBqP,EAAAnf,UAAAQ,WAAA,SAAWM,EAAaR,EAAiB0I,GAEjC1I,EACIQ,EAAIwK,QAAQ,QAAU,EACtBlP,KAAKsL,QAAQG,cAAc/G,EAAIqH,QAAQ,MAAOa,IAC7C5M,KAAKsL,QAAQqd,SAAS,CAACjkB,EAAKkI,IAGhC5M,KAAKsL,QAAQG,cAAc/G,IAGpCqe,EAAAnf,UAAAglB,gBAAA,SAAgBllB,EAAqB1B,EAAe2C,QAAA,IAAAA,IAAAA,EAAA,MAEhD3E,KAAKkjB,MAAMrf,IAAIpB,EAAeC,KAAMiC,GACpC3E,KAAK6oB,UAAUnlB,EAAgB1B,IAGnC+gB,EAAAnf,UAAAqV,QAAA,WACIjZ,KAAKY,SAAW,GAEA,MAAZZ,KAAK2D,KAA2B,IAAZ3D,KAAK2D,IAIE,MAApB3D,KAAK2lB,YACZ3lB,KAAK8oB,YAEA9oB,KAAKwkB,MACVxkB,KAAK+oB,WAEe,MAAf/oB,KAAK+jB,OACV/jB,KAAKgpB,SAEJhpB,KAAKipB,gBAZNjpB,KAAKooB,YAebrF,EAAAnf,UAAAolB,OAAA,WAAA,IAAA7c,EAAAnM,KAE4B,MAApBA,KAAK2lB,YACL3lB,KAAKmjB,mBACA/W,IAAIpM,KAAK2D,IAAK3D,KAAKsE,QACnBwM,WAAS,SAACxE,GAAK,OAAAH,EAAK+c,cAAc5c,MAEtCtM,KAAKmjB,mBACLrW,KAAK9M,KAAK2D,IAAK3D,KAAK2lB,YAAa3lB,KAAKsE,QACtCwM,WAAS,SAACxE,GAAK,OAAAH,EAAK+c,cAAc5c,OAG3CyW,EAAAnf,UAAAmlB,SAAA,WAAA,IAAA5c,EAAAnM,KAEQwP,EAAwB,MAAfxP,KAAK+jB,OAAiB,GAAK,MAAQ/jB,KAAK+jB,OAAS,IAC9DvU,GAAU,SAAWxP,KAAKmoB,UAAUvjB,MAAQ,SAAW5E,KAAKykB,KAE5DzkB,KAAKmjB,mBACA/W,IAAIpM,KAAK2D,IAAK3D,KAAKsE,OAAQkL,GAC3BsB,WAAS,SAACxE,GAAK,OAAAH,EAAK+c,cAAc5c,GAAG,OAG9CyW,EAAAnf,UAAAklB,UAAA,WAAA,IAAA3c,EAAAnM,KACIA,KAAK4lB,eAAe5K,OAEpBhb,KAAKY,SAAW,GACZZ,KAAKwkB,QACLxkB,KAAK2lB,YAAYwD,MAAQnpB,KAAKmoB,UAAUvjB,MACxC5E,KAAK2lB,YAAYyD,KAAOppB,KAAKykB,UAG7B4E,EAAcrpB,KAAK2lB,YAAyB,YAC5C2D,EAAYtpB,KAAK2lB,YAAuB,UAC5C,GAAmB,MAAf0D,GAAoC,MAAbC,GAAqB,IAAIrZ,KAAKoZ,GAAe,IAAIpZ,KAAKqZ,GAG7E,OAFAtpB,KAAKY,SAASqK,KAAK,8BACnBjL,KAAKooB,eAILmB,EAAavpB,KAAK2lB,YAAwB,WAC1C6D,EAAUxpB,KAAK2lB,YAAqB,QACxC,GAAkB,MAAd4D,GAAiC,MAAXC,GAAmB,IAAIvZ,KAAKsZ,GAAc,IAAItZ,KAAKuZ,GAGzE,OAFAxpB,KAAKY,SAASqK,KAAK,2BACnBjL,KAAKooB,WAITpoB,KAAKmjB,mBACArW,KAAK9M,KAAK2D,IAAK3D,KAAK2lB,YAAa3lB,KAAKsE,QACtCwM,WAAS,SAACxE,GAAK,OAAAH,EAAK+c,cAAc5c,EAAGH,EAAKqY,WAGnDzB,EAAAnf,UAAAqlB,cAAA,WAAA,IAAA9c,EAAAnM,KACIA,KAAKmjB,mBACA/W,IAAIpM,KAAK2D,IAAK3D,KAAKsE,OAAQ,MAAQtE,KAAK+jB,QACxCjT,WAAS,SAACxE,GAAK,OAAAH,EAAK+c,cAAc5c,GAAG,OAG9CyW,EAAAnf,UAAAslB,cAAA,SAAc3f,EAAakgB,GAA3B,IAAAtd,EAAAnM,UAA2B,IAAAypB,IAAAA,GAAA,GAElBzpB,KAAKslB,oBACNtlB,KAAKujB,YAAY7e,IAAM1E,KAAKqjB,uBAAuB7Q,eAAexS,KAAK0E,KACvE1E,KAAKujB,YAAY1e,cAAgB7E,KAAK6E,cACtC7E,KAAKujB,YAAY5e,MAAQkC,OAAOyT,OAAO,GAAIta,KAAK2lB,aAE5C3lB,KAAKwkB,QACLxkB,KAAKujB,YAAY3e,MAAQ5E,KAAKmoB,UAAUvjB,QAG5C2E,EAAO5I,SACPX,KAAKU,KAAO6I,EAAO7I,KAEdV,KAAKulB,aAA8B,MAAfhc,EAAO1I,OAC5Bb,KAAKymB,YAAczmB,KAAK6H,WAAWb,UAAUuC,EAAO1I,OAE9B,MAAtB0I,EAAOzI,cACPd,KAAKc,YAAcyI,EAAOzI,aAEP,MAAnByI,EAAOvI,WACPhB,KAAK0pB,YAAcngB,EAAOvI,UAE1ByoB,GACAzpB,KAAKmoB,UAAUwB,QAAQpgB,EAAOxI,OAE9Bf,KAAK0kB,YAAc,GAAK1kB,KAAKunB,YAAc5Z,SAASC,MACpDiB,YAAU,WAAS1C,EAAK8M,YAAiC,IAAnBjZ,KAAK0kB,aAE/C1kB,KAAK4pB,cAGL5pB,KAAKU,KAAO,GACTV,KAAKumB,mBAAkBvmB,KAAKY,SAAW2I,EAAO3I,WAGrDZ,KAAKooB,WACLpoB,KAAK6lB,eAAe7K,QAGxB+H,EAAAnf,UAAAimB,WAAA,SAAWjlB,GACP5E,KAAKgZ,SAAU,EACfhZ,KAAKmoB,UAAUvjB,MAAQA,EAEC,MAApB5E,KAAK2lB,YACL3lB,KAAK8oB,YAEJ9oB,KAAK+oB,YAGdhG,EAAAnf,UAAAkmB,aAAA,WACIjjB,OAAOyT,OAAOta,KAAK2lB,YAAa3lB,KAAK0mB,kBAEhC1mB,KAAKolB,eACNplB,KAAK6E,eAAgB,GAEzB7E,KAAK+pB,UAGThH,EAAAnf,UAAAmmB,OAAA,WACI/pB,KAAKgZ,SAAU,EAEXhZ,KAAKwkB,QACLxkB,KAAKmoB,UAAUvjB,MAAQ,GAE3B5E,KAAKiZ,WAGT8J,EAAAnf,UAAAqS,IAAA,WAEqB,MAAbjW,KAAK8jB,MACL9jB,KAAKkjB,MAAMrf,IAAIpB,EAAeG,IAAK5C,KAAKwmB,kBACxCxmB,KAAK6oB,cAGc,MAAf7oB,KAAKmkB,QAAiC,IAAfnkB,KAAKmkB,SAC5BnkB,KAAKmkB,OAASnkB,KAAK0E,KAEvB1E,KAAKmkB,QAAU,QACfnkB,KAAKmkB,OAASnkB,KAAKmkB,OAAOpY,QAAQ,KAAM,KAExC/L,KAAKsL,QAAQG,cAAczL,KAAKmkB,SAGpCnkB,KAAK+lB,MAAM/K,QAGf+H,EAAAnf,UAAAomB,OAAA,SAAOrlB,GACH3E,KAAKkjB,MAAMrf,IAAIpB,EAAeM,OAAQ4B,GACtC3E,KAAK6oB,aAGT9F,EAAAnf,UAAAqmB,OAAA,SAAOtlB,GACC3E,KAAKklB,qBACDllB,KAAKmlB,kBACLnlB,KAAKimB,OAAOjL,KAAKrW,GAEhB3E,KAAKkqB,KAAKvlB,KAIvBoe,EAAAnf,UAAAumB,KAAA,SAAKxlB,GAEgB,MAAb3E,KAAK8jB,MACL9jB,KAAKkjB,MAAMrf,IAAIpB,EAAeE,KAAMgC,GACpC3E,KAAK6oB,cAGe,MAAhB7oB,KAAKskB,SAAmC,IAAhBtkB,KAAKskB,UAC7BtkB,KAAKskB,QAAUtkB,KAAK0E,KAExB1E,KAAKskB,SAAW,IAAM3f,EAAM2U,IAAMtZ,KAAKklB,mBAAqB,GAAK,eACjEllB,KAAKskB,QAAUtkB,KAAKskB,QAAQvY,QAAQ,KAAM,KAE1C/L,KAAKsL,QAAQG,cAAczL,KAAKskB,UAGpCtkB,KAAKimB,OAAOjL,KAAKrW,IAGrBoe,EAAAnf,UAAAsmB,KAAA,SAAKvlB,GACG3E,KAAK6mB,mBACY,MAAb7mB,KAAK8jB,MACL9jB,KAAKkjB,MAAMrf,IAAIpB,EAAeI,KAAM8B,GACpC3E,KAAK6oB,cAGe,MAAhB7oB,KAAKqkB,SAAmC,IAAhBrkB,KAAKqkB,UAC7BrkB,KAAKqkB,QAAUrkB,KAAK0E,KAExB1E,KAAKqkB,QAAUrkB,KAAKqkB,QAAQtY,QAAQ,KAAM,KAE1C/L,KAAKsL,QAAQqd,SAAS,CAAC3oB,KAAKqkB,QAAS1f,EAAM2U,MAG/CtZ,KAAKgmB,OAAOhL,KAAKrW,KAEA,MAAb3E,KAAK8jB,MACL9jB,KAAKkjB,MAAMrf,IAAIpB,EAAeE,KAAMgC,GACpC3E,KAAK6oB,cAGe,MAAhB7oB,KAAKskB,SAAmC,IAAhBtkB,KAAKskB,UAC7BtkB,KAAKskB,QAAUtkB,KAAK0E,KAExB1E,KAAKskB,SAAW,IAAM3f,EAAM2U,IAAMtZ,KAAKklB,mBAAqB,GAAK,eACjEllB,KAAKskB,QAAUtkB,KAAKskB,QAAQvY,QAAQ,KAAM,KAE1C/L,KAAKsL,QAAQG,cAAczL,KAAKskB,UAGpCtkB,KAAKimB,OAAOjL,KAAKrW,KAIzBoe,EAAAnf,UAAAmJ,OAAA,SAAOpI,GAAP,IAAAwH,EAAAnM,KACOA,KAAKmmB,aAAaiE,UAAUpf,OAAS,EACpChL,KAAKmmB,aAAanL,KAAKrW,GAI3B3E,KAAKgjB,QAAQZ,QAAQ,mBAAmBtR,WAAS,SAACxE,GAC1CA,EAAEzK,QAAUuE,GAAkBlD,MAC9BiJ,EAAK6M,SAAU,EAEf7M,EAAKgX,mBAAmBpW,OAAOZ,EAAKxI,IAAKgB,EAAM2U,IAAIxI,WAAS,SAAC8L,GACzDzQ,EAAK+Z,SAASlL,KAAK4B,GAEfA,EAAEjc,QACFwL,EAAK8M,WAEL9M,EAAKic,WACDjc,EAAKoa,mBAAkBpa,EAAKvL,SAAWgc,EAAEhc,mBAOjEmiB,EAAAnf,UAAAgmB,UAAA,WAAA,IAAAzd,EAAAnM,KACIA,KAAKinB,MAAQ,GAEI,MAAbjnB,KAAKU,MAGTV,KAAKU,KAAKyS,SAAO,SAACJ,OAEVK,EAAOL,EAAU,KACrB,GAAY,MAARK,EAGJ,GAAIA,EAAKlE,QAAQ,MAAQ,EAAG,KACpBkF,EAAUhB,EACTQ,MAAM,KACNvL,KAAG,SAACgiB,GAED,GAAIA,EAAMnb,QAAQ,MAAQ,EAAG,KACrBsZ,EAAQ6B,EAAMzW,MAAM,KACxB,MAAO,CAAEzS,KAAMiS,EAAMe,KAAMqU,EAAM,GAAI8B,QAAS9B,EAAM,GAAI+B,WAAW,GAEhE,MAAO,CAAEppB,KAAMiS,EAAMe,KAAMkW,EAAOC,QAAS,GAAIC,WAAW,MAElElX,QAAM,SAAC6F,GAAK,OAAU,MAAVA,EAAE/E,MAA0B,IAAV+E,EAAE/E,QAEnCqW,EAAQ,EACZpW,EAAQjB,SAAO,SAACsX,GACkE,MAA1Ete,EAAK8a,MAAMtR,MAAI,SAACuD,GAAK,OAAAA,EAAE/X,MAAQspB,EAAQtpB,MAAQ+X,EAAE/E,MAAQsW,EAAQtW,UACjEsW,EAAQF,UAAqB,GAATC,EACpBre,EAAK8a,MAAMhc,KAAKwf,IAGpBD,WAED,KACCE,EAAe,GAEnB,GAAItX,EAAKlE,QAAQ,MAAQ,EAAG,KACpBsZ,EAAQpV,EAAKQ,MAAM,KACvB8W,EAAU,CAAEvpB,KAAMiS,EAAMe,KAAMqU,EAAM,GAAI8B,QAAS9B,EAAM,GAAI+B,WAAW,QAEnEG,EAAU,CAAEvpB,KAAMiS,EAAMe,KAAMf,EAAMkX,QAAS,GAAIC,WAAW,GAEf,MAAhDpe,EAAK8a,MAAMtR,MAAI,SAACuD,GAAK,OAAAA,EAAE/X,MAAQupB,EAAQvpB,SACvCgL,EAAK8a,MAAMhc,KAAKyf,QAKhC3H,EAAAnf,UAAA+mB,KAAA,SAAK5iB,GACD/H,KAAKgjB,QAAQ/V,MAAMlF,IAGvBgb,EAAAnf,UAAAgnB,KAAA,WACI5qB,KAAKoE,WAAWpE,KAAKkkB,SAA+B,MAApBlkB,KAAK0pB,YAAsB,GAAK,IAAM1pB,KAAK0pB,cAAc,IAG7F3G,EAAAnf,UAAAilB,UAAA,SAAUnlB,EAAiC1B,GAA3C,IAAAmK,EAAAnM,UAAU,IAAA0D,IAAAA,EAAsB1D,KAAK8jB,WAAM,IAAA9hB,IAAAA,EAAgBhC,KAAKgC,WAExDwgB,EAAMxiB,KAAK8E,MAAM4L,KAAKhN,EAAgB,CACtChD,KAAMV,KAAKkjB,MACXtS,cAAc,EACd5O,MAAOA,EAAQ,OAGnBwgB,EAAI3R,cAAcC,WAAS,SAAExE,GAChB,MAALA,IAGAA,EAAE7I,aAAeT,EAAgBK,MACjC8I,EAAK8M,UAET9M,EAAK2Z,aAAa9K,KAAK1O,OAG3BkW,EAAIqI,gBAAgB/Z,WAAS,SAAExE,GACtBH,EAAK6M,SAAqB,UAAT1M,EAAErF,KAA4B,OAATqF,EAAErF,KAAyB,MAATqF,EAAErF,KAC3Dub,EAAItN,YAIhB6N,EAAAnf,UAAAwkB,SAAA,WACIpoB,KAAK8nB,kBACL9nB,KAAKgZ,SAAU,GAGnB+J,EAAAnf,UAAAoL,cAAA,WACIhP,KAAK4mB,iBAAmB5mB,KAAKqjB,uBAAuBpU,cAAcjP,KAAK0E,IAAK,OAC5E1E,KAAK6mB,kBAAoB7mB,KAAKqjB,uBAAuBpU,cAAcjP,KAAK0E,IAAK,QAC7E1E,KAAK8mB,oBAAsB9mB,KAAKqjB,uBAAuBpU,cAAcjP,KAAK0E,IAAK,UAC/E1E,KAAKsjB,mBAAmBwH,iBAG5B/H,EAAAnf,UAAAmnB,SAAA,SAASC,GAAT,IAAA7e,EAAAnM,KAC4B,MAApBA,KAAKgkB,aACL/W,MAAM,0BAEVjN,KAAKgZ,SAAU,EACfhZ,KAAKmjB,mBAAmB/W,IAAIpM,KAAKgkB,YAAqC,MAAvBhkB,KAAKikB,eAAyBjkB,KAAKikB,eAAiB,MAAQ,MAAQ+G,GAAWla,WAAS,SAACxE,GAGpI,GAFAH,EAAKvL,SAAW0L,EAAE1L,SAEd0L,EAAE3L,SAAqB,MAAV2L,EAAE5L,KAAc,CAI7B,QAHIuqB,EAAeC,OAAOC,KAAK7e,EAAE5L,KAAK0qB,UAClCC,EAAYJ,EAAajgB,OACzBsgB,EAAQ,IAAIC,WAAWF,GAClB/W,EAAI,EAAGA,EAAI+W,EAAW/W,IAAK,KAC7BkX,EAAQP,EAAaQ,WAAWnX,GACpCgX,EAAMhX,GAAKkX,MAGVE,EAAO,IAAIC,KAAK,CAACL,IACrB,GAAIJ,OAAOU,WAAaV,OAAOU,UAAUC,iBACrCX,OAAOU,UAAUC,iBAAiBH,EAAMpf,EAAE5L,KAAKoZ,UAC5C,KACCgS,EAAUnZ,IAAIoZ,gBAAgBL,GAC9BM,EAA8Bte,SAASsJ,cAAc,KACzDgV,EAASpe,KAAOke,EAChBE,EAASjB,SAAWze,EAAE5L,KAAKoZ,KAC3BpM,SAAS9D,KAAKwN,YAAY4U,GAC1BA,EAASC,QACTve,SAAS9D,KAAKsiB,YAAYF,IAGlC7f,EAAK6M,SAAU,MAIvB+J,EAAAnf,UAAAuoB,YAAA,SAAYxnB,EAAYhB,EAAUW,EAAgBE,GAAlD,IAAA2H,EAAAnM,UAAkD,IAAAwE,IAAAA,GAAA,GAC1CA,EACAxE,KAAKgjB,QACAZ,QAAQ,qBACRtR,WAAS,SAACiC,GACHA,EAAIlR,QAAUuE,GAAkBlD,MAChCiJ,EAAK6M,SAAU,EACf7M,EAAKgX,mBAAmBrW,KAAKnJ,EAAKgB,EAAOL,GAAQwM,WAAS,SAACxE,GACnDA,EAAE3L,QACFwL,EAAK8M,UACD9M,EAAKoa,mBACTpa,EAAKvL,SAAW0L,EAAE1L,UAEtBuL,EAAK6M,SAAU,UAK/BhZ,KAAKgZ,SAAU,EACfhZ,KAAKmjB,mBAAmBrW,KAAKnJ,EAAKgB,EAAOL,GAAQwM,WAAS,SAACxE,GACnDA,EAAE3L,QACFwL,EAAK8M,UACD9M,EAAKoa,mBACTpa,EAAKvL,SAAW0L,EAAE1L,UAEtBuL,EAAK6M,SAAU,iCAzsB9B7D,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,YACVpC,SAAA,q2cAEAmG,UAAW,CAAC/X,42EApBPwe,UAcAhd,UAbA4P,EAAAA,iBAHApR,SADA2H,UAKgB4C,EAAAA,cAAhBqe,EAAAA,sBACApe,UAP0Eqe,EAAAA,yBAQ1EhmB,UAMAimB,SAd8GC,EAAAA,iBAAWC,EAAAA,kDA4B7H/U,EAAAA,2BACAA,EAAAA,2BACAA,EAAAA,8BACAA,EAAAA,wBACAA,EAAAA,mBAEAA,EAAAA,sBACAA,EAAAA,oBACAA,EAAAA,qBACAA,EAAAA,sBACAA,EAAAA,2BACAA,EAAAA,8BACAA,EAAAA,uBAEAA,EAAAA,sBACAA,EAAAA,wBACAA,EAAAA,uBACAA,EAAAA,uBACAA,EAAAA,2BACAA,EAAAA,qBAEAA,EAAAA,oBACAA,EAAAA,2BACAA,EAAAA,0BAEAA,EAAAA,2BACAA,EAAAA,6BACAA,EAAAA,2BACAA,EAAAA,mCACAA,EAAAA,6BACAA,EAAAA,iCACAA,EAAAA,kCACAA,EAAAA,iCACAA,EAAAA,4BAEAA,EAAAA,mCACAA,EAAAA,iCACAA,EAAAA,2BACAA,EAAAA,2BACAA,EAAAA,0BACAA,EAAAA,0BAEAA,EAAAA,oBACAA,EAAAA,2BACAA,EAAAA,8BAEAoE,EAAAA,+BACAA,EAAAA,6BACAA,EAAAA,sBACAA,EAAAA,uBACAA,EAAAA,uBACAA,EAAAA,yBACAA,EAAAA,6BACAA,EAAAA,4BAEApE,EAAAA,uBACAA,EAAAA,6BACAA,EAAAA,gCAEAA,EAAAA,gCACAA,EAAAA,yBAEAgV,EAAAA,gBAAehlB,KAAA,CAACilB,EAAAA,6BAChBpL,EAAAA,UAAS7Z,KAAA,CAACklB,EAAAA,OAAQ,CAAEpL,QAAQ,uBAwB5BD,EAAAA,UAAS7Z,KAAA,CAAC,YAAa,CAAE8Z,QAAQ,+BACjC1F,EAAAA,4BAGApE,EAAAA,oBAWAA,EAAAA,2BC/HL,SAAAmV,IAea5sB,KAAAsb,UAAoB,EACpBtb,KAAA+D,UAAoB,EACpB/D,KAAA+X,UAAoB,EAEpB/X,KAAAiX,KAAe,OACfjX,KAAA6sB,KAAe,EACf7sB,KAAA8sB,SAAmB,EACnB9sB,KAAA+sB,WAAqB,GACrB/sB,KAAAgtB,WAAqB,GACrBhtB,KAAAie,KAAe,KACfje,KAAAmc,IAAc,KACdnc,KAAAmJ,KAAe,KAEdnJ,KAAAitB,OAAS,IAAIzU,EAAAA,aAEvBxY,KAAAktB,YAAmB,CACfC,MAAO,QACPC,eAAe,EACfC,QAAS,IACTC,UAAW,EACXC,OAAQ,GACRC,OAAQ,GACRC,UAAW,KAGfztB,KAAA+H,MAAgB,GAChB/H,KAAA0tB,WAAqB,KAGrB1tB,KAAA2tB,cAAwB,EAMhB3tB,KAAA4tB,aAAuB,YAJ/BhB,EAAAhpB,UAAAmR,SAAA,WACI/U,KAAK2tB,aAAgD,YAAjC3tB,KAAKiX,KAAK4W,qBAIlChnB,OAAAC,eACI8lB,EAAAhpB,UAAA,SAAM,KADV,WAEI,OAAO5D,KAAK4tB,kBAGhB,SAAW7lB,GACP/H,KAAK4tB,aAAe7lB,EAEK,MAArB/H,KAAK4tB,eACL5tB,KAAK4tB,aAAe5tB,KAAK4tB,aAAa5hB,cAEb,OAArBhM,KAAK4tB,aACL5tB,KAAKktB,YAAYI,UAAY,EAEA,KAAxBttB,KAAK4tB,aAAa,IAA0C,GAA5B5tB,KAAK4tB,aAAa5iB,QAA2C,GAA5BhL,KAAK4tB,aAAa5iB,OAGvFhL,KAAK0tB,WAAa1tB,KAAK4tB,aAFxB5tB,KAAKktB,YAAYI,UAAY/c,SAASvQ,KAAK4tB,aAAa7hB,QAAQ,IAAK,uCAMjF6gB,EAAAhpB,UAAA2W,OAAA,YACqB,UAAbva,KAAKiX,MAAoC,MAAfjX,KAAK8tB,QAAkB9tB,KAAK8tB,OAAOC,WAAW,QACxD,MAAZ/tB,KAAKie,MACLje,KAAK+H,MAAQ/H,KAAKie,IAAMM,OAAOve,KAAK+H,OAAS,KAAO/H,KAAK+H,OAE7C,MAAZ/H,KAAKmc,MACLnc,KAAK+H,MAAQ/H,KAAKmc,IAAMoC,OAAOve,KAAK+H,OAAS,KAAO/H,KAAK+H,OAE7D/H,KAAKqe,iBAGU,MAAfre,KAAKitB,QACLjtB,KAAKitB,OAAOjS,KAAKhb,KAAK+H,QAG9B6kB,EAAAhpB,UAAAya,cAAA,WACyB,MAAjBre,KAAK+a,UACL/a,KAAK+a,SAAS/a,KAAK+H,QAG3B6kB,EAAAhpB,UAAAyV,WAAA,SAAWmF,GACPxe,KAAK+H,MAAQyW,EACbxe,KAAKqe,iBAGTuO,EAAAhpB,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpB0R,EAAAhpB,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAKob,UAAYF,GAGrB0R,EAAAhpB,UAAAmV,iBAAA,SAAkBsC,GACdrb,KAAKsb,SAAWD,6BA1GvBlG,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,aAEVpC,SAAA,86FACAmG,UAAU,CACN,CACIC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAiR,MAC9BhR,OAAO,muBAMdnE,EAAAA,wBACAA,EAAAA,wBACAA,EAAAA,wBACAA,EAAAA,yBACAA,EAAAA,oBACAA,EAAAA,oBACAA,EAAAA,wBACAA,EAAAA,0BACAA,EAAAA,0BACAA,EAAAA,mBACAA,EAAAA,mBACAA,EAAAA,oBACAA,EAAAA,sBAEAoE,EAAAA,uBAuBApE,EAAAA,2BCxBD,SAAAuW,EAAoBhL,GAAAhjB,KAAAgjB,QAAAA,EAnBXhjB,KAAA2E,MAAa,GACb3E,KAAA+D,UAAoB,EACpB/D,KAAAiuB,SAAmB,EACnBjuB,KAAAkuB,UAAoB,EACpBluB,KAAAsb,UAAoB,EAE7Btb,KAAAmI,KAAe,KAUfnI,KAAAY,SAAqB,GACrBZ,KAAAmuB,UAAY,CAAEC,GAAI,KAAMC,IAAK,KAAMC,MAAO,KAAMC,SAAS,UAVzD1nB,OAAAC,eACIknB,EAAApqB,UAAA,SAAM,KADV,WAEI,OAAO5D,KAAKmI,UAGhB,SAAWJ,GACP/H,KAAKmI,KAAiB,MAATJ,EAAgB/H,KAAKmI,KAAOJ,mCAQ7CimB,EAAApqB,UAAA4qB,YAAA,WACsB,MAAdxuB,KAAK2E,QACL3E,KAAK2E,MAAQ,IAEjB,IAAK,IAAI2P,EAAI,EAAGA,EAAItU,KAAK2E,MAAMqG,OAAQsJ,IACnCtU,KAAK2E,MAAM2P,GAAGia,SAAU,GAGhCP,EAAApqB,UAAA8Y,SAAA,WACI,OAAK1c,KAAK2E,OAAuB,MAAd3E,KAAK2E,MAGjB3E,KAAK2E,MAAM0O,QAAM,SAACY,GAAK,OAACA,EAAEsa,WAFtB,IAKfP,EAAApqB,UAAAqS,IAAA,WACIjW,KAAKY,SAAW,GAEZZ,KAAKkuB,UAAkC,MAAtBluB,KAAKmuB,UAAUE,KAChCruB,KAAKY,SAASqK,KAAK,oBAElBjL,KAAKkuB,UAAiC,MAArBluB,KAAKmuB,UAAUC,IAAoC,MAAtBpuB,KAAKmuB,UAAUE,KAC9DruB,KAAKY,SAASqK,KAAK,0BAElBjL,KAAKkuB,UAAYluB,KAAKmuB,UAAUE,IAAMruB,KAAKmuB,UAAUC,IACtDpuB,KAAKY,SAASqK,KAAK,sBAEK,MAAxBjL,KAAKmuB,UAAUG,OACftuB,KAAKY,SAASqK,KAAK,gBAEnBjL,KAAKY,SAASoK,OAAS,IAO3BhL,KAAK2E,MAAMsG,KAAK,CAAEmjB,GAAIpuB,KAAKmuB,UAAUC,GAAIC,IAAKruB,KAAKmuB,UAAUE,IAAKC,MAAOtuB,KAAKmuB,UAAUG,MAAOC,SAAS,IACxGvuB,KAAKmuB,UAAY,CAAEC,GAAI,KAAMC,IAAK,KAAMC,MAAO,KAAMC,SAAS,GAE9DvuB,KAAKyuB,aAGTT,EAAApqB,UAAA8qB,QAAA,SAAQtb,GAAR,IAAAjH,EAAAnM,KAEIA,KAAKgjB,QAAQZ,QAAQ,mBAAmBtR,WAAS,SAACxE,GAC1CA,EAAEzK,QAAUuE,GAAkBjD,KAGlCiQ,EAAKmb,SAAU,EACfpiB,EAAKxH,MAAMuY,OAAO/Q,EAAKxH,MAAMgqB,WAAS,SAAC1a,GAAK,OAAAA,GAAKb,KAAO,GACxDjH,EAAKsiB,gBAIbT,EAAApqB,UAAA6qB,SAAA,WAAA,IAAAtiB,EAAAnM,KAEIA,KAAK2E,MAAQ3E,KAAK2E,MAAMiqB,MAAI,SAAE1V,EAAGmB,GAC7B,OAAIlO,EAAK+hB,SAAYhV,EAAEmV,IAAMhU,EAAEgU,IAAQnV,EAAEkV,GAAK/T,EAAE+T,KACpC,GAEHjiB,EAAK+hB,SAAYhV,EAAEmV,IAAMhU,EAAEgU,IAAQnV,EAAEkV,GAAK/T,EAAE+T,IAC1C,EAEC,gCA5FvBjZ,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,kBACVpC,SAAA,q9GALK4M,sCAUJvK,EAAAA,wBACAA,EAAAA,uBACAA,EAAAA,wBACAA,EAAAA,wBACAA,EAAAA,sBAGAA,EAAAA,2BCgBD,SAAAoX,EAAoBhnB,GAAA7H,KAAA6H,WAAAA,EAxBX7H,KAAA8uB,YAAsB,UAGtB9uB,KAAA+uB,cAAwB,UAGxB/uB,KAAA2E,MAAe,GACf3E,KAAAmc,IAAc,EACdnc,KAAAgvB,SAAmB,EAY5BhvB,KAAAivB,WAAqB,GACrBjvB,KAAAkvB,eAAyB,GACzBlvB,KAAA+B,QAAkB,UAXlB8E,OAAAC,eACI+nB,EAAAjrB,UAAA,WAAQ,KADZ,WAEI,OAAO5D,KAAKmvB,mBAGhB,SAAapnB,GACT/H,KAAKmvB,cAAgBpnB,mCASzB8mB,EAAAjrB,UAAAmR,SAAA,WACoB,MAAZ/U,KAAKmc,KAAenc,KAAKmc,IAAM,IAC/Bnc,KAAK+B,QAAU/B,KAAK6H,WAAWb,UAAU,uBAAuB+E,QAAQ,MAAO/L,KAAKmc,IAAIrQ,cAGhG+iB,EAAAjrB,UAAA8Y,SAAA,SAAS0S,EAAeC,EAA+BC,GACnD,YADoB,IAAAD,IAAAA,GAAA,QAA+B,IAAAC,IAAAA,GAAA,GAC/CA,GAAqB,MAAZtvB,KAAKmc,KAA2B,GAAZnc,KAAKmc,IAC3Bnc,KAAK2E,MAAM0O,QAAM,SAAC/G,GAAK,OAAC+iB,EAAe/iB,EAAEyQ,YAAczQ,EAAEyQ,aAAezQ,EAAEyQ,cAAgBzQ,EAAEwQ,UAAU9Q,cAAckD,QAAQkgB,EAAMpjB,gBAAkB,KAEpJhM,KAAK2E,MAAM0O,QAAM,SAAC/G,GAAK,OAAC+iB,EAAe/iB,EAAEyQ,YAAczQ,EAAEyQ,aAAezQ,EAAEyQ,cAAgBzQ,EAAEwQ,UAAU9Q,cAAckD,QAAQkgB,EAAMpjB,gBAAkB,KAAGgO,MAAM,EAAGha,KAAKmc,MAGpL0S,EAAAjrB,UAAA2rB,gBAAA,SAAgBH,EAAeI,EAAiBH,QAAA,IAAAA,IAAAA,GAAA,OACxCI,EAAazvB,KAAK0c,SAAS0S,EAAOC,GAAc,GAAMhnB,KAAG,SAACiE,GAAK,OAAAA,EAAEgN,MAErEtZ,KAAK2E,MAAMwO,SAAO,SAAEC,EAAMxO,GAClB6qB,EAAIvgB,QAAQkE,EAAKkG,KAAO,IACxBlG,EAAK2J,YAAcyS,OAI/BX,EAAAjrB,UAAA8rB,YAAA,SAAYF,GACRxvB,KAAK2E,MAAMwO,SAAO,SAACC,GAAQ,OAAAA,EAAK2J,YAAcyS,gCAvDrDra,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,qBACVpC,SAAA,0kFACS,sGALJ/O,4CASJoR,EAAAA,iCACAA,EAAAA,6BAEAA,EAAAA,mCACAA,EAAAA,qBAEAA,EAAAA,mBACAA,EAAAA,uBACAA,EAAAA,wBAGAA,EAAAA,2BCnBL,SAAAkY,IAQa3vB,KAAA4vB,MAAgB,OAChB5vB,KAAA6vB,SAAmB,EACnB7vB,KAAAkV,OAAiB,EACjBlV,KAAAie,KAAe,SAExB0R,EAAA/rB,UAAAmJ,OAAA,SAAO+iB,EAAY/tB,GACf+tB,EAAMC,iBACNhuB,EAAQiU,oCAffb,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,eACVpC,SAAA,k0DAMCqC,EAAAA,uBACAA,EAAAA,qBACAA,EAAAA,mBACAA,EAAAA,2BCXL,SAAAuY,IAQahwB,KAAAykB,KAAO,EACPzkB,KAAAie,KAAM,EACNje,KAAAiwB,MAAO,EACNjwB,KAAA4E,MAAQ,EACR5E,KAAAkwB,OAAS,IAAI1X,EAAAA,aAEvBxY,KAAAmwB,OAAS,EAYTnwB,KAAAowB,YAAc,EACdpwB,KAAAqwB,YAAc,EACdrwB,KAAAswB,MAAQ,GACRtwB,KAAAuwB,iBAAmB,UAdnB1pB,OAAAC,eACIkpB,EAAApsB,UAAA,QAAK,KADT,WAEI,OAAO5D,KAAKmwB,YAGhB,SAAUpoB,GACN/H,KAAKmwB,OAASpoB,EACd/H,KAAK4W,8CASToZ,EAAApsB,UAAA+lB,QAAA,SAAQ5oB,GACJf,KAAKe,MAAQA,GAGjBivB,EAAApsB,UAAAgT,WAAA,WAKI,GAJA5W,KAAKswB,MAAQ,GACbtwB,KAAKowB,YAAcpwB,KAAK4E,MACxB5E,KAAKqwB,YAAchgB,KAAK0N,KAAK/d,KAAKe,MAAQf,KAAKykB,MAE3CzkB,KAAKe,MAAQf,KAAKykB,KAAM,KACpBnQ,EAAKtU,KAAK4E,MAAQ,EAAM5E,KAAK4E,MAAQ,EAAK,EAC1C4rB,EAAIxwB,KAAKqwB,YAEb,GAAKrwB,KAAK4E,MAAQ,EAAK5E,KAAKqwB,YAAY,KAEhC3c,EAAM,EACN1T,KAAK4E,MAAQ,IACb8O,EAAO,EAAI1T,KAAK4E,OAEpB4rB,EAAKxwB,KAAK4E,MAAQ8O,OAEZ1T,KAAK4E,MAAQ,EAAK,IACxB0P,EAAItU,KAAK4E,OAAS,GAAK5E,KAAKqwB,YAAcrwB,KAAK4E,SAQnD,IANI0P,EAAI,IACJA,EAAI,GAEJkc,EAAIxwB,KAAKqwB,cACTG,EAAIxwB,KAAKqwB,aAEL/b,EAAIkc,EAAGlc,IACXtU,KAAKswB,MAAMrlB,KAAKqJ,QAGpBtU,KAAKswB,MAAMrlB,KAAK,GAGpBjL,KAAKywB,iBACLzwB,KAAKiwB,MAAO,GAGhBD,EAAApsB,UAAA8sB,KAAA,SAAK9rB,GAEG5E,KAAK4E,OAASA,IAGlB5E,KAAK4E,MAAQA,EACb5E,KAAKkwB,OAAOlV,KAAKhb,KAAK4E,SAG1BorB,EAAApsB,UAAAwF,KAAA,WACIpJ,KAAK0wB,KAAK1wB,KAAK4E,MAAQ,IAG3BorB,EAAApsB,UAAA+sB,SAAA,WACI3wB,KAAK0wB,KAAK1wB,KAAK4E,MAAQ,IAG3BorB,EAAApsB,UAAA6sB,eAAA,eACQG,EAAe5wB,KAAKykB,KAAOzkB,KAAK4E,MAAS,EACzCisB,EAAa7wB,KAAKykB,MAAQzkB,KAAK4E,MAAQ,GAEvCisB,EAAa7wB,KAAKe,QAClB8vB,EAAa7wB,KAAKe,OAEH,MAAf6vB,GAAqC,MAAdC,IAE3B7wB,KAAKuwB,iBAAmBK,EAAc,MAAQC,EAAa,OAAS7wB,KAAKe,kCAlGhFoU,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,iBACVpC,SAAA,ilFAMCqC,EAAAA,mBACAA,EAAAA,oBACAA,EAAAA,qBACAoE,EAAAA,uBACAA,EAAAA,sBAGApE,EAAAA,2BCkDD,SAAAqZ,EAAoBC,GAAA/wB,KAAA+wB,kBAAAA,EAnDX/wB,KAAA8X,YAAc,GACd9X,KAAAa,KAAO,GACPb,KAAA+X,UAAgB,EAChB/X,KAAAgY,aAAc,EACdhY,KAAAiY,qBAAsB,EACtBjY,KAAA2D,IAAW,KACX3D,KAAAsE,OAAS,gBACTtE,KAAAgxB,OAAQ,EACRhxB,KAAAixB,UAAiB,KACjBjxB,KAAAgZ,SAAU,EACVhZ,KAAAsb,UAAW,EACXtb,KAAAkxB,YAAmB,KAElBlxB,KAAAuY,eAAiB,IAAIC,EAAAA,aAE/BxY,KAAAyY,cAAqB,KACrBzY,KAAAmxB,eAAyB,EAIjBnxB,KAAA0Y,aAAc,EAEtB1Y,KAAA4Y,QAAkB,KAalB5Y,KAAA8Y,MAAa,UAZbjS,OAAAC,eACIgqB,EAAAltB,UAAA,SAAM,KADV,WAEI,OAAO5D,KAAK4Y,aAGhB,SAAW7Q,GACP/H,KAAK4Y,QAAU7Q,EAEX/H,KAAK0Y,aACL1Y,KAAKiZ,2CAIbpS,OAAAC,eACIgqB,EAAAltB,UAAA,OAAI,KADR,WAEI,OAAO5D,KAAK8Y,WAGhB,SAAS/Q,GAAT,IAAAoE,EAAAnM,KACIA,KAAK8Y,MAAQ/Q,EAET/H,KAAKgY,aAA4B,MAAbhY,KAAKU,MAAgBV,KAAKU,KAAKsK,OAAS,IAAMhL,KAAKU,KAAK+R,MAAI,SAACmK,GAAK,OAAAA,EAAEtD,IAAMnN,EAAKsM,kBACnGzY,KAAKqZ,WAAWrZ,KAAKU,KAAK,GAAG4Y,IAE7BtZ,KAAKiY,qBACLjY,KAAK+Y,iBAA+B,MAAb/Y,KAAKU,MAAoC,GAApBV,KAAKU,KAAKsK,yCAK9D8lB,EAAAltB,UAAAmR,SAAA,WACI/U,KAAKa,MAAQb,KAAK8X,YAAY/L,QAAQ,KAAM,IAC5C/L,KAAKgxB,MAA2B,KAAlBhxB,KAAK+X,UAAqC,SAAlB/X,KAAK+X,WAAyC,IAAlB/X,KAAK+X,SAEjD,MAAlB/X,KAAKixB,YACLjxB,KAAKixB,UAAY,CAAE3X,GAAI,KAAMQ,KAAM,KAEvC9Z,KAAKiZ,WAGT6X,EAAAltB,UAAAyV,WAAA,SAAWtR,GACP/H,KAAKyY,cAAgB1Q,EACrB/H,KAAKqe,iBAGTyS,EAAAltB,UAAAqV,QAAA,WAAA,IAAA9M,EAAAnM,KACIA,KAAK0Y,aAAc,EAEH,MAAZ1Y,KAAK2D,KAA+B,MAAf3D,KAAKwP,QAAkBxP,KAAKwP,OAAOxD,cAAckD,QAAQ,cAAgB,IAGlGlP,KAAKgZ,SAAU,EACfhZ,KAAKU,KAAO,GAEZV,KAAK+wB,kBAAkB3kB,IAAIpM,KAAK2D,IAAK3D,KAAKsE,OAAQtE,KAAKwP,QAAQsB,WAAS,SAACxE,GACjEA,EAAE3L,UACFwL,EAAKzL,KAAO4L,EAAE5L,KACVyL,EAAKsM,eAAetM,EAAKkS,iBAGjClS,EAAK6M,SAAU,OAIvB8X,EAAAltB,UAAAya,cAAA,WAAA,IAAAlS,EAAAnM,KACyB,MAAjBA,KAAK+a,UACL/a,KAAK+a,SAAS/a,KAAKyY,eAEI,MAAvBzY,KAAKuY,gBACLvY,KAAKuY,eAAeyC,KAAkB,MAAbhb,KAAKU,KAAe,KAAOV,KAAKU,KAAKiV,MAAI,SAACrJ,GAAK,OAAAA,EAAEgN,IAAMnN,EAAKsM,mBAG7FqY,EAAAltB,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpB4V,EAAAltB,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAKob,UAAYF,GAGrB4V,EAAAltB,UAAAmV,iBAAA,SAAkBsC,GACdrb,KAAKsb,YAAWtb,KAAKiY,qBAAqC,MAAbjY,KAAKU,MAAoC,GAApBV,KAAKU,KAAKsK,SAAsBqQ,6BApHzGlG,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,cACVpC,SAAA,4nBAEAmG,UAAW,CAAC,CACRC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAmV,MAC9BlV,OAAO,iZATNzQ,4CAcJsM,EAAAA,oBACAA,EAAAA,wBACAA,EAAAA,2BACAA,EAAAA,mCACAA,EAAAA,mBACAA,EAAAA,sBACAA,EAAAA,qBACAA,EAAAA,yBACAA,EAAAA,uBACAA,EAAAA,wBACAA,EAAAA,2BACAA,EAAAA,8BAEAoE,EAAAA,uBAUApE,EAAAA,oBAaAA,EAAAA,2BC7BD,SAAA2Z,IAXSpxB,KAAAqxB,UAAoB,EACpBrxB,KAAAmtB,MAAgB,UAChBntB,KAAAO,MAAa,GACbP,KAAAiE,MAAgB,GAChBjE,KAAAU,KAAc,GAEUV,KAAAsxB,WAAqB,EACnBtxB,KAAAuxB,aAAuB,EACxBvxB,KAAAwxB,YAAsB,EACpBxxB,KAAAyxB,cAAwB,SAI5DL,EAAAxtB,UAAAmR,SAAA,WACI/U,KAAKsxB,UAA4B,SAAftxB,KAAKmtB,MACvBntB,KAAKuxB,YAA8B,WAAfvxB,KAAKmtB,MACzBntB,KAAKwxB,WAA6B,UAAfxxB,KAAKmtB,MACxBntB,KAAKyxB,aAA+B,YAAfzxB,KAAKmtB,iCA3BjChY,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,gBACVpC,SAAA,2qBAEAsc,KAAM,CACFC,mBAAoB,OACpBC,oBAAqB,ioJAIxBna,EAAAA,qBACAA,EAAAA,qBACAA,EAAAA,qBACAA,EAAAA,oBACAA,EAAAA,yBAEAoa,EAAAA,YAAWpqB,KAAA,CAAC,yCACZoqB,EAAAA,YAAWpqB,KAAA,CAAC,0CACZoqB,EAAAA,YAAWpqB,KAAA,CAAC,2CACZoqB,EAAAA,YAAWpqB,KAAA,CAAC,4CCuDf,SAAAqqB,EAAoBC,GAAA/xB,KAAA+xB,WAAAA,EAzDX/xB,KAAA+X,UAAoB,EACpB/X,KAAAgyB,iBAA2B,EAC3BhyB,KAAAiyB,UAAoB,EA0B7BjyB,KAAA+H,MAAa,GAIb/H,KAAAkyB,SAAU,EACVlyB,KAAA4M,GAAK,KAEL5M,KAAAmyB,aAAoC,CAClCC,UAAU,EACVC,YAAY,EACZC,OAAQ,OACRC,UAAW,IACXC,UAAW,OACXxwB,MAAO,OACPywB,SAAU,IACVzrB,UAAW,MACX0rB,eAAe,EACfC,aAAa,EACbC,0BAA2B,GAC3BC,gBAAiB,MACjBZ,UAAU,EACVa,MAAO,CACL,CAACC,MAAO,QAASlyB,KAAM,SACvB,CAACkyB,MAAO,kBAAmBlyB,KAAM,mBACjC,CAACkyB,MAAO,UAAWlyB,KAAM,WACzB,CAACkyB,MAAO,gBAAiBlyB,KAAM,0BAjDnCgG,OAAAC,eACIgrB,EAAAluB,UAAA,WAAQ,KADZ,WACiB,QAAS5D,KAAKmyB,cAAgB,IAAIC,cACnD,SAAarqB,GAAS/H,KAAKmyB,aAAaC,UAAYrqB,mCAEpDlB,OAAAC,eACIgrB,EAAAluB,UAAA,SAAM,KADV,WACe,OAAQ5D,KAAKmyB,cAAgB,IAAIG,YAChD,SAAWvqB,GAAS/H,KAAKmyB,aAAaG,OAASvqB,GAAS,wCAExDlB,OAAAC,eACIgrB,EAAAluB,UAAA,YAAS,KADb,WACkB,OAAQ5D,KAAKmyB,cAAgB,IAAII,eACnD,SAAcxqB,GAAS/H,KAAKmyB,aAAaI,UAAYxqB,GAAS,qCAE9DlB,OAAAC,eACIgrB,EAAAluB,UAAA,YAAS,KADb,WACkB,OAAQ5D,KAAKmyB,cAAgB,IAAIK,eACnD,SAAczqB,GAAS/H,KAAKmyB,aAAaK,UAAYzqB,GAAS,wCAE9DlB,OAAAC,eACIgrB,EAAAluB,UAAA,QAAK,KADT,WACc,OAAQ5D,KAAKmyB,cAAgB,IAAInwB,WAC/C,SAAU+F,GAAS/H,KAAKmyB,aAAanwB,MAAQ+F,GAAS,wCAEtDlB,OAAAC,eACIgrB,EAAAluB,UAAA,WAAQ,KADZ,WACiB,OAAQ5D,KAAKmyB,cAAgB,IAAIM,cAClD,SAAa1qB,GAAS/H,KAAKmyB,aAAaM,SAAW1qB,GAAS,qCAiC5D+pB,EAAAluB,UAAAmR,SAAA,WACE/U,KAAK4M,GAAK,UAAU5M,KAAKgzB,WAG3BlB,EAAAluB,UAAAyb,gBAAA,eACMlT,EAAQnM,KACZ0N,SAASulB,cAAc,IAAIjzB,KAAK4M,GAAE,6BAA6BsmB,iBAAiB,SAAO,WAAQ,OAAA/mB,EAAM+lB,SAAU,KAC/GxkB,SAASulB,cAAc,IAAIjzB,KAAK4M,GAAE,6BAA6BsmB,iBAAiB,QAAM,WAAQ,OAAA/mB,EAAM+lB,SAAU,KAC9GxkB,SAASulB,cAAc,IAAIjzB,KAAK4M,GAAE,6BAA6BsmB,iBAAiB,YAAU,WAAQ,OAAA/mB,EAAMgnB,OAAOC,cAA6B,cAAEC,oBAGxIvB,EAAAluB,UAAAovB,QAAA,WACN,MAAO,uCAAuCjnB,QAAQ,SAAO,SAAWzD,OAC9DgE,EAAoB,GAAhB+D,KAAKmJ,SAAgB,EAC/B,OAD4C,MAANlR,EAAYgE,EAAU,EAAJA,EAAU,GACzDR,SAAS,QAIxBgmB,EAAAluB,UAAAya,cAAA,WACMre,KAAKiyB,WACPjyB,KAAK+H,MAAQ/H,KAAK+xB,WAAWE,SAASqB,EAAAA,gBAAgBC,KAAMvzB,KAAK+H,QAC9C,MAAjB/H,KAAK+a,UACL/a,KAAK+a,SAAS/a,KAAK+H,QAGzB+pB,EAAAluB,UAAAyV,WAAA,SAAWmF,GACTxe,KAAK+H,MAAQ/H,KAAKiyB,SAAWjyB,KAAK+xB,WAAWE,SAASqB,EAAAA,gBAAgBC,KAAM/U,GAAcA,EAC1Fxe,KAAKqe,iBAGPyT,EAAAluB,UAAAqX,iBAAA,SAAiBC,GACflb,KAAK+a,SAAWG,GAGlB4W,EAAAluB,UAAAuX,kBAAA,SAAkBD,GAChBlb,KAAKob,UAAYF,GAGnB4W,EAAAluB,UAAAmV,iBAAA,SAAkBsC,GAChBrb,KAAKsb,SAAWD,6BAhHnBlG,EAAAA,UAAS1N,KAAA,CAAC,CACT+P,SAAU,cACVpC,SAAA,4OAEAmG,UAAW,CAAC,CACVC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAmW,MAC9BlW,OAAO,gnCAVF4X,EAAAA,iDAeNlS,EAAAA,UAAS7Z,KAAA,CAAC,4BAEVgQ,EAAAA,+BACAA,EAAAA,wBACAA,EAAAA,wBAEAA,EAAAA,sBAIAA,EAAAA,yBAIAA,EAAAA,yBAIAA,EAAAA,qBAIAA,EAAAA,wBAIAA,EAAAA,2BCoBC,SAAAgc,EAAoB1C,GAAA/wB,KAAA+wB,kBAAAA,EA/CX/wB,KAAA8X,YAAc,GACd9X,KAAAa,KAAO,GACPb,KAAA+X,UAAgB,EAChB/X,KAAAgY,aAAc,EACdhY,KAAAiY,qBAAsB,EACtBjY,KAAA2D,IAAW,KACX3D,KAAAsE,OAAS,gBACTtE,KAAAgZ,SAAU,EACVhZ,KAAAsb,UAAW,EAEVtb,KAAAuY,eAAiB,IAAIC,EAAAA,aAE/BxY,KAAA0zB,eAAwB,GAIhB1zB,KAAA0Y,aAAc,EAEtB1Y,KAAA4Y,QAAkB,KAalB5Y,KAAA8Y,MAAa,UAZbjS,OAAAC,eACI2sB,EAAA7vB,UAAA,SAAM,KADV,WAEI,OAAO5D,KAAK4Y,aAGhB,SAAW7Q,GACP/H,KAAK4Y,QAAU7Q,EAEX/H,KAAK0Y,aACL1Y,KAAKiZ,2CAIbpS,OAAAC,eACI2sB,EAAA7vB,UAAA,OAAI,KADR,WAEI,OAAO5D,KAAK8Y,WAGhB,SAAS/Q,GAAT,IAAAoE,EAAAnM,KACIA,KAAK8Y,MAAQ/Q,EAET/H,KAAKgY,aAA4B,MAAbhY,KAAKU,MAAgBV,KAAKU,KAAKsK,OAAS,IAAMhL,KAAKU,KAAK+R,MAAI,SAACmK,GAAC,IAAAhN,EAAI,OAAmB,QAAnBA,EAAAzD,EAAKunB,sBAAc,IAAA9jB,OAAA,EAAAA,EAAEV,QAAQ0N,EAAEtD,MAAO,MAC5HtZ,KAAKqZ,WAAW,CAACrZ,KAAKU,KAAK,GAAG4Y,KAE9BtZ,KAAKiY,qBACLjY,KAAK+Y,iBAA+B,MAAb/Y,KAAKU,MAAoC,GAApBV,KAAKU,KAAKsK,yCAK9DyoB,EAAA7vB,UAAAmR,SAAA,WACI/U,KAAKa,MAAQb,KAAK8X,YAAY/L,QAAQ,KAAM,IAC5C/L,KAAKiZ,WAGTwa,EAAA7vB,UAAAyV,WAAA,SAAWtR,GACP/H,KAAK0zB,eAAiB3rB,EACtB/H,KAAKqe,iBAGToV,EAAA7vB,UAAAqV,QAAA,WAAA,IAAA9M,EAAAnM,KACIA,KAAK0Y,aAAc,EAEH,MAAZ1Y,KAAK2D,KAA+B,MAAf3D,KAAKwP,QAAkBxP,KAAKwP,OAAOxD,cAAckD,QAAQ,cAAgB,IAGlGlP,KAAKgZ,SAAU,EACfhZ,KAAKU,KAAO,GAEZV,KAAK+wB,kBAAkB3kB,IAAIpM,KAAK2D,IAAK3D,KAAKsE,OAAQtE,KAAKwP,QAAQsB,WAAS,SAACxE,GACjEA,EAAE3L,UACFwL,EAAKzL,KAAO4L,EAAE5L,MACTyL,EAAKunB,gBAAkB,IAAI1oB,OAAS,GAAGmB,EAAKkS,iBAGrDlS,EAAK6M,SAAU,OAIvBya,EAAA7vB,UAAAya,cAAA,WAAA,IAAAlS,EAAAnM,KACyB,MAAjBA,KAAK+a,UACL/a,KAAK+a,SAAS/a,KAAK0zB,gBAEI,MAAvB1zB,KAAKuY,gBACLvY,KAAKuY,eAAeyC,KAAkB,MAAbhb,KAAKU,KAAe,KAAOV,KAAKU,KAAK2S,QAAM,SAAC/G,GAAC,IAAAsD,EAAI,OAAmB,QAAnBA,EAAAzD,EAAKunB,sBAAc,IAAA9jB,OAAA,EAAAA,EAAEV,QAAQ5C,EAAEgN,MAAO,OAGxHma,EAAA7vB,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpBuY,EAAA7vB,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAKob,UAAYF,GAGrBuY,EAAA7vB,UAAAmV,iBAAA,SAAkBsC,GACdrb,KAAKsb,YAAWtb,KAAKiY,qBAAqC,MAAbjY,KAAKU,MAAoC,GAApBV,KAAKU,KAAKsK,SAAsBqQ,6BA3GzGlG,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,oBACVpC,SAAA,qkBAEAmG,UAAW,CAAC,CACRC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAA8X,MAC9B7X,OAAO,+VATNzQ,4CAcJsM,EAAAA,oBACAA,EAAAA,wBACAA,EAAAA,2BACAA,EAAAA,mCACAA,EAAAA,mBACAA,EAAAA,sBACAA,EAAAA,uBACAA,EAAAA,wBACAA,EAAAA,8BAEAoE,EAAAA,uBASApE,EAAAA,oBAaAA,EAAAA,2BC5CL,SAAAkc,IAca3zB,KAAAsb,UAAoB,EACpBtb,KAAA+D,UAAoB,EACpB/D,KAAA4zB,mBAA+B,CAACC,EAAAA,OAE/B7zB,KAAAitB,OAAS,IAAIzU,EAAAA,aAEvBxY,KAAA8zB,OAAmB,UAInBH,EAAA/vB,UAAAqS,IAAA,SAAI6Z,OACMjQ,EAAQiQ,EAAMjQ,MACd9X,EAAQ+nB,EAAM/nB,OAEfA,GAAS,IAAIyS,QAAQxa,KAAK8zB,OAAO7oB,KAAKlD,EAAMyS,QAC7CqF,IAAOA,EAAM9X,MAAQ,IAEzB/H,KAAKqZ,WAAWrZ,KAAK8zB,SAGzBH,EAAA/vB,UAAAoS,OAAA,SAAOpR,GACCA,GAAS,GAAG5E,KAAK8zB,OAAO5W,OAAOtY,EAAO,GAC1C5E,KAAKqZ,WAAWrZ,KAAK8zB,SAIzBH,EAAA/vB,UAAA2W,OAAA,WACIva,KAAKitB,OAAOjS,KAAKhb,KAAK8zB,SAG1BH,EAAA/vB,UAAAya,cAAA,WACyB,MAAjBre,KAAK+a,UACL/a,KAAK+a,SAAS/a,KAAK8zB,SAG3BH,EAAA/vB,UAAAyV,WAAA,SAAW0a,GACP/zB,KAAK8zB,OAASC,EACd/zB,KAAKqe,iBAGTsV,EAAA/vB,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpByY,EAAA/vB,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAKob,UAAYF,GAGrByY,EAAA/vB,UAAAmV,iBAAA,SAAkBsC,GACdrb,KAAKsb,SAAWD,6BA/DvBlG,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,aACVpC,SAAA,gnBACAmG,UAAU,CACN,CACIC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAgY,MAC9B/X,OAAO,8CAMdnE,EAAAA,wBACAA,EAAAA,wBACAA,EAAAA,sBAGAoE,EAAAA,4BCqCD,SAAAmY,EAAmB/Q,EACCxN,EACAnK,EACA6X,EACAxM,EACA6M,EACAC,GANDzjB,KAAAijB,UAAAA,EACCjjB,KAAAyV,SAAAA,EACAzV,KAAAsL,QAAAA,EACAtL,KAAAmjB,mBAAAA,EACAnjB,KAAA2W,cAAAA,EACA3W,KAAAwjB,UAAAA,EACAxjB,KAAAyjB,SAAAA,EAlDXzjB,KAAAi0B,QAAkB,EAClBj0B,KAAAk0B,QAAkB,KAClBl0B,KAAAY,SAAkB,GACnBZ,KAAAm0B,QAAe,GAWdn0B,KAAAo0B,UAAiB,GACjBp0B,KAAAq0B,WAAqB,GACrBr0B,KAAAs0B,SAAmB,QAEnBt0B,KAAAu0B,QAAe,KACfv0B,KAAAw0B,WAAqB,UACrBx0B,KAAAy0B,iBAA2B,EAE3Bz0B,KAAA00B,cAAqB,KACrB10B,KAAA20B,iBAA2B,gBAE3B30B,KAAA40B,gBAAuB,KACvB50B,KAAA60B,sBAAgC,MAChC70B,KAAA80B,uBAAiC,mBACjC90B,KAAA+0B,yBAAmC,SACnC/0B,KAAAg1B,2BAAqC,EAErCh1B,KAAAi1B,eAAsB,KACtBj1B,KAAAk1B,oBAA8B,KAC9Bl1B,KAAAm1B,gBAA0B,yBAE1Bn1B,KAAAo1B,yBAAmC,EAEnCp1B,KAAAq1B,YAAmB,KAElBr1B,KAAAs1B,kBAAoB,IAAI9c,EAAAA,aACxBxY,KAAAu1B,qBAAuB,IAAI/c,EAAAA,oBAnCrC3R,OAAAC,eAAaktB,EAAApwB,UAAA,SAAM,KAAnB,WAAwB,OAAO5D,KAAKm0B,aACpC,SAAWpsB,GACP/H,KAAKm0B,QAAUpsB,EACf/H,KAAKijB,UAAU7d,OAASpF,KAAKw1B,OAEzBx1B,KAAKyV,SAASY,OAAS,GAAKrW,KAAKo1B,yBACjCp1B,KAAK2W,cAAcP,2DAyC3B4d,EAAApwB,UAAAmR,SAAA,WAeI,GAbA/U,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,MAAQ9f,KAAKijB,UAAU5d,OAAO/E,IAE/EN,KAAKijB,UAAU5d,OAAO7E,SACtBR,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,WAEzD9f,KAAKijB,UAAU7d,OAASpF,KAAKw1B,OAC7Bx1B,KAAKijB,UAAUrd,YAAc5F,KAAKq1B,YAEmB,MAAjD3uB,aAAaC,QAAQ3G,KAAKijB,UAAUhe,UACpCjF,KAAKsL,QAAQG,cAAczL,KAAKs0B,UAE/Bt0B,KAAKy1B,gBAEN/nB,SAAS9D,KAAKkM,UAAU9K,OAAS,EAAE,KAC/B5K,EAAQsN,SAAS9D,KAAKkM,UAAU,GAEhCpI,SAAS9D,KAAKkM,UAAU,GAAG5G,QAAQ,UAAY,GAAoC,MAA/BlP,KAAKijB,UAAU5d,OAAOjF,QAC1EA,EAAQ,IAAMJ,KAAKijB,UAAU5d,OAAOjF,MAAQ,UAEhDJ,KAAK2W,cAAcjB,SAAStV,KAIpC4zB,EAAApwB,UAAA8xB,oBAAA,WACI11B,KAAKi0B,QAAUj0B,KAAKi0B,QAGxBD,EAAApwB,UAAA+xB,qBAAA,WACI31B,KAAK41B,OAAOC,eAGhB7B,EAAApwB,UAAA6xB,cAAA,WAAA,IAAAtpB,EAAAnM,KAC2D,MAAnD0G,aAAaC,QAAQ3G,KAAKijB,UAAU/d,aACpC2B,OAAOyT,OAAOta,KAAKyV,SAAUnC,KAAKoL,MAAMhY,aAAaC,QAAQ3G,KAAKijB,UAAU/d,cAEjD,MAA3BlF,KAAKyV,SAASqgB,WAA2C,MAAtB91B,KAAK00B,eAG5C10B,KAAKmjB,mBAAmB/W,IAAIpM,KAAK00B,cAAe10B,KAAK20B,kBAAkB7jB,WAAS,SAACxE,GACzEA,EAAE3L,UACFwL,EAAKsJ,SAASqgB,UAAYxpB,EAAE5L,KAAKo1B,UACjC3pB,EAAKsJ,SAASpE,QAAU/E,EAAE5L,KAAK2Q,QAC/BlF,EAAKsJ,SAASsgB,MAAQzpB,EAAE5L,KAAKq1B,MAC7B5pB,EAAKsJ,SAASugB,MAAQ1pB,EAAE5L,KAAKs1B,MAC7B7pB,EAAKsJ,SAASwgB,OAAS3pB,EAAE5L,KAAKu1B,OAC9B9pB,EAAKsJ,SAAS5D,UAAYvF,EAAE5L,KAAKmR,UACjC1F,EAAKsJ,SAASY,OAAS/J,EAAE5L,KAAK2V,OAC9BlK,EAAKsJ,SAASygB,QAAU5pB,EAAE5L,KAAKw1B,QAC/B/pB,EAAKsJ,SAAS0gB,aAAe7pB,EAAE5L,KAAKy1B,aACpChqB,EAAKsJ,SAAS2gB,OAAS9pB,EAAE5L,KAAK01B,OAC9BjqB,EAAKsJ,SAAS4gB,MAAQ/pB,EAAE5L,KAAK21B,MAC7BlqB,EAAKsJ,SAAS6gB,iBAAmBhqB,EAAE5L,KAAK41B,iBACxCnqB,EAAKsJ,SAAS8gB,mBAAqBjqB,EAAE5L,KAAK61B,mBAC1CpqB,EAAKsJ,SAASzP,SAAWsG,EAAE5L,KAAKsF,SAChCmG,EAAKsJ,SAASxP,WAAaqG,EAAE5L,KAAKuF,WAClCkG,EAAKsJ,SAAS+gB,IAAMlqB,EAAE5L,KAAK81B,IAC3BrqB,EAAKsJ,SAAS1F,iBAAmBzD,EAAE5L,KAAKqP,iBACxC5D,EAAKsJ,SAASghB,OAASnqB,EAAE5L,KAAK+1B,OAC9BtqB,EAAK+nB,QAAU5nB,EAAE5L,KAAK+1B,OAElBtqB,EAAKsJ,SAASxP,WAAWwM,MAAI,SAAC/C,GAAK,MAAW,mBAAXA,EAAEgnB,UACrCvqB,EAAKvL,SAASqK,KAAKkB,EAAKsJ,SAASxP,WAAW0P,MAAI,SAACjG,GAAK,MAAW,mBAAXA,EAAEgnB,SAA4BpI,OAE5D,MAAxBniB,EAAKsJ,SAASY,QACdlK,EAAKwK,cAAcP,+BAKnC4d,EAAApwB,UAAA+yB,yBAAA,SAAyB7G,GACrB9vB,KAAKs1B,kBAAkBta,KAAK8U,IAGhCkE,EAAApwB,UAAAgzB,4BAAA,SAA4B9G,GACxB9vB,KAAKu1B,qBAAqBva,KAAK8U,8BAvItC3a,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,YACVpC,SAAA,q0HAPKpQ,UACA2P,UAHA5G,EAAAA,cACA5C,UAGAmK,UAL4DiX,EAAAA,iBAAjDC,EAAAA,+CAef/U,EAAAA,uBACAA,EAAAA,wBACAA,EAAAA,sBAGAA,EAAAA,yBASAA,EAAAA,0BACAA,EAAAA,wBACAA,EAAAA,uBAEAA,EAAAA,0BACAA,EAAAA,+BACAA,EAAAA,6BAEAA,EAAAA,gCACAA,EAAAA,+BAEAA,EAAAA,qCACAA,EAAAA,sCACAA,EAAAA,wCACAA,EAAAA,yCACAA,EAAAA,8BAEAA,EAAAA,mCACAA,EAAAA,+BACAA,EAAAA,uCAEAA,EAAAA,2BAEAA,EAAAA,iCAEAoE,EAAAA,qCACAA,EAAAA,uBAEAyF,EAAAA,UAAS7Z,KAAA,CAAC,+BC/BX,SAAAovB,EAAoB9F,EAA4C+F,EAC5CngB,EAAwClB,EAAmCwN,EAC3EM,EAA0CjY,EAAyBkY,EAA8BC,GAFjGzjB,KAAA+wB,kBAAAA,EAA4C/wB,KAAA82B,gBAAAA,EAC5C92B,KAAA2W,cAAAA,EAAwC3W,KAAAyV,SAAAA,EAAmCzV,KAAAijB,UAAAA,EAC3EjjB,KAAAujB,YAAAA,EAA0CvjB,KAAAsL,QAAAA,EAAyBtL,KAAAwjB,UAAAA,EAA8BxjB,KAAAyjB,SAAAA,EAZ5GzjB,KAAA2D,IAAW,KACX3D,KAAAsE,OAAiB,UACjBtE,KAAAy0B,iBAA2B,EAC1Bz0B,KAAA+2B,cAAgB,IAAIve,EAAAA,aAE9BxY,KAAAgZ,SAAmB,EACnBhZ,KAAAud,KAAY,GACZvd,KAAAg3B,YAAsB,GACtBh3B,KAAAi3B,UAAoB,mBAOpBJ,EAAAjzB,UAAAmR,SAAA,WAAA,IAAA5I,EAAAnM,KACSA,KAAK82B,gBAAgBnoB,YAA0B,MAAZ3O,KAAK2D,MAG7C3D,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,MAAQ9f,KAAKijB,UAAU5d,OAAO/E,IACnFN,KAAKgZ,SAAU,EAEfhZ,KAAK+wB,kBACA3kB,IAAIpM,KAAK2D,IAAK3D,KAAKsE,QACnBwM,WAAS,SAACxE,GACHA,EAAE3L,UACFwL,EAAKoR,KAAOjR,EAAE5L,KACdyL,EAAK8W,UAAUtd,KAAO2G,EAAE5L,KACxByL,EAAK2qB,gBAAgB/nB,kBAAkB5C,EAAKb,QAAQ5G,KAEpDyH,EAAK+qB,gBAGT/qB,EAAK6M,SAAU,OAI3B6d,EAAAjzB,UAAAuzB,OAAA,SAAO9tB,EAAU+tB,GAIb,GAFA/tB,EAAE0mB,iBAEGqH,EAASC,QAAd,CAGA,IAAKD,EAASE,OACV,IAAK,IAAIhjB,EAAI,EAAGA,EAAItU,KAAKud,KAAKvS,OAAQsJ,IAClCtU,KAAKud,KAAKjJ,GAAGgjB,QAAS,EAE9BF,EAASE,QAAUF,EAASE,SAGhCT,EAAAjzB,UAAAqmB,OAAA,SAAO1M,GACHvd,KAAKi3B,UAAY1Z,EACjBvd,KAAKg3B,YAAc,GAEnBh3B,KAAKu3B,mBAGTV,EAAAjzB,UAAAszB,aAAA,WAAA,IAAA/qB,EAAAnM,KACQA,KAAKy0B,kBACLz0B,KAAKw3B,WAAWx3B,KAAKsL,QAAQ5G,KAE7B1E,KAAKsL,QAAQmsB,OAAO3mB,WAAS,SAACzH,GACtBA,aAAaquB,EAAAA,iBACbvrB,EAAKqrB,WAAWnuB,EAAE3E,UAKlCmyB,EAAAjzB,UAAA4zB,WAAA,SAAW9yB,OACHizB,EAAW33B,KAAKud,KAAK5H,MAAI,SAAC1B,GAAK,OAAAA,EAAE2jB,SAAWlzB,KAEhC,MAAZizB,IACA33B,KAAKi3B,UAAYU,EAASzjB,QAGlC2iB,EAAAjzB,UAAAi0B,cAAA,SAActa,GACVvd,KAAKg3B,YAAch3B,KAAKg3B,aAAezZ,EAAO,GAAKA,GAGvDsZ,EAAAjzB,UAAA2zB,gBAAA,WACIv3B,KAAKujB,YAAY5e,MAAQ,KACzB3E,KAAKujB,YAAY7e,IAAM,IAG3BmyB,EAAAjzB,UAAAk0B,cAAA,WACI93B,KAAK+2B,cAAc/b,QAGvB6b,EAAAjzB,UAAAm0B,cAAA,WACI/3B,KAAK2W,cAAcL,wCAjG1BnB,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,eACVpC,SAAA,usZAVKjK,UACA6C,UACAsH,UAEAX,UACA3P,UAFAsnB,SAGiBve,EAAAA,cAP2Cwe,EAAAA,iBAAjDC,EAAAA,4CAgBf/U,EAAAA,sBACAA,EAAAA,+BACAA,EAAAA,6BACAoE,EAAAA,4BC8BD,SAAAmc,EAAoBC,EACD5U,EAA2DnV,EAC1DyI,EAAyCrL,EAAyB0X,EACnEvN,EAAmCwN,EAAsC9U,EACxEqV,EAA8BC,GAJ9BzjB,KAAAi4B,kBAAAA,EACDj4B,KAAAqjB,uBAAAA,EAA2DrjB,KAAAkO,aAAAA,EAC1DlO,KAAA2W,cAAAA,EAAyC3W,KAAAsL,QAAAA,EAAyBtL,KAAAgjB,QAAAA,EACnEhjB,KAAAyV,SAAAA,EAAmCzV,KAAAijB,UAAAA,EAAsCjjB,KAAAmO,OAAAA,EACxEnO,KAAAwjB,UAAAA,EAA8BxjB,KAAAyjB,SAAAA,EAlCzCzjB,KAAAi0B,QAAkB,EAClBj0B,KAAAo0B,UAAiB,GACjBp0B,KAAAw1B,OAAc,GACdx1B,KAAA40B,gBAAuB,KACvB50B,KAAA60B,sBAAgC,MAChC70B,KAAA80B,uBAAiC,mBACjC90B,KAAA+0B,yBAAmC,SACnC/0B,KAAAg1B,2BAAqC,EACrCh1B,KAAAi1B,eAAsB,KACtBj1B,KAAAk1B,oBAA8B,KAC9Bl1B,KAAAm1B,gBAA0B,yBAC1Bn1B,KAAAq0B,WAAqB,GACrBr0B,KAAAo1B,yBAAmC,EAClCp1B,KAAA+2B,cAAgB,IAAIve,EAAAA,aACpBxY,KAAAs1B,kBAAoB,IAAI9c,EAAAA,aACxBxY,KAAAu1B,qBAAuB,IAAI/c,EAAAA,aAErCxY,KAAAk4B,SAAgB,KAChBl4B,KAAAgZ,SAAmB,EACnBhZ,KAAAm4B,WAAqB,EACrBn4B,KAAAo4B,cAAuC,IAAIC,GAE3Cr4B,KAAAQ,QAAe,CACX83B,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,aAAa,EACbC,YAAY,UAShBV,EAAAp0B,UAAAmR,SAAA,WACI/U,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,MAAQ9f,KAAKijB,UAAU5d,OAAO/E,IAE/EN,KAAKijB,UAAU5d,OAAO7E,SACtBR,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,WAEzD9f,KAAKm4B,UAAYn4B,KAAKijB,UAAU5d,OAAOpF,WACvCD,KAAK24B,oBAGTX,EAAAp0B,UAAAg1B,WAAA,SAAWC,GAAX,IAAA1sB,EAAAnM,KACIA,KAAKqjB,uBAAuB1R,cAAc3R,KAAKyV,SAASsgB,MAAO8C,EAAQvf,IAAIxI,WAAS,SAACxB,GAC7EA,EAAI3O,SAEJ+M,SAAS9D,KAAKkvB,aAAa,UAAW,QAEtC3sB,EAAKsJ,SAAS1P,WAAa,GAC3BoG,EAAKsJ,SAAS5D,UAAYgnB,EAAQvf,GAClCnN,EAAKsJ,SAASygB,QAAU2C,EAAQ/e,KAChC3N,EAAKsJ,SAASY,OAASwiB,EAAQxiB,OAC/BlK,EAAKwK,cAAcP,0BAEnB1P,aAAaqyB,WAAW,aACxBryB,aAAaK,QAAQoF,EAAK8W,UAAU/d,WAAYoO,KAAKC,UAAUpH,EAAKsJ,WACpEtJ,EAAKb,QAAQG,cAAc,IAAIhC,MAAI,SAAC6C,GAAK,OAAAqB,SAASoE,aAE/C5F,EAAKkX,uBAAuBzU,YACtC,SAAEoqB,GAAO,OAAA7sB,EAAKkX,uBAAuBzU,aAG1CopB,EAAAp0B,UAAAq1B,YAAA,SAAYC,GACRl5B,KAAKi4B,kBAAkBp0B,IAAIq1B,IAG/BlB,EAAAp0B,UAAA8R,SAAA,SAAStV,GAELJ,KAAK2W,cAAcjB,SAAStV,IAGhC43B,EAAAp0B,UAAAu1B,WAAA,WACIn5B,KAAK2W,cAAcJ,gBAGvByhB,EAAAp0B,UAAAw1B,eAAA,WAAA,IAAAjtB,EAAAnM,KACIA,KAAKkV,QAEgB,MAAjBlV,KAAKk4B,WAGTl4B,KAAKk4B,SAAWl4B,KAAKmO,OAAOuC,KAAK1Q,KAAKi1B,eAAgB,CAClDrkB,cAAc,EACd5O,MAAOhC,KAAKk1B,oBAAsB,OAGtCl1B,KAAKk4B,SAASrN,gBAAgB/Z,WAAS,SAACxE,GAC/BH,EAAK6M,SAAqB,UAAT1M,EAAErF,KAA4B,OAATqF,EAAErF,KAAyB,MAATqF,EAAErF,KAC3DkF,EAAK+rB,SAAShjB,WAGtBlV,KAAKk4B,SAASrnB,cAAcC,WAAS,SAACxE,GAAOH,EAAK+rB,SAAW,UAGjEF,EAAAp0B,UAAA8M,KAAA,SAAK2oB,GACDr5B,KAAKQ,QAAQ83B,QAAyB,WAAfe,EACvBr5B,KAAKQ,QAAQ+3B,KAAsB,QAAfc,EACpBr5B,KAAKQ,QAAQg4B,OAAwB,UAAfa,EACtBr5B,KAAKQ,QAAQi4B,YAA6B,eAAfY,EAC3Br5B,KAAKQ,QAAQk4B,WAA4B,cAAfW,GAG9BrB,EAAAp0B,UAAAsR,MAAA,WACIlV,KAAKQ,QAAQ83B,SAAU,EACvBt4B,KAAKQ,QAAQ+3B,MAAO,EACpBv4B,KAAKQ,QAAQg4B,QAAS,EACtBx4B,KAAKQ,QAAQi4B,aAAc,EAC3Bz4B,KAAKQ,QAAQk4B,YAAa,GAG9BV,EAAAp0B,UAAAiyB,YAAA,WACI71B,KAAKi0B,QAAUj0B,KAAKi0B,OACpBj0B,KAAK+2B,cAAc/b,QAGvBgd,EAAAp0B,UAAA+0B,iBAAA,WAAA,IAAAxsB,EAAAnM,KACSA,KAAKqjB,uBAAuB1U,YAAsC,MAAxB3O,KAAK40B,iBAGpD50B,KAAKkO,aAAa9B,IAAIpM,KAAK40B,gBAAiB50B,KAAK60B,sBAAuB,MAAM/jB,WAAS,SAACxE,GAChFA,EAAE3L,UACFwL,EAAKisB,cAAclyB,MAAQoG,EAAE5L,KAAKwF,MAClCiG,EAAKisB,cAAcjyB,MAAQmG,EAAE5L,KAAKyF,MAE9BgG,EAAK6oB,2BACL7oB,EAAKmtB,sBAETntB,EAAKmpB,kBAAkBta,KAAK7O,EAAKisB,oBAK7CJ,EAAAp0B,UAAA01B,oBAAA,WAAA,IAAAntB,EAAAnM,KACSA,KAAKqjB,uBAAuB1U,YAAsC,MAAxB3O,KAAK40B,iBAGpD50B,KAAKkO,aAAa9B,IAAIpM,KAAK40B,gBAAiB50B,KAAK+0B,0BAA0BjkB,WAAS,SAACxE,IAClE,GAAXA,EAAE5L,KACFyL,EAAKyC,SAEAzC,EAAKisB,cAAclyB,OAASoG,EAAE5L,KACnCmO,YAAU,WAAS1C,EAAKmtB,wBAA0B,MAEjDntB,EAAKwsB,mBAEVxsB,EAAKopB,qBAAqBva,KAAInU,OAAAyT,OAAAzT,OAAAyT,OAAA,GAAKnO,EAAKisB,eAAa,CAAEmB,YAAajtB,EAAE5L,YAI9Es3B,EAAAp0B,UAAA41B,sBAAA,SAAsBC,EAAMxP,EAAQjU,GAApC,IAAA7J,EAAAnM,KACoC,GAA5BA,KAAKo4B,cAAclyB,OAEvBlG,KAAKkO,aAAapB,KAAK9M,KAAK40B,gBAAiB,CAAEtb,GAAI,uCAAwCzG,OAAQoX,EAAQyP,QAASD,EAAME,SAAU3jB,GAAUhW,KAAK80B,wBACjIhkB,WAAS,SAACxE,GAAK,OAAAH,EAAKisB,cAAclyB,MAAQ,MAGhE8xB,EAAAp0B,UAAA+kB,SAAA,SAASjkB,GACL1E,KAAKsL,QAAQqd,SAAS,CAACjkB,EAAIqH,QAAQ,KAAM,OAG7CisB,EAAAp0B,UAAAgL,OAAA,WAAA,IAAAzC,EAAAnM,KACIA,KAAKgjB,QAAQZ,QAAQ,uBAAuBtR,WAAS,SAACxE,GAC9CA,EAAEzK,QAAUuE,GAAkBlD,KAC9BiJ,EAAKkX,uBAAuBzU,uCA7K3CuG,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,cACVpC,SAAA,mo9BAVK/O,UACA2H,UACA7C,UACAmK,UANAvH,EAAAA,cADAiU,UASArN,UACA3P,UARA4P,EAAAA,iBAHgD2X,EAAAA,iBAAWC,EAAAA,+CAmB/D/U,EAAAA,yBACAA,EAAAA,sBACAA,EAAAA,+BACAA,EAAAA,qCACAA,EAAAA,sCACAA,EAAAA,wCACAA,EAAAA,yCACAA,EAAAA,8BACAA,EAAAA,mCACAA,EAAAA,+BACAA,EAAAA,0BACAA,EAAAA,uCACAA,EAAAA,6BACAoE,EAAAA,kCACAA,EAAAA,qCACAA,EAAAA,4BCVD,SAAA+d,EAAoB7I,EAA4C+F,EACpDvT,EAA0CjY,EAC3CmK,EAAmCwN,EAClCO,EAA8BC,GAHtBzjB,KAAA+wB,kBAAAA,EAA4C/wB,KAAA82B,gBAAAA,EACpD92B,KAAAujB,YAAAA,EAA0CvjB,KAAAsL,QAAAA,EAC3CtL,KAAAyV,SAAAA,EAAmCzV,KAAAijB,UAAAA,EAClCjjB,KAAAwjB,UAAAA,EAA8BxjB,KAAAyjB,SAAAA,EAZjCzjB,KAAA2D,IAAW,KACX3D,KAAAsE,OAAiB,UAChBtE,KAAA+2B,cAAgB,IAAIve,EAAAA,aAE9BxY,KAAAgZ,SAAmB,EACnBhZ,KAAAud,KAAY,GACZvd,KAAAg3B,YAAsB,GACtBh3B,KAAAi3B,UAAoB,mBAOpB2C,EAAAh2B,UAAAmR,SAAA,WAAA,IAAA5I,EAAAnM,KACSA,KAAK82B,gBAAgBnoB,YAA0B,MAAZ3O,KAAK2D,MAG7C3D,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,MAAQ9f,KAAKijB,UAAU5d,OAAO/E,IACnFN,KAAKgZ,SAAU,EAEfhZ,KAAK+wB,kBACA3kB,IAAIpM,KAAK2D,IAAK3D,KAAKsE,QACnBwM,WAAS,SAACxE,GACHA,EAAE3L,UACFwL,EAAKoR,KAAOjR,EAAE5L,KACdyL,EAAK8W,UAAUtd,KAAO2G,EAAE5L,KACxByL,EAAK2qB,gBAAgB/nB,kBAAkB5C,EAAKb,QAAQ5G,MAGxDyH,EAAK6M,SAAU,OAI3B4gB,EAAAh2B,UAAAuzB,OAAA,SAAO9tB,EAAU+tB,GAIb,GAFA/tB,EAAE0mB,iBAEGqH,EAASC,QAAd,CAGA,IAAKD,EAASE,OACV,IAAK,IAAIhjB,EAAI,EAAGA,EAAItU,KAAKud,KAAKvS,OAAQsJ,IAClCtU,KAAKud,KAAKjJ,GAAGgjB,QAAS,EAE9BF,EAASE,QAAUF,EAASE,SAGhCsC,EAAAh2B,UAAAqmB,OAAA,SAAO1M,GACHvd,KAAKi3B,UAAY1Z,EACjBvd,KAAKg3B,YAAc,GAEnBh3B,KAAKu3B,mBAGTqC,EAAAh2B,UAAAi0B,cAAA,SAActa,GACVvd,KAAKg3B,YAAch3B,KAAKg3B,aAAezZ,EAAO,GAAKA,GAGvDqc,EAAAh2B,UAAA2zB,gBAAA,WACIv3B,KAAKujB,YAAY5e,MAAQ,KACzB3E,KAAKujB,YAAY7e,IAAM,IAG3Bk1B,EAAAh2B,UAAAk0B,cAAA,WACI93B,KAAK+2B,cAAc/b,kCAxE1B7F,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,eACVpC,SAAA,yhEATKjK,UACA6C,UACAse,SAGAve,EAAAA,cAFA4G,UACA3P,UAL4DunB,EAAAA,iBAAjDC,EAAAA,4CAef/U,EAAAA,sBACAA,EAAAA,6BACAoE,EAAAA,iBCfL,WAea7b,KAAA65B,SAAmB,EACnB75B,KAAA85B,KAAe,gBACf95B,KAAA4vB,MAAgB,gCAjB5Bza,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,eACVpC,SAAU,4LAMD,2JAORqC,EAAAA,oBACAA,EAAAA,qBACAA,EAAAA,2BCsBD,SAAAsiB,EAAoB5W,EAAqE6W,EAAiCnlB,GAAtG7U,KAAAmjB,mBAAAA,EAAqEnjB,KAAAg6B,KAAAA,EAAiCh6B,KAAA6U,KAAAA,EArBjH7U,KAAAi6B,WAAqB,GACrBj6B,KAAAk6B,eAAyB,EACzBl6B,KAAA2D,IAAW,KACX3D,KAAAsE,OAAiB,KACjBtE,KAAA+D,SAAoB,KACpB/D,KAAAgZ,SAAmB,EACnBhZ,KAAAm6B,cAAwB,EACxBn6B,KAAA8jB,KAAY,KACZ9jB,KAAAo6B,WAAqB,SACrBp6B,KAAAq6B,YAAsB,WACtBr6B,KAAAs6B,YAAsB,SACtBt6B,KAAAY,SAAqB,GACrBZ,KAAAgC,MAAgB,KAEfhC,KAAAu6B,OAAS,IAAI/hB,EAAAA,aACbxY,KAAAw6B,UAAY,IAAIhiB,EAAAA,oBAQ1BuhB,EAAAn2B,UAAAmR,SAAA,WAAA,IAAA5I,EAAAnM,KAE2B,IAAnBA,KAAKi6B,YAAiC,MAAbj6B,KAAKg6B,MAAmC,MAAnBh6B,KAAKg6B,KAAKh2B,QACxDhE,KAAKi6B,WAAaj6B,KAAKg6B,KAAKh2B,OAEhB,MAAZhE,KAAK2D,KAA4B,MAAb3D,KAAKg6B,MAAiC,MAAjBh6B,KAAKg6B,KAAKr2B,MACnD3D,KAAK2D,IAAM3D,KAAKg6B,KAAKr2B,KAEP,MAAd3D,KAAKgC,OACLhC,KAAK6U,KAAK4lB,WAAWz6B,KAAKgC,MAAM8J,WAAWC,QAAQ,KAAM,IAAM,MAE9C,MAAjB/L,KAAK+D,UAAiC,MAAb/D,KAAKg6B,MAAsC,MAAtBh6B,KAAKg6B,KAAKj2B,WACxD/D,KAAK+D,SAAW/D,KAAKg6B,KAAKj2B,UAE9B/D,KAAK6U,KAAKgW,gBAAgB/Z,WAAS,SAAExE,IAC7BA,EAAEouB,SAAoB,SAATpuB,EAAErF,KAAoBkF,EAAK6M,SAAyB,MAAb7M,EAAK2X,OAAiB3X,EAAK2X,KAAKA,KAAK6W,OAA+B,IAApBxuB,EAAKmuB,aAAsBnuB,EAAKpI,UACpIoI,EAAKyuB,aAIjBb,EAAAn2B,UAAAg3B,OAAA,WAAA,IAAAzuB,EAAAnM,KACI,GAAIA,KAAKu6B,OAAOnQ,UAAUpf,OAAS,EAC/BhL,KAAKu6B,OAAOnxB,WADhB,CAKApJ,KAAKY,SAAW,GAEA,MAAZZ,KAAK2D,KAAsC,IAAvB3D,KAAK2D,IAAImI,YAC7B9L,KAAKY,SAASqK,KAAK,yBAEnBoe,EAAcrpB,KAAK2E,MAAmB,YACtC2kB,EAAYtpB,KAAK2E,MAAiB,UACtC,GAAmB,MAAf0kB,GAAoC,MAAbC,GAAqB,IAAIrZ,KAAKoZ,GAAe,IAAIpZ,KAAKqZ,GAC7EtpB,KAAKY,SAASqK,KAAK,6BADvB,KAKIse,EAAavpB,KAAK2E,MAAkB,WACpC6kB,EAAUxpB,KAAK2E,MAAe,QAChB,MAAd4kB,GAAiC,MAAXC,GAAmB,IAAIvZ,KAAKsZ,GAAc,IAAItZ,KAAKuZ,GACzExpB,KAAKY,SAASqK,KAAK,sBAInBjL,KAAKY,SAASoK,OAAS,IAG3BhL,KAAKgZ,SAAU,EAEfhZ,KAAKmjB,mBACArW,KAAK9M,KAAK2D,IAAK3D,KAAK2E,MAAO3E,KAAKsE,QAChCwM,WAAS,SAACxE,GAEHA,EAAE3L,SACFwL,EAAK6tB,KAAKv2B,YAAcT,EAAgBK,KACxC8I,EAAK6tB,KAAKt5B,KAAOyL,EAAKxH,MACtBwH,EAAK0I,KAAKK,MAAM/I,EAAK6tB,MAEjB7tB,EAAKquB,UAAUpQ,UAAUpf,OAAS,GAClCmB,EAAKquB,UAAUpxB,QAGlB+C,EAAKvL,SAAW0L,EAAE1L,SAEvBuL,EAAK6M,SAAU,SAI3B+gB,EAAAn2B,UAAAsR,MAAA,WACIlV,KAAKY,SAAW,GAChBZ,KAAKgZ,SAAU,EACfhZ,KAAK6U,KAAKK,MAAMlV,KAAKg6B,OAGzBD,EAAAn2B,UAAAyV,WAAA,SAAWyB,GACP9a,KAAK2E,MAAQmW,GAGjBif,EAAAn2B,UAAAqX,iBAAA,SAAiBC,GACblb,KAAK+a,SAAWG,GAGpB6e,EAAAn2B,UAAAuX,kBAAA,SAAkBD,GACdlb,KAAKob,UAAYF,GAGrB6e,EAAAn2B,UAAAmV,iBAAA,SAAkBsC,+BA3HrBlG,EAAAA,UAAS1N,KAAA,CAAC,CACP+P,SAAU,aACVpC,SAAA,suCACAmG,UAAW,CACP,CACIC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAoe,MAC9Bne,OAAO,kDAXVzQ,UACA3H,EAAiBqf,WAAA,CAAA,CAAA5L,KAqCoCtP,EAAAA,OAAMF,KAAA,CAACqb,EAAAA,0BAvC3CzN,EAAAA,qDAkBrBoC,EAAAA,6BACAA,EAAAA,mBACAA,EAAAA,sBACAA,EAAAA,wBACAA,EAAAA,uBACAA,EAAAA,4BACAA,EAAAA,oBACAA,EAAAA,0BACAA,EAAAA,2BACAA,EAAAA,2BACAA,EAAAA,wBACAA,EAAAA,qBACAA,EAAAA,sBAEAoE,EAAAA,0BACAA,EAAAA,4BCGJ,SAAAgf,EAAoBvvB,EACT6C,EACAD,EACArG,EACDob,EACCO,EAA8BC,GALzC,IAAAtX,EAAAnM,KAAoBA,KAAAsL,QAAAA,EACTtL,KAAAmO,OAAAA,EACAnO,KAAAkO,aAAAA,EACAlO,KAAA6H,WAAAA,EACD7H,KAAAijB,UAAAA,EACCjjB,KAAAwjB,UAAAA,EAA8BxjB,KAAAyjB,SAAAA,EA1BhCzjB,KAAA86B,UAAY,EAGZ96B,KAAAkkB,QAAkB,KAClBlkB,KAAAiqB,OAAc,GACdjqB,KAAA+6B,aAAuB,EAWhC/6B,KAAAgZ,SAAU,EACVhZ,KAAAg7B,SAAgB,KAChBh7B,KAAAi7B,iBAAkB,EAClBj7B,KAAAk7B,eAAgB,EAQf5vB,EAAQmsB,OAAO3mB,WAAS,SAACzH,GACXA,aAAaquB,EAAAA,iBAAmBruB,aAAa8xB,EAAAA,iBACzDtsB,YAAU,WAAO,OAAA1C,EAAK6M,SAAU,IAAM,GAElCnK,YAAU,WACd1C,EAAK6M,SAAU,EACX3P,aAAa+xB,EAAAA,gBAChBjvB,EAAK8uB,kBAAoB9uB,EAAK8W,UAAUrd,aAAmC,KAApBuG,EAAKb,QAAQ5G,IACpEyH,EAAKkvB,eAEJ,aA7BLx0B,OAAAC,eAAI+zB,EAAAj3B,UAAA,YAAS,KAAb,WACC,OAAO5D,KAAKs7B,gBAGb,SAAkCvzB,GACjC/H,KAAKs7B,WAAavzB,EAAMgE,QAAQ,MAAO,YAAYA,QAAQ,MAAO,8CA4BnE8uB,EAAAj3B,UAAAmR,SAAA,WACC/U,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,MAAQ9f,KAAKijB,UAAU5d,OAAO/E,IAEzEN,KAAKijB,UAAU5d,OAAO7E,SACtBR,KAAKwjB,UAAUqE,SAAS7nB,KAAKyjB,SAAS3D,cAAe,YAGhE+a,EAAAj3B,UAAA23B,OAAA,WACCv7B,KAAKsL,QAAQG,cAAczL,KAAKkkB,UAGjC2W,EAAAj3B,UAAAy3B,UAAA,WAAA,IAAAlvB,EAAAnM,KACMA,KAAKi7B,kBAEVj7B,KAAKgZ,SAAU,EACfhZ,KAAKkO,aAAa9B,IAAIpM,KAAKijB,UAAUrd,YAAa,WAAY,OAAO5F,KAAKsL,QAAQ5G,KAAKoM,WAAS,SAACxE,GAChGH,EAAK6M,SAAU,EACX1M,EAAE3L,UAASwL,EAAK6uB,UAAY1uB,EAAE5L,MAAQ,IAAI4Y,SAIhDuhB,EAAAj3B,UAAA43B,aAAA,WAAA,IAAArvB,EAAAnM,KACKA,KAAKg7B,UACRh7B,KAAKgZ,SAAU,EACfhZ,KAAKkO,aAAanB,OAAO/M,KAAKijB,UAAUrd,YAAa5F,KAAKg7B,UAAUlqB,WAAS,SAACxE,GAC7EH,EAAK6M,SAAU,EACX1M,EAAE3L,UAASwL,EAAK6uB,SAAW,WAGhCh7B,KAAKgZ,SAAU,EACfhZ,KAAKy7B,kBAAkB3qB,WAAS,SAAExE,GACjCH,EAAK6M,SAAU,EACX1M,GAAKA,EAAE7I,aAAeT,EAAgBK,MAAM8I,EAAKkvB,iBAKhDR,EAAAj3B,UAAA63B,gBAAA,WAAA,IAAAtvB,EAAAnM,KACHg6B,EAAO,IAAIx2B,EACfw2B,EAAKr2B,IAAM3D,KAAKijB,UAAUrd,YAC1Bo0B,EAAKn2B,IAAIpB,EAAeG,IAAK,CAC5B0W,GAAItZ,KAAKg7B,SACTU,IAAK17B,KAAKsL,QAAQ5G,IAClBsP,OAAWhU,KAAK6H,WAAWb,UAAUhH,KAAKijB,UAAUnP,YAAYE,QAAO,MAAMhU,KAAK6H,WAAWb,UAAUhH,KAAK0jB,iBAGzGlB,EAAMxiB,KAAKmO,OAAOuC,KAAKirB,GAAsB,CACvCj7B,KAAMs5B,EACfppB,cAAc,EACd5O,MAAO,UAQF,OALNwgB,EAAIqI,gBAAgB/Z,WAAS,SAAExE,GAChBH,EAAK6M,SAAqB,UAAT1M,EAAErF,KAA4B,OAATqF,EAAErF,KAAyB,MAATqF,EAAErF,KAC3Dub,EAAItN,WAGLsN,EAAI3R,yCAzGlBsE,EAAAA,UAAS1N,KAAA,CAAC,CACV+P,SAAU,eACVpC,SAAA,u/JAXQrH,EAAAA,cAIA6G,EAAAA,iBAFAzJ,UACA9E,UAFArB,UAFsCunB,EAAAA,iBAAZC,EAAAA,kDAiBjC/U,EAAAA,oBACAA,EAAAA,2BACAA,EAAAA,uBACAA,EAAAA,sBACAA,EAAAA,2BACAA,EAAAA,yBAOAA,EAAAA,MAAKhQ,KAAA,CAAC,uBAsGP,SAA4CuyB,GAAAh6B,KAAAg6B,KAAAA,EAD5Ch6B,KAAA2E,MAAa,GAEZ3E,KAAK2E,MAAQkC,OAAOyT,OAAO,GAAI0f,EAAKt5B,MACpCV,KAAK2E,MAAM2U,GAAKtZ,KAAK2E,MAAM2U,IAAM,6DAflCnE,EAAAA,UAAS1N,KAAA,CAAC,CACV2N,SAAU,yZAjHF5R,EAAiBqf,WAAA,CAAA,CAAA5L,KA6HZtP,EAAAA,OAAMF,KAAA,CAACqb,EAAAA,wCCnGjB,SAAA8Y,EAAuCC,EAAiDpR,GAAjDzqB,KAAA67B,SAAAA,EAAiD77B,KAAAyqB,QAAAA,EAHxFzqB,KAAA87B,WAAU,aACV97B,KAAA+7B,UAAS,SAAI9xB,YAIb2xB,EAAAh4B,UAAA4qB,YAAA,SAAYwN,GACRh8B,KAAKi8B,WAAU,QAEejvB,IAA1BhN,KAAKk8B,kBACLl8B,KAAKk8B,iBAAiBlc,OAAOhgB,KAAK4f,aAAa7X,QAGvD6zB,EAAAh4B,UAAAyV,WAAA,SAAWtR,GACP/H,KAAKi8B,gBAECE,EAA2B,MAATp0B,EAAgB,GAAKA,EAC7C/H,KAAK67B,SAASO,YAAYp8B,KAAK4f,aAAc,QAASuc,QAExBnvB,IAA1BhN,KAAKk8B,kBACLl8B,KAAKk8B,iBAAiBlc,OAAOjY,IAIrC6zB,EAAAh4B,UAAAqX,iBAAA,SAAiBC,GAAiClb,KAAK+7B,UAAY7gB,GAEnE0gB,EAAAh4B,UAAAuX,kBAAA,SAAkBD,GAAuBlb,KAAK87B,WAAa5gB,GAE3D0gB,EAAAh4B,UAAAmV,iBAAA,SAAiBsC,GACbrb,KAAK67B,SAASO,YAAYp8B,KAAKyqB,QAAQ3K,cAAe,WAAYzE,IAGtEugB,EAAAh4B,UAAAy4B,QAAA,SAAQt0B,GACJ/H,KAAKi8B,iBAEyBjvB,IAA1BhN,KAAKk8B,mBACLl8B,KAAKk8B,iBAAiBlc,OAAOjY,GAE7BA,EAAQ/H,KAAK4f,aAAa7X,MAEtB/H,KAAKs8B,YAAcv0B,IACnB/H,KAAKs8B,UAAYv0B,EACjB/H,KAAK+7B,UAAUh0B,MAKnB6zB,EAAAh4B,UAAAq4B,UAAA,SAAU/wB,GAQd,QARc,IAAAA,IAAAA,GAAA,GACTlL,KAAK4f,eACqC,UAAvC5f,KAAKyqB,QAAQ3K,cAAcyc,QAC3Bv8B,KAAK4f,aAAe5f,KAAKyqB,QAAQ3K,cAEhC9f,KAAK4f,aAAe5f,KAAKyqB,QAAQ3K,cAAc0c,qBAAqB,SAAS,IAGlFx8B,KAAK4f,cAAgB1U,EAAQ,KAEzBmB,OAAOW,EAEU,SAAjBhN,KAAKy8B,SACLz8B,KAAKmI,KAAOu0B,EAAAA,QAEU,SAAjB18B,KAAKy8B,SACVz8B,KAAKmI,KAAO,CAAC,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MAEjE,OAAjBnI,KAAKy8B,SACVz8B,KAAKmI,KAAO,CAAC,IAAK,KAAM,KAAM,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,MAEvE,OAAjBnI,KAAKy8B,SACVz8B,KAAKmI,KAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,MAEtC,QAAjBnI,KAAKy8B,UACVpwB,EAAOkT,EAAAA,QAA4B,cACnCvf,KAAKmI,KAAO,CAAC,KAAM,KAAM,IAAK,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,OAE3C,aAAjBnI,KAAKy8B,UACVpwB,EAAOkT,EAAAA,QAA4B,WACnCvf,KAAKmI,KAAO,CAAC,KAAM,KAAM,IAAK,KAAM,KAAM,KAAM,OAE1B,QAAjBnI,KAAKy8B,UACVpwB,EAAOkT,EAAAA,QAA4B,SACnCvf,KAAKmI,KAAO,CAAC,KAAM,KAAM,IAAK,KAAM,OAEd,OAAjBnI,KAAKy8B,SACVz8B,KAAKmI,KAAO,CAAC,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,MAErD,QAAjBnI,KAAKy8B,SACVz8B,KAAKmI,KAAO,CAAC,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,MAE7FnI,KAAKmI,KAAO,OAEbw0B,EAAa,CACbx0B,KAAMnI,KAAKmI,KACXK,OAAO,EACP8W,gBAAiB,IACjBjT,KAAMA,EACNmT,YAAY,EACZC,mBAAmB,GAGvBzf,KAAKk8B,iBAAmBvc,EAAAA,2BACpB9Y,OAAOyT,OAAO,CAAEsF,aAAc5f,KAAK4f,cAAgB+c,gCA3HlEC,EAAAA,UAASn1B,KAAA,CAAC,CACPiqB,KAAM,CACFmL,UAAW,+BACXC,SAAU,gBAEdtlB,SAAU,YACV+D,UAAW,CACP,CACIC,QAASC,EAAAA,kBACTC,YAAaC,EAAAA,YAAU,WAAO,OAAAigB,MAC9BhgB,OAAO,kDAhBa2Q,EAAAA,UAAS1J,WAAA,CAAA,CAAA5L,KAgCxBtP,EAAAA,OAAMF,KAAA,CAAC8kB,EAAAA,oBAhCJC,EAAAA,WAAU3J,WAAA,CAAA,CAAA5L,KAgCmCtP,EAAAA,OAAMF,KAAA,CAAC+kB,EAAAA,oDALnE/U,EAAAA,MAAKhQ,KAAA,CAAC,gCCnBP,SAAAs1B,EAAoBC,EAAgCr4B,GAAhC3E,KAAAg9B,WAAAA,EAAgCh9B,KAAA2E,MAAAA,SAE7Bo4B,EAAAn5B,UAAAq5B,YAAA,eACbC,EAAWl9B,KAAKg9B,WAAWld,cAAc/X,MAAMgE,QAAQ,MAAO,IACpE/L,KAAK2E,MAAMiT,QAAQ+C,SAASuiB,8BATnCN,EAAAA,UAASn1B,KAAA,CAAC,CACP+P,SAAU,yDAJMgV,EAAAA,kBACX2Q,EAAAA,mDASJC,EAAAA,aAAY31B,KAAA,CAAC,mBC8JlB,kCA1GC41B,EAAAA,SAAQ51B,KAAA,CAAC,CACT61B,QAAS,CACRC,EAAAA,aACAC,EAAAA,iBACAC,EAAAA,YACAC,EAAAA,oBACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,eACAC,EAAAA,mBACAC,EAAAA,cACAC,EAAAA,gBACAC,EAAAA,kBACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,oBACAC,EAAAA,oBACAC,EAAAA,gBACAC,EAAAA,qBACAC,EAAAA,sBACAC,EAAAA,iBACAC,EAAAA,aACAC,EAAAA,mBACAC,EAAAA,oBACAC,EAAAA,gBAEDC,aAAc,CACbl3B,GACAM,GAEA0zB,GACAmB,GAEAzlB,GACAI,GACAoE,GACAqB,GACAG,GACAU,GACAgB,GACAyC,GACAsB,GACA6J,GACAoB,GACAa,GACAc,GACAK,GACAc,GACAM,GACAU,GACA2B,GACAE,GAEAxR,GACA4c,GACA/K,GACA+F,GACAc,GACAhE,GACAmB,GACA4B,GACA+B,GACAhrB,IAEDquB,QAAS,CACRp3B,GACAM,GAEAoP,GACAI,GACAoE,GACAqB,GACAG,GACAU,GACAgB,GACAyC,GACAsB,GACA6J,GACAoB,GACAa,GACAc,GACAK,GACAc,GACAM,GACAU,GACA2B,GACAE,GAEAxR,GACA4c,GACA/K,GACA+F,GACAc,GACAhE,GACAmB,GACA4B,IAEDqF,QAAS,CACRC,EAAAA,wBAEDC,gBAAiB,CAChBhd,GACAwZ,GACAhrB","sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const DICTIONARIES_CONFIG = new InjectionToken<any>('DICTIONARIES_CONFIG');\r\nexport const APICONTROLLER_CONFIG = new InjectionToken<any>('APICONTROLLER_CONFIG');","export class InfoAppConfigModel {\r\n production: boolean = false;\r\n webapiUrl: string = '';\r\n processingUrl: string = '';\r\n theme: string = '';\r\n dictionary: string = '';\r\n ux: Number = 2;\r\n style: string = '';\r\n topMenu: boolean = false;\r\n enabledPrime: boolean = false;\r\n}","export class InfoDataAccessModel {\r\n \r\n success: boolean;\r\n messages: string[] = [];\r\n name: string = null;\r\n description: string = null;\r\n data: any;\r\n total: number = 0;\r\n parentId: number = null;\r\n referenceGuid: string = null;\r\n external = false;\r\n\r\n constructor(data: any, success?: boolean, messages?: string[]) {\r\n\r\n if (data != null) {\r\n if (data.Name != null && data.Name != \"\")\r\n this.name = data.Name\r\n\r\n if (data.Description != null && data.Description != \"\")\r\n this.description = data.Description;\r\n\r\n if (data.Total != null)\r\n this.total = data.Total;\r\n \r\n if (data.Success != null)\r\n success = data.Success;\r\n\r\n if (data.Messages)\r\n messages = data.Messages;\r\n\r\n if (data.ParentId != null)\r\n this.parentId = data.ParentId;\r\n\r\n if (data.ReferenceGuid != null)\r\n this.referenceGuid = data.ReferenceGuid;\r\n \r\n if (data.External != null)\r\n this.external = data.External;\r\n\r\n this.data = data.Data;\r\n }\r\n \r\n this.success = success == null ? true : success;\r\n this.messages = messages;\r\n\r\n if (this.messages == null || this.messages == [])\r\n this.messages = new Array();\r\n }\r\n}","import { InfoDialogButtons } from \"../enum/dialog-buttons.enum\";\r\n\r\nexport class InfoDialogResult {\r\n data?: any = null;\r\n button: InfoDialogButtons;\r\n\r\n constructor(button: InfoDialogButtons);\r\n constructor(button: InfoDialogButtons, data?: any) {\r\n this.button = button;\r\n this.data = data;\r\n }\r\n}","export class InfoDialogModel {\r\n\r\n yesOrNo: boolean = false\r\n title: string\r\n message: string = ''\r\n width: number = 450;\r\n\r\n labelOk: string = 'Ok'\r\n labelCancel: string = 'Cancelar'\r\n labelAux: string = null\r\n\r\n colorOk: string = ''\r\n colorCancel: string = ''\r\n colorAux: string = ''\r\n\r\n processingMode: boolean = false;\r\n\r\n disableButtonCancel: boolean = false;\r\n}","export enum InfoPageAction {\r\n None = -1,\r\n\r\n View = 0,\r\n New = 1,\r\n Edit = 2,\r\n Delete = 3,\r\n Search = 4,\r\n}","export enum InfoModalAction {\r\n None,\r\n Ok,\r\n Yes,\r\n No,\r\n Cancel,\r\n Save,\r\n Special,\r\n Aux\r\n}","import { InfoPageAction } from \"../enum/page-action.enum\";\r\nimport { InfoModalAction } from \"../enum/modal-action.enum\";\r\n\r\nexport class InfoFormPropModel {\r\n\r\n title: string;\r\n readonly: boolean;\r\n data: any;\r\n pageAction: InfoPageAction;\r\n modalAction: InfoModalAction = InfoModalAction.None;\r\n modalComponent: any = null;\r\n api: any = null;\r\n\r\n set(pageAction: InfoPageAction, data: any) {\r\n\r\n this.data = data;\r\n this.readonly = pageAction == InfoPageAction.View;\r\n this.pageAction = pageAction;\r\n\r\n switch (pageAction) {\r\n\r\n case InfoPageAction.New:\r\n this.title = 'Novo';\r\n break;\r\n\r\n case InfoPageAction.Search:\r\n this.title = 'Pesquisar';\r\n break;\r\n\r\n case InfoPageAction.View:\r\n this.title = 'Visualizar';\r\n break;\r\n\r\n case InfoPageAction.Edit:\r\n this.title = 'Editar';\r\n break;\r\n\r\n case InfoPageAction.Delete:\r\n this.title = 'Remover';\r\n break;\r\n\r\n default:\r\n this.title = '';\r\n break;\r\n }\r\n }\r\n}","export class InfoGridButtonModel {\r\n \r\n label: string;\r\n passId: boolean;\r\n icon: string;\r\n navigateTo: string;\r\n modalComponent: any = null;\r\n widthModalComponent: Number = 500;\r\n api: any = null;\r\n method: string = null;\r\n showOnlyClass: string = null;\r\n disabledField: string = null;\r\n confirm: boolean;\r\n\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string, confirm: boolean);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function = null, widthModalComponent: Number = null, api: any = null, method: string = null, disabledField: string = null, confirm: boolean = true) {\r\n this.label = label;\r\n this.passId = passId;\r\n this.icon = icon;\r\n this.navigateTo = navigateTo;\r\n \r\n this.modalComponent = modalComponent;\r\n this.widthModalComponent = widthModalComponent;\r\n\r\n this.api = api;\r\n this.method = method;\r\n this.disabledField = disabledField;\r\n this.confirm = confirm;\r\n }\r\n}","export class InfoMethodGridButtonModel {\r\n \r\n label: string;\r\n icon: string;\r\n method: () => any = null;\r\n\r\n constructor(label: string, icon: string, method: () => any)\r\n {\r\n this.label = label;\r\n this.icon = icon;\r\n this.method = method;\r\n }\r\n}","export class InfoLastSearchModel {\r\n url: string = '';\r\n model: any = null;\r\n index: number = 0;\r\n enabledSearch: boolean = false;\r\n}","export class InfoLoginModel {\r\n\r\n success: boolean = false;\r\n messages: string;\r\n data: any;\r\n\r\n constructor(success: boolean, messages: string, data?: any) {\r\n this.success = success;\r\n this.messages = messages;\r\n this.data = data;\r\n }\r\n}","export class InfoPagebarButtonModel {\r\n label: string = '';\r\n url: string = '';\r\n icon: string = '';\r\n modal: any = null;\r\n modalwidth: number = 700;\r\n\r\n constructor(label: string, url: string);\r\n constructor(label: string, url: string, icon: string);\r\n constructor(label: string, url: string, icon: string, modal: any, modalwidth: number);\r\n constructor(label: string, url: string, icon: string = 'chevron_right', modal: any = null, modalwidth: number = 700){\r\n this.label = label;\r\n this.url = url;\r\n this.icon = icon;\r\n this.modal = modal;\r\n this.modalwidth = modalwidth;\r\n }\r\n}","export class InfoPermissionModel {\r\n Acesso: boolean;\r\n URL: string;\r\n ChaveFuncionalidade: string;\r\n}","import { InfoAppConfigModel } from \"./app-config.model\";\r\n\r\nexport class InfoPlatformModel {\r\n\r\n TokenKey: string = 'token';\r\n SessionKey: string = 'sessao';\r\n \r\n ConfigIsNull: boolean = true;\r\n Themes: any = [];\r\n Config: InfoAppConfigModel = new InfoAppConfigModel();\r\n\r\n PaginaAtiva: any;\r\n UnificarTopbar: boolean = true;\r\n MenuMin: boolean = false;\r\n ModoPrime: boolean = false;\r\n PaginaLimpa: boolean = false;\r\n\r\n Menu: any = [];\r\n\r\n ShortcutApi: any = null;\r\n\r\n public setConfig(config: InfoAppConfigModel) {\r\n this.Config = config;\r\n this.ConfigIsNull = false;\r\n }\r\n}","import { InfoPermissionModel } from \"./permission.model\";\r\n\r\nexport class InfoSessionModel {\r\n UsuarioId: number;\r\n Usuario: string;\r\n Login: string;\r\n Email: string;\r\n Perfil: string;\r\n EmpresaId: number;\r\n TemaId: number;\r\n Empresa: string;\r\n UltimoAcesso: Date;\r\n Master: boolean;\r\n Versao: string;\r\n Clone: boolean;\r\n DataMovimentacao: Date;\r\n OcultarNomeCliente: boolean;\r\n Permissoes: InfoPermissionModel[] = [];\r\n Empresas: any[] = [];\r\n Parametros: any[] = null;\r\n MFA: boolean;\r\n TempoInatividade: number;\r\n}","export class InfoNotificationModel {\r\n Count: number = 0;\r\n Itens: InfoNotificationItemModel[] = [];\r\n}\r\n\r\nexport class InfoNotificationItemModel {\r\n Id: number;\r\n Icon: string;\r\n Description: string;\r\n Url: string;\r\n Date: string;\r\n Viewed: boolean;\r\n}","export enum InfoDialogButtons {\r\n Ok,\r\n Cancel,\r\n Yes,\r\n No,\r\n Aux\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { DICTIONARIES_CONFIG } from \"../global-config\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoTranslateService {\r\n private _currentLang: string;\r\n private _key: string = 'currentLang';\r\n\r\n public get currentLang() {\r\n return this._currentLang;\r\n }\r\n\r\n constructor(@Inject(DICTIONARIES_CONFIG) private _translations: any, private _plataforma: InfoPlatformModel) {\r\n \r\n let lang = localStorage.getItem(this._key);\r\n if (lang == null)\r\n this._currentLang = 'pt-br';\r\n else this._currentLang = lang;\r\n }\r\n\r\n public set(lang: string): void {\r\n this._currentLang = lang;\r\n localStorage.setItem(this._key, lang);\r\n }\r\n\r\n public translate(key: string): string {\r\n let translation = key;\r\n\r\n if (this._translations[this.currentLang] && this._translations[this.currentLang].Values && this._translations[this.currentLang].Values[key]) {\r\n translation = (this._translations[this.currentLang].Values[this._plataforma.Config.dictionary] || {})[key] || this._translations[this.currentLang].Values[key];\r\n if (typeof translation != 'string')\r\n translation = key;\r\n }\r\n\r\n return translation;\r\n }\r\n\r\n public getCalendar(): any {\r\n if (this._translations[this.currentLang] && this._translations[this.currentLang].Calendar) {\r\n return this._translations[this.currentLang].Calendar;\r\n }\r\n }\r\n\r\n public instant(key: string) {\r\n return this.translate(key);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { InfoTranslateService } from '../service/translate.service';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n pure: false\r\n})\r\nexport class InfoTranslatePipe implements PipeTransform {\r\n\r\n constructor(private _translate: InfoTranslateService) { }\r\n\r\n transform(value: string, args?: any): any {\r\n if (!value) \r\n return;\r\n\r\n if (args === false)\r\n return value;\r\n\r\n return this._translate.instant(value);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport emailMask from 'text-mask-addons/dist/emailMask';\r\nimport { conformToMask } from \"text-mask-core/dist/textMaskCore\";\r\n\r\n@Pipe({\r\n name: 'mask',\r\n pure: false\r\n})\r\nexport class InfoMaskPipe implements PipeTransform {\r\n\r\n constructor( ) { }\r\n\r\n transform(value: string, args?: any): any {\r\n if (!value) return;\r\n\r\n let mask = [];\r\n\r\n if (args == 'phone')\r\n mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]; \r\n else if (args == 'cel')\r\n mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n else if (args == 'cep')\r\n mask = [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/];\r\n else if (args == 'cpf')\r\n mask = [/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n else if (args == 'cnpj')\r\n mask = [/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'/',/\\d/,/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n else \r\n mask = Array.from(args).map(c => c == '0' ? /\\d/ : c);\r\n \r\n return conformToMask(value, mask, {guide: false}).conformedValue; \r\n }\r\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { InfoDataAccessModel } from '../model/data-access.model';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Observable, of, ObservableInput } from 'rxjs';\r\nimport { APICONTROLLER_CONFIG } from '../global-config';\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoDataService {\r\n\r\n private _key: string = 'token';\r\n private token: string;\r\n\r\n constructor(@Inject(APICONTROLLER_CONFIG) private _apiController: any, private _http: HttpClient, private _router: Router, private _plataforma: InfoPlatformModel) { }\r\n\r\n public getToken(): string {\r\n this.token = localStorage.getItem(this._key);\r\n\r\n if (this.token == null) {\r\n this._router.navigateByUrl('');\r\n return '';\r\n\r\n } else return 'Bearer ' + this.token;\r\n }\r\n\r\n public getHeaderToken(): HttpHeaders {\r\n return new HttpHeaders().set('Authorization', this.getToken());\r\n }\r\n\r\n public getAPIUrl(controller: any) {\r\n let api = '';\r\n\r\n\t\tif (typeof(controller) == 'number')\r\n\t\t\tapi = this._apiController[controller].toString();\r\n\r\n else api = controller == null ? '' : controller.toString();\r\n \r\n\t\treturn this._plataforma.Config.webapiUrl + (api.replace('_', '/') + '/').toLowerCase();\r\n }\r\n\r\n public getNoToken(controller: any): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))))\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public get(controller: any): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n \r\n return this._http\r\n .get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public getById(controller: any, id: number): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .get(this.getAPIUrl(controller) + id.toString(), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public postNoToken(controller: any, model: any): Observable<InfoDataAccessModel>;\r\n public postNoToken(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public postNoToken(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .post(this.getAPIUrl(controller) + method.toLowerCase(), model)\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public post(controller: any, model: any): Observable<InfoDataAccessModel>;\r\n public post(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public post(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .post(this.getAPIUrl(controller) + (method == null ? '' : method), model, { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e, false))\r\n );\r\n }\r\n\r\n public delete(controller: any, id: any): Observable<InfoDataAccessModel>\r\n public delete(controller: any, id: any, method?: string): Observable<InfoDataAccessModel>;\r\n public delete(controller: any, id: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n if (id == undefined || id == null)\r\n alert('Id não informado');\r\n\r\n return this._http\r\n .delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + \"?id=\" + id.toString(), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public deleteByModel(controller: any, model: any): Observable<InfoDataAccessModel>\r\n public deleteByModel(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public deleteByModel(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n let httpOptions = {\r\n headers: this.getHeaderToken(),\r\n body: model\r\n }\r\n\r\n return this._http\r\n .delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()), httpOptions)\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public request(controller: any, model: any[], method?: string): Observable<InfoDataAccessModel>\r\n public request(controller: any, model: any[], method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public request(controller: any, model: any[], method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n\r\n let formData = new FormData();\r\n for (let index = 0; index < model.length; index++)\r\n formData.append(model[index].name, model[index]);\r\n\r\n return this._http\r\n .request('POST', this.getAPIUrl(controller) + (method == null ? '' : method) + (param == null ? '' : ('?' + param)), { headers: this.getHeaderToken(), body: formData })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse, redirect: boolean = true): ObservableInput<InfoDataAccessModel> {\r\n if (e.status == 401) \r\n document.location.href = '/#/login';\r\n else if (redirect) \r\n document.location.href = '/#/500';\r\n\r\n let messages: string[] = new Array(e.message);\r\n return of(new InfoDataAccessModel(null, false, messages));\r\n }\r\n}","import { Component, Injectable } from '@angular/core';\r\nimport { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, ObservableInput, of } from 'rxjs';\r\nimport { map, catchError, switchMap } from 'rxjs/operators';\r\nimport { InfoSessionModel } from '../model/session.model';\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoLoginModel } from '../model/login.model';\r\nimport { InfoDataService } from '../service/data.service';\r\nimport { InfoFormPropModel } from '../model/form-prop.model';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoModalAction } from '../enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoAuthenticationService implements CanActivate {\r\n private _key: string = 'token';\r\n private _keySessao: string = 'sessao';\r\n private _sessionTimeInterval;\r\n private _sessionActive: boolean = true;\r\n\r\n constructor(private _router: Router, \r\n private _http: HttpClient, \r\n private _sessao: InfoSessionModel, \r\n private _plataforma: InfoPlatformModel,\r\n private _dataService: InfoDataService,\r\n private _modal: MatDialog) { }\r\n\r\n getSessao(): InfoSessionModel{\r\n return this._sessao;\r\n }\r\n\r\n getPlatform(): InfoPlatformModel {\r\n return this._plataforma;\r\n }\r\n\r\n canActivate(activatedRouteSnapshot: ActivatedRouteSnapshot, routerStateSnapshot: RouterStateSnapshot): Observable<boolean> | boolean {\r\n \r\n if (!this.isLogged() || !this._sessionActive) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n const url = activatedRouteSnapshot.data['URL'] || routerStateSnapshot.url;\r\n\r\n setTimeout(() => {\r\n this.refreshSessionTime(); \r\n }, 1000);\r\n\r\n this.definePaginaAtiva(url);\r\n\r\n return this.getPermission(url, true)\r\n .pipe(\r\n map(() => {\r\n if (url == '/')\r\n return true;\r\n\r\n if (!this.hasPermission(url))\r\n this._router.navigateByUrl('permission');\r\n\r\n if (url.indexOf('novo') > -1 && !this.hasPermission(url, 'new'))\r\n this._router.navigateByUrl('permission');\r\n\r\n if (url.indexOf('visualizar') < -1 && activatedRouteSnapshot.paramMap.get('id') != null && !this.hasPermission(url, 'edit'))\r\n this._router.navigateByUrl('permission');\r\n\r\n return true;\r\n }, \r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n })\r\n )).pipe(\r\n switchMap(async res => {\r\n const permissao = activatedRouteSnapshot.data['Permissao'];\r\n\r\n if (!permissao)\r\n return true;\r\n\r\n var params = (permissao[2] || '').replace(RegExp(/\\{(.*?)\\}/, 'g'), (_, p) => activatedRouteSnapshot.params[p]);\r\n\r\n var r = await this._dataService.get(permissao[0], permissao[1], params).toPromise();\r\n if (!r.success || r.data != true)\r\n this._router.navigateByUrl('permission');\r\n\r\n return true;\r\n })\r\n );\r\n }\r\n\r\n isLogged(): boolean {\r\n return (localStorage.getItem(this._key) != null);\r\n }\r\n\r\n\trefreshSessionTime() {\r\n if (!this._sessionActive)\r\n return;\r\n\r\n clearInterval(this._sessionTimeInterval);\r\n\r\n if (this._sessao.TempoInatividade == null || this._sessao.TempoInatividade <= 0)\r\n return;\r\n \r\n let tempoSessao = this._sessao.TempoInatividade;\r\n localStorage.setItem('ms', new Date().valueOf().toString());\r\n \r\n this._sessionTimeInterval = setInterval(() => {\r\n\r\n if (tempoSessao > 0) {\r\n tempoSessao--;\r\n return;\r\n }\r\n \r\n let tempoRestante = Math.round(this._sessao.TempoInatividade - ((new Date().valueOf() - parseInt(localStorage.getItem('ms'))) / 1000));\r\n\r\n if (!isNaN(tempoRestante) && tempoRestante > 0){\r\n tempoSessao = tempoRestante;\r\n return;\r\n }\r\n \r\n clearInterval(this._sessionTimeInterval);\r\n this._sessionActive = false;\r\n\r\n if (isNaN(tempoRestante))\r\n this.logout();\r\n \r\n else this.showMessage();\r\n }, 1000);\r\n\t}\r\n\r\n showMessage(){\r\n let ref = this._modal.open(RefreshSessionTimeModalComponent, {\r\n data: null,\r\n disableClose: true,\r\n width: '500px'\r\n });\r\n\r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n\r\n if (r != null && (r.modalAction == InfoModalAction.Yes || (this._sessao.TempoInatividade - ((new Date().valueOf() - parseInt(localStorage.getItem('ms'))) / 1000)) > 0)){\r\n this._sessionActive = true;\r\n this.refreshSessionTime();\r\n }\r\n\r\n else this.logout();\r\n });\r\n }\r\n\r\n login(usuario: string, senha: string, reCaptchaToken: string = null, codigo2FA: string = null): Observable<any> {\r\n this.removeSessao();\r\n\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/autenticar', { Usuario: usuario, Senha: senha, ReCaptchaToken: reCaptchaToken, Codigo2FA: codigo2FA })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data.Token);\r\n \r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n trocarEmpresa(usuario: string, empresaId: number): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/trocarempresa', { EmpresaId: empresaId }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n clonar(usuario: string): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/clonar', { Usuario: usuario }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n logout() {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); });\r\n }\r\n\r\n getPermissions(url: string, logAtividade: boolean = false): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/getpermissao?url=' + url + '&logatividade=' + logAtividade.toString(), { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setTrocaSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/TrocarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setRecuperarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/RecuperarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setResetarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/ResetarSenha', model)\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n getLoginResources(): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/app/GetLoginResources')\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n hasPermission(url: string, keyFunction: string = 'view'): boolean {\r\n\r\n if (url == '/' && keyFunction == 'view')\r\n return true;\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n return this._sessao.Permissoes.some(s => s.URL == urlGenerica && s.ChaveFuncionalidade == keyFunction && s.Acesso);\r\n }\r\n\r\n getPermission(url: string, logAtividade: boolean = false): Observable<boolean> {\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n let contemUrl = this._sessao.Permissoes.some(s => s.URL == urlGenerica);\r\n if (contemUrl) {\r\n if (logAtividade) {\r\n return this.validaSessao(url).pipe(map(ret => {\r\n if (!ret.success)\r\n this.logout();\r\n \r\n return true;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n } else {\r\n return new Observable(function (observer) {\r\n observer.next(true);\r\n observer.complete();\r\n });\r\n }\r\n } else {\r\n return this.getPermissions(urlGenerica, logAtividade).pipe(map(ret => {\r\n let permissao = true;\r\n if (ret.success) {\r\n if (ret.data == null) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n ret.data.forEach(item => {\r\n if (this._sessao.Permissoes.filter(s => s.URL == item.URL && s.ChaveFuncionalidade == item.ChaveFuncionalidade).length == 0)\r\n this._sessao.Permissoes.push(item);\r\n });\r\n\r\n ret.data.some(s => s.URL == urlGenerica)\r\n\r\n localStorage.setItem(this._keySessao, JSON.stringify(this._sessao));\r\n }\r\n\r\n return permissao;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n }\r\n }\r\n\r\n validaSessao(url: string): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/validasessao?url=' + url, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r === true, '', r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n removeSessao() {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('Dashboard')) delete localStorage[key];\r\n });\r\n }\r\n\r\n definePaginaAtiva(url) {\r\n\r\n if (this._plataforma.Menu == null || url == null) {\r\n this._plataforma.PaginaAtiva = null;\r\n return;\r\n }\r\n\r\n let aux: string[] = url.substring(1).replace(/-/g, '').toLowerCase().split('/');\r\n let tituloMenu: string = aux.length > 0 ? aux[0].toString() : url;\r\n\r\n if (tituloMenu.indexOf('ashboard') > -1)\r\n this._plataforma.PaginaAtiva = { Icone: 'widgets', Titulo: 'Dashboard' };\r\n\r\n else {\r\n let item: any = this._plataforma.Menu.filter(m => m.Title.toLowerCase().indexOf(tituloMenu) > -1);\r\n\r\n if (item != null && item.length > 0)\r\n this._plataforma.PaginaAtiva = { Icone: item[0].Icon, Titulo: item[0].Title };\r\n else this._plataforma.PaginaAtiva = { Icone: 'security', Titulo: 'Plataforma' };\r\n }\r\n }\r\n\r\n getUrlGenerica(url: string): string {\r\n let retorno = \"\";\r\n let urlParts: string[] = url.split('/');\r\n for (var i = 0; i < urlParts.length; i++) {\r\n if (!isNaN(parseFloat(urlParts[i])) || this.isGuid(urlParts[i]) || urlParts[i].toLowerCase() == 'novo')\r\n break;\r\n else\r\n retorno += '/' + urlParts[i];\r\n }\r\n return retorno.substring(1);\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse): ObservableInput<InfoLoginModel> {\r\n if (e.status == 401) \r\n this.logout();\r\n\r\n else if (e.status == 500)\r\n this._router.navigateByUrl('500');\r\n\r\n else if (e.error != null && e.error.error_description != null)\r\n return of(new InfoLoginModel(false, e.error.error_description));\r\n\r\n else return of(new InfoLoginModel(false, 'Houve um problema e não foi possível conectar'));\r\n }\r\n\r\n private isGuid(value) : boolean {\r\n return (value || '').match('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') !== null;\r\n }\r\n}\r\n\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"Inatividade\" (onsave)=\"ativo(true)\" labelsubmit=\"Sim\" labelcancel=\"({{ time }}) {{ 'Nao' | translate }}\">\r\n <label style=\"font-size:130%\">{{ 'VoceAindaEstaUtilizandoPlataforma' | translate }}</label>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class RefreshSessionTimeModalComponent {\r\n time = 15;\r\n interval;\r\n\r\n\tconstructor(private _ref: MatDialogRef<RefreshSessionTimeModalComponent>) { }\r\n\r\n ngOnInit() {\r\n clearInterval(this.interval);\r\n \r\n this.interval = setInterval(() => {\r\n if (this.time > 0)\r\n this.time--;\r\n else {\r\n this.ativo(false);\r\n clearInterval(this.interval);\r\n }\r\n }, 1000);\r\n }\r\n \r\n ativo(ativo: boolean) {\r\n this._ref.close({ modalAction: ativo ? InfoModalAction.Yes : InfoModalAction.No });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoSessionModel } from '../model/session.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoThemeService {\r\n\r\n constructor(public _overlay: OverlayContainer, public _plataform: InfoPlatformModel, public _session: InfoSessionModel) { }\r\n\r\n public setTheme(theme) {\r\n // console.log('info-theme.setTheme', theme);\r\n\r\n if (this._plataform.Themes != null){\r\n let item = this._plataform.Themes.find(t => t.name == theme);\r\n this._plataform.UnificarTopbar = item == null ? false : item.unificarTopbar;\r\n }\r\n\r\n let _overlay = this._overlay.getContainerElement().classList;\r\n let themeClassesToRemove: any = Array.from(_overlay).filter((item: string) => item.includes('-theme'));\r\n \r\n if (themeClassesToRemove && themeClassesToRemove.length > 0)\r\n _overlay.remove(themeClassesToRemove);\r\n\r\n _overlay.remove('alternative-layout');\r\n _overlay.add(theme);\r\n\r\n document.body.removeAttribute('class');\r\n document.body.classList.add(theme);\r\n\r\n if (this._plataform.UnificarTopbar)\r\n document.body.classList.add('alternative-layout');\r\n \r\n if (this._plataform.MenuMin)\r\n document.body.classList.add('menu-min');\r\n \r\n if (this._plataform.ModoPrime)\r\n document.body.classList.add('modo-prime');\r\n\r\n document.body.classList.add('ux' + (this._plataform.Config.ux ? this._plataform.Config.ux : 2));\r\n\r\n sessionStorage.setItem('at', theme);\r\n localStorage.setItem('at', theme);\r\n }\r\n\r\n public setThemeByLoggedCompany() {\r\n // console.log('info-theme.setThemeByLoggedCompany', this._session.TemaId);\r\n this.setTheme(this._session.TemaId > 0 ? `_${this._session.TemaId}-theme` : 'default-theme');\r\n }\r\n\r\n public setMenuMin(value: boolean = null){\r\n this._plataform.MenuMin = value == null ? !this._plataform.MenuMin : value;\r\n\r\n document.body.classList.remove('menu-min');\r\n \r\n if (this._plataform.MenuMin)\r\n document.body.classList.add('menu-min');\r\n\r\n sessionStorage.setItem('mm', this._plataform.MenuMin.toString());\r\n localStorage.setItem('mm', this._plataform.MenuMin.toString());\r\n }\r\n\r\n public setModePrime(prime: boolean = null){\r\n this._plataform.ModoPrime = prime == null ? !this._plataform.ModoPrime : prime;\r\n\r\n document.body.classList.remove('modo-prime');\r\n \r\n if (this._plataform.ModoPrime)\r\n document.body.classList.add('modo-prime');\r\n\r\n sessionStorage.setItem('mp', this._plataform.ModoPrime.toString());\r\n localStorage.setItem('mp', this._plataform.ModoPrime.toString());\r\n }\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { InfoPlatformModel } from \"../model/platform.model\";\r\nimport { InfoAppConfigModel } from \"../model/app-config.model\";\r\nimport { InfoThemeService } from \"./theme.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoConfigurationService {\r\n\r\n constructor(private _http: HttpClient, private _plataforma: InfoPlatformModel, private _themeService: InfoThemeService) { }\r\n\r\n initialize(): Promise<InfoAppConfigModel> {\r\n\r\n return new Promise((r, e) => {\r\n this._http\r\n .get<InfoAppConfigModel>('config.json')\r\n .subscribe(config => {\r\n let activeTheme = sessionStorage.getItem('at') || localStorage.getItem('at');\r\n let menuMin = sessionStorage.getItem('mm') || localStorage.getItem('mm');\r\n let prime = sessionStorage.getItem('mp') || localStorage.getItem('mp');\r\n\r\n this._plataforma.Config = config; \r\n this._plataforma.ConfigIsNull = false;\r\n\r\n if (this._plataforma.Config.ux == null || this._plataforma.Config.ux == undefined)\r\n this._plataforma.Config.ux = 2;\r\n\r\n if (this._plataforma.Config.ux == 2)\r\n menuMin = 'false';\r\n\r\n var cssFile = document.createElement('link');\r\n cssFile.href = this._plataforma.Config.webapiUrl.replace(/\\/api\\/$/ig, '') + '/layout/temas.css';\r\n cssFile.type = 'text/css';\r\n cssFile.rel = 'stylesheet';\r\n \r\n document.head.appendChild(cssFile);\r\n \r\n if (this._plataforma.Config.style != null){\r\n var cssClient = document.createElement('link');\r\n cssClient.href = '/assets/' + this._plataforma.Config.style + '/style.css';\r\n cssClient.type = 'text/css';\r\n cssClient.rel = 'stylesheet';\r\n document.head.appendChild(cssClient);\r\n }\r\n\r\n if (activeTheme == null || activeTheme == undefined)\r\n activeTheme = `_${this._plataforma.Config.theme}-theme`;\r\n\r\n this._themeService.setTheme(activeTheme || 'default-theme');\r\n this._themeService.setMenuMin(menuMin == 'true');\r\n this._themeService.setModePrime(prime == 'true');\r\n\r\n r(config);\r\n });\r\n });\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'info-alert',\r\n template: `\r\n <div *ngIf=\"messages != [] && messages.length > 0\">\r\n <div class=\"alert\" #alert >\r\n <h5>{{ 'Atencao' | translate }}</h5>\r\n <ng-content></ng-content>\r\n <ul>\r\n <li *ngFor=\"let m of messages\"><mat-icon>error_outline</mat-icon><label [innerHTML]=\"m | translate\"></label></li>\r\n </ul>\r\n <a class=\"close\" (click)=\"onClose()\"><i class=\"material-icons\">clear</i></a>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['alert.component.scss']\r\n})\r\nexport class InfoAlertComponent {\r\n\r\n @Input() messages: string[] = [];\r\n\r\n onClose() {\r\n this.messages = [];\r\n }\r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { debounceTime, switchMap, distinctUntilChanged } from 'rxjs/operators';\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { InfoDataAccessModel } from '../../model';\r\n\r\n@Component({\r\n selector: 'info-autocomplete',\r\n templateUrl: 'autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoAutoCompleteComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoAutoCompleteComponent implements OnInit, ControlValueAccessor {\r\n control = new FormControl();\r\n \r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() getdataonchange = false;\r\n @Input() getdataonchangetime = 500;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() maxlist = 10;\r\n @Input() startwith = false;\r\n @Input() minchar = 1;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n options: any[];\r\n selectedValue: any = null;\r\n\r\n onChange: any;\r\n onTouched: any;\r\n \r\n initialized = false;\r\n\r\n _loading: boolean = false;\r\n @Input()\r\n get loading(){\r\n return this._loading;\r\n }\r\n\r\n set loading(value){\r\n this._loading = value;\r\n \r\n if (this._disabled == null)\r\n this._disabled = false;\r\n\r\n else if (this._disabled.toString() == '')\r\n this._disabled = true;\r\n\r\n if (this._disabled == false)\r\n this.setDisabledState(this.loading);\r\n }\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData().subscribe(a => { this.data = a.data; this.loading = false; });\r\n }\r\n \r\n _disabled: boolean = null;\r\n @Input()\r\n set disabled(value: boolean) { \r\n if (this._disabled == null)\r\n this._disabled = value;\r\n\r\n if (value)\r\n this.control.disable();\r\n else\r\n this.control.enable();\r\n }\r\n\r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n\r\n if (this.getdataonchange)\r\n return;\r\n\r\n setTimeout(() => {\r\n if (this.selectedValue != null)\r\n if ((this._data == null || (this._data != null && this._data.length == 0)) && !this.loading) {\r\n this.writeValue(null);\r\n this.selectedValue = null;\r\n } else\r\n this.writeValue(this.selectedValue.Id == null ? this.selectedValue : this.selectedValue.Id);\r\n \r\n else if (this.selectfirst && this.data != null && this.data.length > 0)\r\n this.writeValue(this.data[0].Id);\r\n\r\n if (this.disablednoregisters)\r\n this.setDisabledState((this.data == null || this.data.length == 0));\r\n }, 1000);\r\n }\r\n\r\n constructor(private _dataAcess: InfoDataService) { }\r\n\r\n ngOnInit() {\r\n if (this.minchar == null || this.minchar < 0) this.minchar = 1;\r\n this.name = this.placeholder.replace(/ /g, '') + Math.floor(Math.random() * 1000).toString();\r\n\r\n if (!this.getdataonchange) {\r\n this.getData().subscribe(a => { this.data = a.data; this.loading = false; });\r\n this.control.valueChanges.subscribe(value => { this.options = this.filter(value)});\r\n } else {\r\n this.control.valueChanges.pipe(\r\n debounceTime(this.getdataonchangetime), \r\n distinctUntilChanged(),\r\n switchMap(value => this.getData(value))\r\n ).subscribe(a => this.data = this.options = a.data);\r\n }\r\n }\r\n\r\n filter(value: any): any[] {\r\n if (value == null || value.length < this.minchar) return [];\r\n let filterValue = value.Nome == null ? value.toString().toLowerCase() : value.Nome;\r\n\r\n if (this.startwith)\r\n return this.data.filter(option => option.Nome.toLowerCase().indexOf(filterValue) === 0 || (option.Aux == null ? \"\" : option.Aux.toLowerCase() == filterValue)).slice(0, this.maxlist);\r\n else\r\n return this.data.filter(option => option.Nome.toLowerCase().indexOf(filterValue) > -1 || (option.Aux == null ? \"\" : option.Aux.toLowerCase().indexOf(filterValue) > -1)).slice(0, this.maxlist);\r\n }\r\n\r\n getData(value: any = null): Observable<any> {\r\n this.initialized = true;\r\n\r\n if (this.api == null || this.api == '')\r\n return new Observable<InfoDataAccessModel>();\r\n\r\n this.loading = !this.getdataonchange;\r\n this.data = [];\r\n let parameters = this.params || '';\r\n\r\n if (this.getdataonchange) {\r\n if (value == null || value == '')\r\n return new Observable<InfoDataAccessModel>();\r\n\r\n if (parameters != null && parameters != '')\r\n parameters += '&';\r\n\r\n parameters += `nome=${value.Nome == null ? value.toString().toLowerCase() : value.Nome}&take=${this.maxlist}`;\r\n\r\n let model = parameters.split(\"&\").map(c => ({ [c.split(\"=\")[0].charAt(0).toUpperCase() + c.split(\"=\")[0].substring(1)]: c.split(\"=\")[1] })).reduce((a,b) => ({...a, ...b}));\r\n return this._dataAcess.post(this.api, model, this.method);\r\n }\r\n\r\n return this._dataAcess.get(this.api, this.method, parameters);\r\n }\r\n\r\n onBlur(value) {\r\n setTimeout(() => {\r\n if (this.selectedValue != null && this.selectedValue.Id != null)\r\n return;\r\n\r\n if (!value && this.selectedValue != null && this.selectedValue.trim() == '')\r\n this.writeValue(null);\r\n else {\r\n let first = this.filter(value);\r\n if (first != null && first.length > 0)\r\n this.writeValue(first[0].Id);\r\n else\r\n this.writeValue(null);\r\n } \r\n }, 300);\r\n }\r\n\r\n onFocus(value) {\r\n if (this.minchar != null && this.minchar == 0 && (value == null || value == ''))\r\n setTimeout(() => { this.control.setValue(''); }, 200);\r\n }\r\n\r\n displayFn(model): string {\r\n if (model == null || model.Nome == null)\r\n return '';\r\n\r\n let indexSmall = model.Nome.indexOf('<small');\r\n return indexSmall > -1 ? model.Nome.substring(0, indexSmall).trim() : model.Nome;\r\n }\r\n\r\n writeValue(value: any): void {\r\n let obj = this.data.find(r => r.Id == value);\r\n this.control.setValue(obj);\r\n\r\n if (value != null && obj == null)\r\n this.selectedValue = value;\r\n\r\n if (this.onChange != null)\r\n this.onChange(value);\r\n\r\n if (this.onselecteditem != null)\r\n this.onselecteditem.emit(this.data == null ? null : this.data.find(r => r.Id == value));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;\r\n }\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\n\r\n@Component({\r\n selector: 'info-big-checkbox',\r\n templateUrl: 'big-checkbox.component.html',\r\n styleUrls: ['big-checkbox.component.scss']\r\n})\r\nexport class InfoBigCheckboxComponent implements OnInit {\r\n\r\n @Input() readonly: boolean = false;\r\n @Input() preload: boolean = true;\r\n @Input() enabledcheckall: boolean = true;\r\n @Input() labelselectall: string = 'Todos';\r\n @Input() labelsearch: string = 'Buscar';\r\n @Input() minchar: number = 0;\r\n @Input() max: number = 20;\r\n @Input() message: string;\r\n @Input() submessage: string = '';\r\n\r\n @Input() value: string = '';\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n\r\n @Input() model: any = [];\r\n @Input() data: any[] = [];\r\n @Input() aux: string = null;\r\n\r\n private _params: any = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n this.getData();\r\n }\r\n\r\n private _paramsmodel: any = null;\r\n @Input()\r\n get paramsmodel(){\r\n return this._paramsmodel;\r\n }\r\n\r\n set paramsmodel(value){\r\n this._paramsmodel = value;\r\n this.getData();\r\n }\r\n\r\n loading: boolean = false;\r\n name: string = '';\r\n\r\n constructor(private _dataService: InfoDataService) { }\r\n\r\n ngOnInit(){\r\n this.submessage = 'Serão exibidos somente os ' + this.max + ' primeiros itens encontrados';\r\n this.name = 'input-search-' + Math.floor(Math.random() * 1000).toString();\r\n this.getData();\r\n }\r\n\r\n getData() {\r\n if (this.preload) {\r\n if (this.params == null && this.paramsmodel != null)\r\n this.loadByParamModel(this.paramsmodel);\r\n\r\n else this.load(this.params);\r\n }\r\n }\r\n\r\n load(param: any = null) {\r\n\r\n if (this.api == null)\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n if (this.model == null)\r\n this.model = [];\r\n\r\n this._dataService\r\n .get(this.api, this.method, param).subscribe(r => {\r\n if (r.success)\r\n this.data = r.data;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n loadByParamModel(paramModel: any = null) {\r\n \r\n if (this.api == null)\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n if (this.model == null)\r\n this.model = [];\r\n\r\n this._dataService.post(this.api, paramModel, this.method).subscribe(r => {\r\n if (r.success)\r\n this.data = r.data;\r\n \r\n this.loading = false;\r\n });\r\n }\r\n\r\n getModel(): any[]{\r\n\r\n if (this.model == null || this.model.length == 0)\r\n return [];\r\n\r\n return this.model.filter(m => this.aux == null || m.Aux == this.aux);\r\n }\r\n\r\n getFilteredData(): any[]{\r\n\r\n if (this.data.length == 0 || this.value.length < this.minchar)\r\n return [];\r\n\r\n return this.data.filter(d => \r\n (this.aux == null || this.aux == d.Aux) &&\r\n this.model.filter(m => m.Id == d.Id).length == 0 && \r\n d.Nome.toLowerCase().indexOf(this.value.toLowerCase()) > -1\r\n\r\n ).slice(0, this.max);\r\n }\r\n\r\n existData(): boolean{\r\n return (this.data != null && \r\n this.data.length > 0 && \r\n this.data.filter(d => this.aux == null || this.aux == d.Aux).length > 0);\r\n }\r\n\r\n add(item: any){\r\n \r\n if (this.model == null)\r\n this.model = [];\r\n\r\n this.model.push({\r\n Id: item.Id,\r\n Nome: item.Nome,\r\n Aux: (this.aux == null ? item.Aux : this.aux),\r\n Descricao: item.Descricao == null ? item.Nome : item.Descricao,\r\n Selecionado: true\r\n });\r\n }\r\n\r\n selectAll(){\r\n\r\n let removeItems = new Array();\r\n\r\n if (this.aux != null) {\r\n for (var i = 0; i < this.model.length; i++){\r\n if (this.model[i].Aux == this.aux)\r\n removeItems.push(i);\r\n }\r\n }\r\n\r\n removeItems.forEach(index => {\r\n this.model.splice(index, 1);\r\n });\r\n }\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-card',\r\n templateUrl: 'card.component.html',\r\n styleUrls: ['card.component.scss']\r\n})\r\n\r\nexport class InfoCardComponent {\r\n\r\n @Input() label: string;\r\n @Input() description: string;\r\n @Input() mark: string;\r\n @Input() url: string;\r\n @Input() icon: string;\r\n @Output() onclick = new EventEmitter();\r\n\r\n constructor(private _router: Router) { }\r\n\r\n onCardClick() {\r\n if (this.url == null || this.url == '')\r\n this.onclick.emit();\r\n \r\n else this._router.navigateByUrl(this.url);\r\n }\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n/**\r\n * O atributo `menu` recebe uma lista responsável pela criação do menu:\r\n * ```\r\n * [{ title: string, url: string, permission: boolean }]\r\n * ```\r\n */\r\n@Component({\r\n selector: 'info-card-menu',\r\n templateUrl: 'card-menu.component.html',\r\n styleUrls: ['card-menu.component.scss']\r\n})\r\nexport class InfoMenuCardComponent implements OnInit {\r\n \r\n @Input() label: string = null;\r\n @Input() description: string = null;\r\n @Input() icon: string = null;\r\n @Input() menu: any[] = [];\r\n @Input() cols: number = 0;\r\n @Input() loadinit: boolean = true;\r\n\r\n menuRows: any[] = [];\r\n col: number = 12;\r\n colClass: string = 'col-md-';\r\n\r\n ngOnInit(){\r\n if (this.loadinit)\r\n this.load();\r\n }\r\n\r\n load() {\r\n this.menuRows = new Array();\r\n\r\n this.menu = this.menu == null ? null : this.menu.filter(i => i.permission == true);\r\n\r\n if (this.menu == null || this.menu.length == 0 || this.cols == null || this.cols == 0){\r\n this.menuRows.push(this.menu);\r\n this.colClass += this.col.toString();\r\n return;\r\n }\r\n\r\n let numberItensRow = Math.ceil(this.menu.length / this.cols);\r\n \r\n for (var i = 0; i < this.cols; i++)\r\n this.menuRows.push(this.menu.slice(i * numberItensRow, (i * numberItensRow) + numberItensRow));\r\n\r\n this.col = 12 / this.cols;\r\n this.colClass += this.col.toString();\r\n }\r\n}","import { Component, OnInit, Input, forwardRef } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-checkbox',\r\n templateUrl: 'checkbox.component.html',\r\n styles: ['.info-checkbox-content { padding-top: 20px; } .info-checkbox-min { padding-top: 0 !important; margin: 0 0 13px !important; } '],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoCheckboxComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoCheckboxComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder: string = '';\r\n @Input() type: string = null;\r\n @Input() min: boolean = false;\r\n\r\n value: boolean = false;\r\n disabled: boolean = false;\r\n checkboxValue: { true: any, false: any } = { true: true, false: false };\r\n initialized: boolean = false;\r\n\r\n onChange: any;\r\n onTouched: any;\r\n\r\n @Input()\r\n get checked(){\r\n return this.value;\r\n }\r\n\r\n set checked(value) {\r\n\r\n if (this.initialized){\r\n this.value = value;\r\n this.onChangeValue();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.type != null) {\r\n let customType = this.type.split(',');\r\n this.checkboxValue.true = isNaN(Number(customType[0])) ? customType[0] : Number(customType[0]);\r\n this.checkboxValue.false = isNaN(Number(customType[1])) ? customType[1] : Number(customType[1]);\r\n }\r\n\r\n this.value = true;\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n \r\n if (modelValue === undefined || modelValue == null)\r\n this.value = false;\r\n\r\n else this.value = modelValue === this.checkboxValue.true;\r\n\r\n this.onChangeValue();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.initialized = true;\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onChangeValue() {\r\n let result = this.value ? this.checkboxValue.true : this.checkboxValue.false;\r\n\r\n if (this.onChange != null)\r\n this.onChange(result);\r\n }\r\n}","import { Component, forwardRef, Input, ViewChild } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from \"@angular/material-moment-adapter\";\r\nimport { createTextMaskInputElement } from \"text-mask-core/dist/textMaskCore\";\r\nimport createAutoCorrectedDatePipe from \"text-mask-addons/dist/createAutoCorrectedDatePipe\";\r\nimport * as moment from \"moment\";\r\n\r\nexport const PT_BR_DATE_FORMATS = {\r\n parse: {\r\n dateInput: 'DD/MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'MMM Y',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM Y',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'info-date',\r\n templateUrl: './date.component.html',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoDateComponent),\r\n multi: true\r\n },\r\n { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: MAT_DATE_FORMATS, useValue: PT_BR_DATE_FORMATS },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }]\r\n})\r\nexport class InfoDateComponent implements ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() minDate: Date = new Date(1800, 0, 1);\r\n @Input() maxDate: Date = null;\r\n\r\n @Input() datefilter: any = null; //Metodo que recebe uma data(moment) e retorna boolean\r\n @Input() dateclass: any = null; //Metodo que recebe uma data(moment) e retorna string\r\n\r\n @ViewChild('inputDate', { static: false }) input;\r\n\r\n dateValue: any;\r\n dateMask: any;\r\n onChange;\r\n onTouched;\r\n\r\n ngAfterViewInit() {\r\n\r\n let config = {\r\n mask: [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/],\r\n guide: true,\r\n placeholderChar: '_',\r\n pipe: createAutoCorrectedDatePipe(PT_BR_DATE_FORMATS.parse.dateInput.toLowerCase()),\r\n modelClean: true,\r\n keepCharPositions: false,\r\n };\r\n\r\n this.dateMask = createTextMaskInputElement(\r\n Object.assign({ inputElement: this.input.nativeElement }, config)\r\n );\r\n }\r\n\r\n onInputDate(value) {\r\n this.dateMask.update(value);\r\n }\r\n\r\n onChangeValue() {\r\n if (this.dateValue != null) {\r\n if (moment(this.dateValue).isBefore(moment(this.minDate)))\r\n this.dateValue = this.minDate;\r\n \r\n if (this.maxDate != null && moment(this.dateValue).isAfter(moment(this.maxDate)))\r\n this.dateValue = this.maxDate;\r\n }\r\n\r\n if (this.onChange != null)\r\n this.onChange(this.dateValue);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value != null) {\r\n value = new Date(value);\r\n value.setMinutes(value.getMinutes() + value.getTimezoneOffset());\r\n value = new Date(value.getFullYear(), value.getMonth(), value.getDate());\r\n }\r\n\r\n this.dateValue = value;\r\n this.onChangeValue();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onKeyPress(e){\r\n if (e.keyCode == 13)\r\n this.onChangeValue();\r\n }\r\n}","import { Component, forwardRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from \"@angular/material/core\";\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from \"@angular/material-moment-adapter\";\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { createTextMaskInputElement } from \"text-mask-core/dist/textMaskCore\";\r\nimport createAutoCorrectedDatePipe from \"text-mask-addons/dist/createAutoCorrectedDatePipe\";\r\nimport { Moment } from \"moment\";\r\nimport * as moment from \"moment\";\r\n\r\nexport const PT_BR_DATE_MONTH_FORMATS = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'info-date-month',\r\n templateUrl: './date-month.component.html',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoDateMonthComponent),\r\n multi: true\r\n },\r\n { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: MAT_DATE_FORMATS, useValue: PT_BR_DATE_MONTH_FORMATS },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }]\r\n})\r\nexport class InfoDateMonthComponent implements ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() changeonlyonmonth: boolean = false;\r\n @Input() minDate: Date = new Date(1800, 0, 1);\r\n \r\n @ViewChild('inputDate', { static: false }) input;\r\n\r\n dateValue: any;\r\n dateMask: any;\r\n onChange;\r\n onTouched;\r\n\r\n ngAfterViewInit() {\r\n\r\n let config = {\r\n mask: [/\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/],\r\n guide: true,\r\n placeholderChar: '_',\r\n pipe: createAutoCorrectedDatePipe(PT_BR_DATE_MONTH_FORMATS.parse.dateInput.toLowerCase()),\r\n modelClean: true,\r\n keepCharPositions: false,\r\n };\r\n\r\n this.dateMask = createTextMaskInputElement(\r\n Object.assign({ inputElement: this.input.nativeElement }, config)\r\n );\r\n }\r\n\r\n onInputDate(value) {\r\n this.dateMask.update(value);\r\n }\r\n\r\n onChangeValue() {\r\n if (this.onChange != null) {\r\n if (moment(this.dateValue).isBefore(moment(this.minDate)))\r\n this.dateValue = this.minDate;\r\n\r\n this.onChange(this.dateValue);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value == null || value == undefined)\r\n this.dateValue = null;\r\n else {\r\n value = new Date(value);\r\n value.setMinutes(value.getMinutes() + value.getTimezoneOffset());\r\n value = new Date(value.getFullYear(), value.getMonth(), 1);\r\n this.dateValue = value;\r\n }\r\n \r\n this.onChangeValue();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n chosenYearHandler(value: Moment) {\r\n if (this.changeonlyonmonth)\r\n return;\r\n let aux = new Date(value.year(), new Date(this.dateValue).getMonth(), 1);\r\n this.dateValue = aux;\r\n this.onChangeValue();\r\n }\r\n\r\n chosenMonthHandler(value: Moment, datepicker: MatDatepicker<Moment>) {\r\n let aux = new Date(value.year(), value.month(), 1);\r\n this.dateValue = aux;\r\n this.onChangeValue();\r\n datepicker.close();\r\n }\r\n \r\n onKeyPress(e){\r\n if (e.keyCode == 13)\r\n this.onChangeValue();\r\n }\r\n}","import { Component, OnInit, Inject, Injectable } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from \"@angular/material/dialog\";\r\nimport { InfoDialogModel } from \"../../model/dialog.model\";\r\nimport { InfoDialogResult } from \"../../model/dialog-result.model\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class InfoDialogModal {\r\n\r\n refProcessing: MatDialogRef<InfoDialogComponent>;\r\n\r\n constructor(public dialog: MatDialog) { }\r\n\r\n alert(message: string): Observable<InfoDialogResult> {\r\n\r\n let model = new InfoDialogModel();\r\n model.message = message;\r\n model.labelCancel = null;\r\n model.processingMode = false;\r\n\r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: model.width + 'px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n\r\n YesOrNo(message: string): Observable<InfoDialogResult> {\r\n let model = new InfoDialogModel();\r\n model.message = message;\r\n model.yesOrNo = true;\r\n model.colorOk = 'warn';\r\n model.processingMode = false;\r\n \r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: model.width + 'px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n\r\n Confirm(message: string): Observable<InfoDialogResult> {\r\n let model = new InfoDialogModel(); \r\n model.message = message;\r\n model.processingMode = false;\r\n\r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: model.width + 'px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n\r\n Custom(model: InfoDialogModel): Observable<InfoDialogResult> {\r\n model.processingMode = false;\r\n\r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: model.width + 'px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n\r\n Processing() {\r\n let model = new InfoDialogModel();\r\n model.message = '';\r\n model.yesOrNo = false;\r\n model.labelCancel = null;\r\n model.colorOk = 'warn';\r\n model.processingMode = true;\r\n \r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: '500px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'info-dialog',\r\n templateUrl: './dialog.component.html'\r\n})\r\nexport class InfoDialogComponent implements OnInit {\r\n\r\n constructor(public ref: MatDialogRef<InfoDialogComponent>, @Inject(MAT_DIALOG_DATA) public model: InfoDialogModel) { }\r\n\r\n ngOnInit() {\r\n\r\n if (this.model.yesOrNo){\r\n this.model.labelOk = 'Sim';\r\n this.model.labelCancel = 'Nao';\r\n }\r\n }\r\n\r\n onclickCancel() {\r\n this.ref.close(new InfoDialogResult(this.model.yesOrNo ? InfoDialogButtons.No : InfoDialogButtons.Cancel));\r\n }\r\n\r\n onclickOk() {\r\n this.ref.close(new InfoDialogResult(this.model.yesOrNo ? InfoDialogButtons.Yes : InfoDialogButtons.Ok));\r\n }\r\n\r\n onclickAux() {\r\n this.ref.close(new InfoDialogResult(InfoDialogButtons.Aux));\r\n }\r\n}","import { Component, OnInit, Input, AfterViewInit, EventEmitter, Output, ViewChild, ChangeDetectorRef, ContentChildren, Renderer2, ElementRef } from \"@angular/core\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { InfoFormPropModel } from \"../../model/form-prop.model\";\r\nimport { InfoPaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { InfoDialogModal } from \"../../layouts/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { InfoAuthenticationService } from \"../../service/authentication.service\";\r\nimport { InfoTranslateService } from \"../../service/translate.service\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\nimport { InfoModalAction } from \"../../enum/modal-action.enum\";\r\nimport { InfoPageAction } from \"../../enum/page-action.enum\";\r\nimport { InfoPagebarButtonModel } from \"../../model/pagebar-buttons.model\";\r\nimport { InfoGridButtonModel } from \"../../model/grid-button.model\";\r\nimport { InfoLastSearchModel } from \"../../model/last-search.model\";\r\nimport { InfoMethodGridButtonModel } from \"../../model/method-grid-button.model\";\r\nimport { NgModel, NgForm } from '@angular/forms';\r\nimport { QueryList } from '@angular/core';\r\nimport { InfoPlatformModel } from \"../../model/platform.model\";\r\n\r\n@Component({\r\n selector: 'info-grid',\r\n templateUrl: 'grid.component.html',\r\n styleUrls: ['grid.component.scss'],\r\n providers: [InfoFormPropModel]\r\n})\r\nexport class InfoGridComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() pagetitle = '';\r\n @Input() prefixtitle = '';\r\n @Input() description = '';\r\n @Input() pagebarbuttons: InfoPagebarButtonModel[] = [];\r\n @Input() fullarea = false;\r\n\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n @Input() form: any = null;\r\n @Input() width: number = 800;\r\n @Input() parent: any = null;\r\n @Input() apidownload: any = null;\r\n @Input() methoddownload: string = null;\r\n\r\n @Input() backurl = '';\r\n @Input() newurl = '';\r\n @Input() newlabel = 'Novo';\r\n @Input() editurl = '';\r\n @Input() viewurl = '';\r\n @Input() templateurl = '';\r\n\r\n @Input() paged = false;\r\n @Input() size = 15;\r\n @Input() autorefresh = 0;\r\n\r\n @Input() enablednew = true;\r\n @Input() enablededit = true;\r\n @Input() enableddelete = true;\r\n @Input() enabledview = true;\r\n @Input() enabledcancelsearch = true;\r\n @Input() enableddetail = false;\r\n @Input() enabledclassicons = true;\r\n @Input() enabledclickaccess = false;\r\n @Input() enabledclickevent = false;\r\n\r\n @Input() searchopened = false;\r\n @Input() searchonlyonebutton = false;\r\n @Input() disablesearchlast = false;\r\n @Input() statictitle = false;\r\n @Input() disabledcol = '';\r\n @Input() accessicon = 'arrow_forward';\r\n\r\n @Input() loadoninit = true;\r\n @Input() data: any[];\r\n @Input() searchmodel: any = null;\r\n\r\n @Output() onbeforesearch = new EventEmitter();\r\n @Output() onloadcomplete = new EventEmitter();\r\n @Output() onclosemodal = new EventEmitter();\r\n @Output() onnew = new EventEmitter();\r\n @Output() onedit = new EventEmitter();\r\n @Output() onview = new EventEmitter();\r\n @Output() ondelete = new EventEmitter();\r\n @Output() customdelete = new EventEmitter();\r\n\r\n @Input() dynamiccols: string = null;\r\n @Input() buttons: InfoGridButtonModel[] = [];\r\n @Input() searchbuttons: InfoMethodGridButtonModel[] = [];\r\n\r\n @Input() showmessageerror = false;\r\n @Input() defaultnewobject: any = null;\r\n \r\n @ContentChildren(NgModel) formModel: QueryList<NgModel>;\r\n @ViewChild(NgForm, { static: false }) formSearch: NgForm;\r\n \r\n messages: String[] = [];\r\n resultTitle = '';\r\n enabledSearch = false;\r\n searchModelReset: any = null;\r\n\r\n showPagebar = false;\r\n hasPermissionNew = false;\r\n hasPermissionEdit = false;\r\n hasPermissionDelete = false;\r\n\r\n tableHeight = 0;\r\n loading = false;\r\n pagebarTitle = '';\r\n icons: any[] = [];\r\n colunasItens = [];\r\n colunasHeaders = [];\r\n colunasType = [];\r\n colunasWidth = [];\r\n colunasTranslate = [];\r\n currentUrl: string = null;\r\n url: string = null;\r\n\r\n @ViewChild('paginator', { static: false }) paginator: InfoPaginatorComponent;\r\n @Output() parentIdUrlChange = new EventEmitter();\r\n\r\n parentIdUrlValue: number = null;\r\n @Input()\r\n get parentIdUrl() {\r\n return this.parentIdUrlValue;\r\n }\r\n\r\n set parentIdUrl(value) {\r\n this.parentIdUrlValue = value;\r\n this.parentIdUrlChange.emit(this.parentIdUrlValue);\r\n }\r\n\r\n _cols: string = '';\r\n @Input()\r\n get cols() {\r\n return this._cols;\r\n }\r\n\r\n set cols(value) {\r\n this._cols = value;\r\n this.setColumns();\r\n }\r\n\r\n constructor(private _dialog: InfoDialogModal, \r\n public _platform: InfoPlatformModel,\r\n public modal: MatDialog, \r\n private _prop: InfoFormPropModel, \r\n private _dataAccessService: InfoDataService, \r\n private _router: Router,\r\n private _activatedRoute: ActivatedRoute,\r\n private _authenticationService: InfoAuthenticationService, \r\n private _changeDetectorRef: ChangeDetectorRef, \r\n private _translate: InfoTranslateService, \r\n private _lastSearch: InfoLastSearchModel,\r\n private _renderer: Renderer2, \r\n private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this.url = (this._activatedRoute.snapshot.data['URL'] || this._router.url).toLowerCase();\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.setPagebarTitle();\r\n\r\n if (this.searchmodel != null) {\r\n if (this.method == null)\r\n this.method = 'Search';\r\n\r\n this.searchModelReset = Object.assign({}, this.searchmodel);\r\n }\r\n\r\n else if (this.parent != null && (this.method == null || this.method == ''))\r\n this.method = 'GetByParentId';\r\n\r\n if (!this.disablesearchlast && this._authenticationService.getUrlGenerica(this._lastSearch.url) == this._authenticationService.getUrlGenerica(this.url)) {\r\n this.enabledSearch = this._lastSearch.enabledSearch;\r\n \r\n if (this.searchmodel != null && this._lastSearch.model != null)\r\n Object.assign(this.searchmodel, this._lastSearch.model);\r\n }\r\n\r\n if (this.searchopened)\r\n this.enabledSearch = true;\r\n\r\n if (this.autorefresh > 0)\r\n this.currentUrl = location.href;\r\n\r\n this._prop.api = this.api;\r\n this._prop.modalComponent = this.form;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.showPagebar = this.pagetitle != '' || this.prefixtitle != '';\r\n \r\n if (!this.fullarea && this._platform.Config.ux <= 2)\r\n this.fullarea = this.showPagebar;\r\n\r\n if (this.searchmodel && this.formModel.length > 0 && this.formSearch)\r\n this.formModel.toArray().forEach(model => this.formSearch.addControl(model));\r\n\r\n if (!this.disablesearchlast && this.paged && this._authenticationService.getUrlGenerica(this._lastSearch.url) == this._authenticationService.getUrlGenerica(this.url))\r\n this.paginator.index = this._lastSearch.index;\r\n\r\n if (this.dynamiccols == null) {\r\n this.setColumns();\r\n this.getPermission();\r\n\r\n if (this.loadoninit)\r\n this.getData();\r\n\r\n else this.hideLoad();\r\n }\r\n\r\n else this._dataAccessService\r\n .get(this.api, this.dynamiccols)\r\n .subscribe(r => {\r\n this.cols = r.data;\r\n this.setColumns();\r\n this.getPermission();\r\n\r\n if (this.loadoninit)\r\n this.getData();\r\n\r\n else this.hideLoad();\r\n });\r\n\r\n if (this.enabledclickevent)\r\n this.enabledclickaccess = true;\r\n }\r\n\r\n setColumns() {\r\n\r\n if (this.cols == '')\r\n alert('Nenhuma coluna informada');\r\n\r\n if (this.cols != '') {\r\n this.colunasItens = [];\r\n this.colunasHeaders = [];\r\n this.colunasType = [];\r\n this.colunasWidth = [];\r\n this.colunasTranslate = [];\r\n \r\n this.cols.split(',').forEach(registro => {\r\n\r\n let translate: boolean = registro.indexOf('#') == -1;\r\n registro = registro.replace(/#/g, '');\r\n\r\n let column: string = registro;\r\n let header: string = registro;\r\n let type: string = '';\r\n let width: string = '';\r\n\r\n if (header.indexOf(':') > -1) {\r\n let dados = registro.split(':');\r\n column = dados[0];\r\n header = dados[1];\r\n }\r\n\r\n if (header.indexOf('=') > -1) {\r\n let parts = header.split('=');\r\n\r\n if (column == header)\r\n column = parts[0];\r\n\r\n header = parts[0];\r\n type = parts[1];\r\n }\r\n\r\n let aux = type == '' ? header : type;\r\n if (aux.indexOf('*') > -1) {\r\n let headerInfo = aux.split('*');\r\n\r\n if (type == '') {\r\n if (column == header)\r\n column = headerInfo[0];\r\n\r\n header = headerInfo[0];\r\n\r\n } else type = headerInfo[0];\r\n\r\n width = headerInfo[1];\r\n\r\n if (width.indexOf('%') < 0 && width.indexOf('px') < 0)\r\n width += 'px';\r\n }\r\n\r\n this.colunasItens.push(column);\r\n this.colunasHeaders.push(header);\r\n this.colunasType.push(type == '' ? 'label' : type);\r\n this.colunasWidth.push(width);\r\n this.colunasTranslate.push(translate);\r\n });\r\n\r\n if (this.colunasItens.length == 1 && this.colunasWidth.length == 1)\r\n this.colunasWidth[0] = '100%';\r\n }\r\n }\r\n\r\n setPagebarTitle() {\r\n let aux = '';\r\n\r\n if (this.prefixtitle != '')\r\n aux = this._translate.translate(this.prefixtitle);\r\n\r\n if (this.resultTitle != '')\r\n aux += (this.prefixtitle != '' ? ' / ' : '') + this._translate.translate(this.resultTitle);\r\n\r\n if (this.pagetitle != '')\r\n aux += (this.resultTitle != '' || this.prefixtitle != '' ? ' / ' : '') + this._translate.translate(this.pagetitle);\r\n\r\n this.pagebarTitle = aux;\r\n }\r\n\r\n navigateTo(url: string, passId: boolean, id?: string) {\r\n\r\n if (passId) {\r\n if (url.indexOf(\":id\") > -1)\r\n this._router.navigateByUrl(url.replace(':id', id));\r\n else this._router.navigate([url, id]);\r\n }\r\n\r\n else this._router.navigateByUrl(url);\r\n }\r\n\r\n openCustomModal(modalComponent: any, width: Number, model: any = null) {\r\n\r\n this._prop.set(InfoPageAction.None, model);\r\n this.openModal(modalComponent, width);\r\n }\r\n\r\n getData() {\r\n this.messages = [];\r\n\r\n if (this.api == null || this.api == '') {\r\n this.hideLoad();\r\n return;\r\n \r\n } else if (this.searchmodel != null)\r\n this.getSearch();\r\n\r\n else if (this.paged)\r\n this.getPaged();\r\n\r\n else if (this.parent == null)\r\n this.getAll();\r\n\r\n else this.getByParentId();\r\n }\r\n\r\n getAll(): any {\r\n\r\n if (this.searchmodel == null)\r\n this._dataAccessService\r\n .get(this.api, this.method)\r\n .subscribe(r => this.getDataReturn(r));\r\n\r\n else this._dataAccessService\r\n .post(this.api, this.searchmodel, this.method)\r\n .subscribe(r => this.getDataReturn(r));\r\n }\r\n\r\n getPaged(): any {\r\n\r\n let params = this.parent == null ? \"\" : \"id=\" + this.parent + \"&\";\r\n params += 'index=' + this.paginator.index + '&size=' + this.size;\r\n\r\n this._dataAccessService\r\n .get(this.api, this.method, params)\r\n .subscribe(r => this.getDataReturn(r, true));\r\n }\r\n\r\n getSearch(): any {\r\n this.onbeforesearch.emit();\r\n\r\n this.messages = [];\r\n if (this.paged) {\r\n this.searchmodel.Index = this.paginator.index;\r\n this.searchmodel.Size = this.size;\r\n }\r\n\r\n var dataInicial = this.searchmodel[\"DataInicial\"];\r\n var dataFinal = this.searchmodel[\"DataFinal\"];\r\n if (dataInicial != null && dataFinal != null && new Date(dataInicial) > new Date(dataFinal)) {\r\n this.messages.push('DataInicialMaiorFinal');\r\n this.hideLoad();\r\n return;\r\n }\r\n\r\n var dataInicio = this.searchmodel[\"DataInicio\"];\r\n var dataFim = this.searchmodel[\"DataFim\"];\r\n if (dataInicio != null && dataFim != null && new Date(dataInicio) > new Date(dataFim)) {\r\n this.messages.push('DataInicioMaiorFim');\r\n this.hideLoad();\r\n return;\r\n }\r\n\r\n this._dataAccessService\r\n .post(this.api, this.searchmodel, this.method)\r\n .subscribe(r => this.getDataReturn(r, this.paged));\r\n }\r\n\r\n getByParentId(): any {\r\n this._dataAccessService\r\n .get(this.api, this.method, 'id=' + this.parent)\r\n .subscribe(r => this.getDataReturn(r, false));\r\n }\r\n\r\n getDataReturn(result: any, refreshPaginator: boolean = false) {\r\n \r\n if (!this.disablesearchlast) {\r\n this._lastSearch.url = this._authenticationService.getUrlGenerica(this.url);\r\n this._lastSearch.enabledSearch = this.enabledSearch;\r\n this._lastSearch.model = Object.assign({}, this.searchmodel);\r\n\r\n if (this.paged)\r\n this._lastSearch.index = this.paginator.index;\r\n }\r\n\r\n if (result.success) {\r\n this.data = result.data;\r\n\r\n if (!this.statictitle && result.name != null)\r\n this.resultTitle = this._translate.translate(result.name);\r\n\r\n if (result.description != null)\r\n this.description = result.description;\r\n\r\n if (result.parentId != null)\r\n this.parentIdUrl = result.parentId;\r\n\r\n if (refreshPaginator)\r\n this.paginator.refresh(result.total);\r\n\r\n if (this.autorefresh > 0 && this.currentUrl == location.href)\r\n setTimeout(() => { this.getData(); }, this.autorefresh * 1000);\r\n\r\n this.fillIcons();\r\n\r\n } else {\r\n this.data = [];\r\n if(this.showmessageerror) this.messages = result.messages;\r\n } \r\n\r\n this.hideLoad();\r\n this.onloadcomplete.emit();\r\n }\r\n\r\n changePage(index: number) {\r\n this.loading = true;\r\n this.paginator.index = index;\r\n\r\n if (this.searchmodel != null)\r\n this.getSearch();\r\n\r\n else this.getPaged();\r\n }\r\n\r\n cancelSearch() {\r\n Object.assign(this.searchmodel, this.searchModelReset);\r\n\r\n if (!this.searchopened)\r\n this.enabledSearch = false;\r\n\r\n this.search();\r\n }\r\n\r\n search() {\r\n this.loading = true;\r\n \r\n if (this.paged)\r\n this.paginator.index = 0;\r\n\r\n this.getData();\r\n }\r\n\r\n add() {\r\n\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.New, this.defaultnewobject);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.newurl == null || this.newurl == '')\r\n this.newurl = this.url;\r\n\r\n this.newurl += '/novo';\r\n this.newurl = this.newurl.replace('//', '/');\r\n\r\n this._router.navigateByUrl(this.newurl);\r\n }\r\n\r\n this.onnew.emit();\r\n }\r\n\r\n detail(model: any): void {\r\n this._prop.set(InfoPageAction.Search, model);\r\n this.openModal();\r\n }\r\n\r\n access(model: any): void {\r\n if (this.enabledclickaccess){\r\n if (this.enabledclickevent)\r\n this.onview.emit(model);\r\n \r\n else this.edit(model);\r\n }\r\n }\r\n\r\n view(model: any): void {\r\n\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.View, model);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.viewurl == null || this.viewurl == '')\r\n this.viewurl = this.url;\r\n \r\n this.viewurl += '/' + model.Id + (this.enabledclickaccess ? '' : '/visualizar');\r\n this.viewurl = this.viewurl.replace('//', '/');\r\n\r\n this._router.navigateByUrl(this.viewurl);\r\n }\r\n\r\n this.onview.emit(model);\r\n }\r\n\r\n edit(model: any): void {\r\n if (this.hasPermissionEdit) {\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.Edit, model);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.editurl == null || this.editurl == '')\r\n this.editurl = this.url;\r\n\r\n this.editurl = this.editurl.replace('//', '/');\r\n\r\n this._router.navigate([this.editurl, model.Id]);\r\n }\r\n\r\n this.onedit.emit(model);\r\n } else {\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.View, model);\r\n this.openModal();\r\n \r\n } else {\r\n if (this.viewurl == null || this.viewurl == '')\r\n this.viewurl = this.url;\r\n \r\n this.viewurl += '/' + model.Id + (this.enabledclickaccess ? '' : '/visualizar');\r\n this.viewurl = this.viewurl.replace('//', '/');\r\n \r\n this._router.navigateByUrl(this.viewurl);\r\n }\r\n \r\n this.onview.emit(model);\r\n }\r\n }\r\n\r\n delete(model: any) {\r\n if(this.customdelete.observers.length > 0) {\r\n this.customdelete.emit(model);\r\n return;\r\n }\r\n\r\n this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {\r\n if (r.button == InfoDialogButtons.Yes) {\r\n this.loading = true;\r\n\r\n this._dataAccessService.delete(this.api, model.Id).subscribe(d => {\r\n this.ondelete.emit(d);\r\n\r\n if (d.success)\r\n this.getData();\r\n else {\r\n this.hideLoad();\r\n if (this.showmessageerror) this.messages = d.messages;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n fillIcons() {\r\n this.icons = [];\r\n\r\n if (this.data == null)\r\n return;\r\n\r\n this.data.forEach(ret => {\r\n\r\n let item = ret['Icon'];\r\n if (item == null)\r\n return;\r\n\r\n if (item.indexOf('|') > -1) {\r\n let retorno = item\r\n .split('|')\r\n .map(icone => {\r\n\r\n if (icone.indexOf(':') > -1) {\r\n let dados = icone.split(':');\r\n return { Name: item, Icon: dados[0], Tooltip: dados[1], Principal: true };\r\n\r\n } else return { Name: item, Icon: icone, Tooltip: '', Principal: true };\r\n\r\n }).filter(a => a.Icon != null && a.Icon != '');\r\n\r\n let index = 0;\r\n retorno.forEach(element => {\r\n if (this.icons.find(a => a.Name == element.Name && a.Icon == element.Icon) == null){\r\n element.Principal = index == 0;\r\n this.icons.push(element);\r\n }\r\n\r\n index++;\r\n });\r\n } else {\r\n let element: any = [];\r\n\r\n if (item.indexOf(':') > -1) {\r\n let dados = item.split(':');\r\n element = { Name: item, Icon: dados[0], Tooltip: dados[1], Principal: true };\r\n\r\n } else element = { Name: item, Icon: item, Tooltip: \"\", Principal: true };\r\n\r\n if (this.icons.find(a => a.Name == element.Name) == null)\r\n this.icons.push(element);\r\n }\r\n });\r\n }\r\n\r\n info(value) {\r\n this._dialog.alert(value);\r\n }\r\n\r\n back() {\r\n this.navigateTo(this.backurl + (this.parentIdUrl == null ? \"\" : \"/\" + this.parentIdUrl), false);\r\n }\r\n\r\n openModal(modalComponent: any = this.form, width: Number = this.width) {\r\n\r\n let ref = this.modal.open(modalComponent, {\r\n data: this._prop,\r\n disableClose: true,\r\n width: width + 'px'\r\n });\r\n\r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n if (r == null)\r\n return;\r\n\r\n if (r.modalAction == InfoModalAction.Save)\r\n this.getData();\r\n\r\n this.onclosemodal.emit(r);\r\n });\r\n\r\n ref.keydownEvents().subscribe((r) => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n ref.close();\r\n });\r\n }\r\n\r\n hideLoad() {\r\n this.setPagebarTitle();\r\n this.loading = false;\r\n }\r\n\r\n getPermission() {\r\n this.hasPermissionNew = this._authenticationService.hasPermission(this.url, 'new');\r\n this.hasPermissionEdit = this._authenticationService.hasPermission(this.url, 'edit');\r\n this.hasPermissionDelete = this._authenticationService.hasPermission(this.url, 'remove');\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n download(arquivoId: any) {\r\n if (this.apidownload == null)\r\n alert('API Download está null');\r\n\r\n this.loading = true;\r\n this._dataAccessService.get(this.apidownload, (this.methoddownload != null ? this.methoddownload : 'Get'), \"id=\" + arquivoId).subscribe(r => {\r\n this.messages = r.messages;\r\n\r\n if (r.success && r.data != null) {\r\n var binaryString = window.atob(r.data.Conteudo);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n\r\n var blob = new Blob([bytes]);\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, r.data.Nome);\r\n } else {\r\n let fileURL = URL.createObjectURL(blob);\r\n let elementA: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;\r\n elementA.href = fileURL;\r\n elementA.download = r.data.Nome;\r\n document.body.appendChild(elementA);\r\n elementA.click(); \r\n document.body.removeChild(elementA);\r\n }\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n eventButton(model: any, api: any, method: string, confirm: boolean = true) {\r\n if (confirm) {\r\n this._dialog\r\n .YesOrNo('MensagemConfirmar')\r\n .subscribe(ret => {\r\n if (ret.button == InfoDialogButtons.Yes) {\r\n this.loading = true;\r\n this._dataAccessService.post(api, model, method).subscribe(r => {\r\n if (r.success)\r\n this.getData();\r\n else if(this.showmessageerror)\r\n this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n });\r\n } else {\r\n this.loading = true;\r\n this._dataAccessService.post(api, model, method).subscribe(r => {\r\n if (r.success)\r\n this.getData();\r\n else if(this.showmessageerror)\r\n this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n}","import { Component, forwardRef, Input, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-input',\r\n styleUrls: [ 'input.component.scss' ],\r\n templateUrl: 'input.component.html',\r\n providers:[\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoInputComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() readonly: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() maxlength: any;\r\n @Input() type: string = 'text';\r\n @Input() rows: number = 1;\r\n @Input() tabindex: number = 0;\r\n @Input() iconPrefix: string = '';\r\n @Input() iconSuffix: string = '';\r\n @Input() min: number = -99999999999999.999999999;\r\n @Input() max: number = 99999999999999.999999999;\r\n @Input() step: number = null;\r\n\r\n @Output() onblur = new EventEmitter();\r\n \r\n maskOptions: any = {\r\n align: 'right',\r\n allowNegative: true,\r\n decimal: ',',\r\n precision: 2,\r\n prefix: '',\r\n suffix: '',\r\n thousands: '.'\r\n };\r\n \r\n value: string = '';\r\n customMask: string = null;\r\n onChange: any;\r\n onTouched: any;\r\n passwordMode: boolean = false;\r\n\r\n ngOnInit() { \r\n this.passwordMode = this.type.toLocaleLowerCase() == 'password';\r\n }\r\n\r\n private methodIsmask: string = null;\r\n @Input()\r\n get ismask(){\r\n return this.methodIsmask;\r\n }\r\n\r\n set ismask(value){\r\n this.methodIsmask = value;\r\n\r\n if (this.methodIsmask != null) {\r\n this.methodIsmask = this.methodIsmask.toLowerCase();\r\n \r\n if (this.methodIsmask == 'int')\r\n this.maskOptions.precision = 0;\r\n\r\n else if (this.methodIsmask[0] == 'n' && (this.methodIsmask.length == 2 || this.methodIsmask.length == 3))\r\n this.maskOptions.precision = parseInt(this.methodIsmask.replace('n', ''));\r\n\r\n else this.customMask = this.methodIsmask;\r\n }\r\n }\r\n\r\n onBlur() {\r\n if (this.type == 'number' || (this.ismask != null && this.ismask.startsWith(\"n\"))) {\r\n if (this.min != null)\r\n this.value = this.min > Number(this.value) ? null : this.value;\r\n\r\n if (this.max != null)\r\n this.value = this.max < Number(this.value) ? null : this.value;\r\n\r\n this.onChangeValue();\r\n }\r\n\r\n if (this.onblur != null)\r\n this.onblur.emit(this.value);\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.value);\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n this.value = modelValue;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}","import { Component, Input, OnChanges } from \"@angular/core\";\r\nimport { InfoDialogModal } from \"../../layouts/dialog/dialog.component\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\n\r\n@Component({\r\n selector: 'info-input-list',\r\n templateUrl: 'input-list.component.html',\r\n styleUrls: ['input-list.component.scss']\r\n})\r\nexport class InfoInputListComponent implements OnChanges {\r\n \r\n @Input() model: any = []\r\n @Input() readonly: boolean = false\r\n @Input() percent: boolean = false\r\n @Input() hiddenDe: boolean = false\r\n @Input() disabled: boolean = false\r\n\r\n mask: string = \"n2\";\r\n @Input() \r\n get ismask() {\r\n return this.mask;\r\n }\r\n\r\n set ismask(value) {\r\n this.mask = (value == null ? this.mask : value);\r\n }\r\n\r\n messages: string[] = [];\r\n novoValor = { De: null, Ate: null, Valor: null, Excluir: false };\r\n\r\n constructor(private _dialog: InfoDialogModal) { }\r\n\r\n ngOnChanges() {\r\n if (this.model == null)\r\n this.model = [];\r\n\r\n for (var i = 0; i < this.model.length; i++)\r\n this.model[i].Excluir = false;\r\n }\r\n\r\n getModel(): any[]{\r\n if (!this.model || this.model == null)\r\n return [];\r\n\r\n return this.model.filter(m => !m.Excluir);\r\n }\r\n\r\n add() {\r\n this.messages = [];\r\n\r\n if (this.hiddenDe && this.novoValor.Ate == null)\r\n this.messages.push('InformeUmValorDe');\r\n\r\n if (!this.hiddenDe && this.novoValor.De == null && this.novoValor.Ate == null)\r\n this.messages.push('InformeUmValorDeOuAte');\r\n\r\n if (!this.hiddenDe && this.novoValor.Ate < this.novoValor.De)\r\n this.messages.push('ValorAteMenorQueDe');\r\n\r\n if (this.novoValor.Valor == null)\r\n this.messages.push('InformeValor');\r\n\r\n if (this.messages.length > 0){\r\n\r\n \r\n\r\n return;\r\n }\r\n\r\n this.model.push({ De: this.novoValor.De, Ate: this.novoValor.Ate, Valor: this.novoValor.Valor, Excluir: false });\r\n this.novoValor = { De: null, Ate: null, Valor: null, Excluir: false };\r\n\r\n this.ordernar();\r\n }\r\n\r\n remover(item: any){\r\n\r\n this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {\r\n if (r.button == InfoDialogButtons.No)\r\n return;\r\n\r\n item.Excluir = true;\r\n this.model.splice(this.model.findIndex(m => m == item), 1);\r\n this.ordernar();\r\n });\r\n }\r\n\r\n ordernar(){\r\n\r\n this.model = this.model.sort((a, b) => { \r\n if (this.hiddenDe ? (a.Ate < b.Ate) : (a.De < b.De))\r\n return -1;\r\n\r\n else if (this.hiddenDe ? (a.Ate > b.Ate) : (a.De > b.De))\r\n return 1;\r\n\r\n else return 0;\r\n });\r\n }\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { InfoTranslateService } from \"../../service/translate.service\";\r\n\r\n@Component({\r\n selector: 'info-list-checkbox',\r\n templateUrl: 'list-checkbox.component.html',\r\n styles: ['ul.checkbox-list { height: 270px; overflow-y: auto }']\r\n})\r\nexport class InfoListCheckboxComponent implements OnInit {\r\n\r\n @Input() filterlabel: string = 'Filtrar';\r\n @Input() filterdescription: string;\r\n\r\n @Input() selectedlabel: string = 'Filtrar';\r\n @Input() selecteddescription: string;\r\n\r\n @Input() model: any[] = [];\r\n @Input() max: number = 0;\r\n @Input() onelist: boolean = false;\r\n\r\n private disabledValue: any;\r\n @Input()\r\n get disabled() {\r\n return this.disabledValue;\r\n }\r\n\r\n set disabled(value) {\r\n this.disabledValue = value;\r\n }\r\n\r\n filterList: string = '';\r\n filterSelected: string = ''; \r\n message: string = \"\";\r\n\r\n constructor(private _translate: InfoTranslateService) { }\r\n\r\n ngOnInit() {\r\n if (this.max != null && this.max > 0)\r\n this.message = this._translate.translate('MensagemTopRegistro').replace('{0}', this.max.toString());\r\n }\r\n \r\n getModel(valor: string, selecionados: boolean = false, todos = false): any[] {\r\n if (todos || this.max == null || this.max == 0)\r\n return this.model.filter(r => (selecionados ? r.Selecionado : r.Selecionado == r.Selecionado) && r.Descricao.toLowerCase().indexOf(valor.toLowerCase()) > -1);\r\n else \r\n return this.model.filter(r => (selecionados ? r.Selecionado : r.Selecionado == r.Selecionado) && r.Descricao.toLowerCase().indexOf(valor.toLowerCase()) > -1).slice(0, this.max);\r\n }\r\n\r\n marcarFiltrados(valor: string, marcar: boolean, selecionados: boolean = false) {\r\n let ids: any[] = this.getModel(valor, selecionados, true).map(r => r.Id);\r\n\r\n this.model.forEach((item, index) => {\r\n if (ids.indexOf(item.Id) > -1)\r\n item.Selecionado = marcar; \r\n });\r\n }\r\n\r\n marcarTodos(marcar: boolean) {\r\n this.model.forEach(item => item.Selecionado = marcar);\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-message',\r\n templateUrl: 'message.component.html',\r\n styleUrls: ['message.component.scss']\r\n})\r\n\r\nexport class InfoMessageComponent {\r\n\r\n @Input() color: string = 'info';\r\n @Input() outline: boolean = true;\r\n @Input() close: boolean = false;\r\n @Input() min: boolean = false;\r\n\r\n delete(event: any, message: any) {\r\n event.preventDefault();\r\n message.remove();\r\n }\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-paginator',\r\n templateUrl: 'paginator.component.html',\r\n styleUrls: ['paginator.component.scss']\r\n})\r\n\r\nexport class InfoPaginatorComponent {\r\n\r\n @Input() size = 5;\r\n @Input() min = false;\r\n @Input() show = false;\r\n @Output() index = 0;\r\n @Output() change = new EventEmitter<number>();\r\n\r\n _total = 0;\r\n @Input()\r\n get total(){\r\n return this._total;\r\n }\r\n\r\n set total(value){\r\n this._total = value;\r\n this.initialize();\r\n }\r\n\r\n onChange: any;\r\n indexActive = 0;\r\n numberPages = 1;\r\n pages = [];\r\n totalDescription = '';\r\n\r\n refresh(total: number) {\r\n this.total = total;\r\n }\r\n\r\n initialize() {\r\n this.pages = [];\r\n this.indexActive = this.index;\r\n this.numberPages = Math.ceil(this.total / this.size);\r\n \r\n if (this.total > this.size) {\r\n let i = (this.index > 2) ? (this.index - 2) : 0;\r\n let x = this.numberPages;\r\n\r\n if ((this.index + 2) < this.numberPages){\r\n \r\n let aux = 3;\r\n if (this.index < 2)\r\n aux = (5 - this.index);\r\n\r\n x = (this.index + aux);\r\n }\r\n else if ((this.index - 2) > 0)\r\n i = this.index - (5 - (this.numberPages - this.index));\r\n \r\n if (i < 0)\r\n i = 0;\r\n\r\n if (x > this.numberPages)\r\n x = this.numberPages;\r\n \r\n for (i; i < x; i++)\r\n this.pages.push(i);\r\n\r\n } else {\r\n this.pages.push(0);\r\n }\r\n \r\n this.setDescription();\r\n this.show = true;\r\n }\r\n\r\n goto(index: number) {\r\n \r\n if (this.index == index)\r\n return;\r\n\r\n this.index = index;\r\n this.change.emit(this.index);\r\n }\r\n\r\n next() {\r\n this.goto(this.index + 1);\r\n }\r\n\r\n previous() {\r\n this.goto(this.index - 1);\r\n }\r\n\r\n setDescription(){\r\n let currentInit = (this.size * this.index) + 1;\r\n let currentEnd = this.size * (this.index + 1);\r\n\r\n if (currentEnd > this.total)\r\n currentEnd = this.total;\r\n\r\n if (currentInit == null || currentEnd == null) return;\r\n\r\n this.totalDescription = currentInit + ' - ' + currentEnd + ' de ' + this.total;\r\n }\r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\n\r\n@Component({\r\n selector: 'info-select',\r\n templateUrl: 'select.component.html',\r\n styleUrls: ['select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoSelectComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoSelectComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required: any = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() blank = false;\r\n @Input() blankItem: any = null;\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n @Input() notranslate: any = null;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n selectedValue: any = null;\r\n translatValue: boolean = true;\r\n onChange: any;\r\n onTouched: any;\r\n\r\n private initialized = false;\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData();\r\n }\r\n \r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n \r\n if (this.selectfirst && this.data != null && this.data.length > 0 && !this.data.some(d => d.Id == this.selectedValue))\r\n this.writeValue(this.data[0].Id);\r\n \r\n if (this.disablednoregisters)\r\n this.setDisabledState((this.data == null || this.data.length == 0));\r\n }\r\n\r\n constructor(private _dataAcessService: InfoDataService) { }\r\n\r\n ngOnInit() {\r\n this.name += this.placeholder.replace(/ /g, '');\r\n this.blank = (this.required !== '' && this.required !== 'true' && this.required !== true);\r\n\r\n if (this.blankItem == null)\r\n this.blankItem = { Id: null, Nome: '' };\r\n \r\n this.getData();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.selectedValue = value;\r\n this.onChangeValue();\r\n }\r\n\r\n getData() {\r\n this.initialized = true;\r\n \r\n if (this.api == null || (this.params != null && this.params.toLowerCase().indexOf('undefined') > -1))\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n this._dataAcessService.get(this.api, this.method, this.params).subscribe(r => {\r\n if (r.success) {\r\n this.data = r.data;\r\n if (this.selectedValue) this.onChangeValue();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.selectedValue);\r\n\r\n if (this.onselecteditem != null)\r\n this.onselecteditem.emit(this.data == null ? null : this.data.find(r => r.Id == this.selectedValue));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;\r\n }\r\n}","import { Component, OnInit, Input, HostBinding } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-timeline',\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss'],\r\n host: {\r\n '[class.timeline]': 'true',\r\n '[class.show-date]': 'true'\r\n }\r\n})\r\nexport class InfoTimelineComponent implements OnInit {\r\n @Input() showdate: boolean = true;\r\n @Input() align: string = 'between';\r\n @Input() style: any = '';\r\n @Input() label: string = '';\r\n @Input() data: any[] = [];\r\n\r\n @HostBinding('class.align-left') alignLeft: boolean = false;\r\n @HostBinding('class.align-center') alignCenter: boolean = false;\r\n @HostBinding('class.align-right') alignRight: boolean = false;\r\n @HostBinding('class.align-between') alignBetween: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.alignLeft = (this.align === 'left');\r\n this.alignCenter = (this.align === 'center');\r\n this.alignRight = (this.align === 'right');\r\n this.alignBetween = (this.align === 'between');\r\n }\r\n}","import { Component, forwardRef, Input, SecurityContext, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { AngularEditorComponent, AngularEditorConfig, AngularEditorService } from '@kolkov/angular-editor';\r\n \r\n@Component({\r\n selector: 'info-editor',\r\n templateUrl: './editor.component.html',\r\n styleUrls: ['./editor.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoEditorComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoEditorComponent implements ControlValueAccessor {\r\n\r\n @ViewChild('editor') editor: AngularEditorComponent;\r\n\r\n @Input() required: boolean = false;\r\n @Input() enabledhtmlmode: boolean = false;\r\n @Input() sanitize: boolean = true;\r\n\r\n @Input()\r\n get disabled() { return !(this.editorConfig || {}).editable; }\r\n set disabled(value) { this.editorConfig.editable = !value; }\r\n\r\n @Input()\r\n get height() { return (this.editorConfig || {}).height; }\r\n set height(value) { this.editorConfig.height = value || 'auto'; }\r\n\r\n @Input()\r\n get minheight() { return (this.editorConfig || {}).minHeight; }\r\n set minheight(value) { this.editorConfig.minHeight = value || '0'; }\r\n\r\n @Input()\r\n get maxheight() { return (this.editorConfig || {}).maxHeight; }\r\n set maxheight(value) { this.editorConfig.maxHeight = value || 'auto'; }\r\n\r\n @Input()\r\n get width() { return (this.editorConfig || {}).width; }\r\n set width(value) { this.editorConfig.width = value || 'auto'; }\r\n\r\n @Input()\r\n get minwidth() { return (this.editorConfig || {}).minWidth; }\r\n set minwidth(value) { this.editorConfig.minWidth = value || '0'; }\r\n\r\n value: any = '';\r\n \r\n onChange: any;\r\n onTouched: any;\r\n focused = false;\r\n id = null;\r\n\r\n editorConfig: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: 'auto',\r\n minHeight: '0',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n defaultParagraphSeparator: '',\r\n toolbarPosition: 'top',\r\n sanitize: false,\r\n fonts: [\r\n {class: 'arial', name: 'Arial'},\r\n {class: 'times-new-roman', name: 'Times New Roman'},\r\n {class: 'calibri', name: 'Calibri'},\r\n {class: 'comic-sans-ms', name: 'Comic Sans MS'}\r\n ],\r\n };\r\n\r\n constructor(private _sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n this.id = `editor-${this.getGuid()}`;\r\n }\r\n\r\n ngAfterViewInit() {\r\n var _this = this;\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('focus', () => _this.focused = true);\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('blur', () => _this.focused = false);\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('mouseout', () => _this.editor.editorToolbar['editorService'].saveSelection());\r\n }\r\n\r\n private getGuid() : string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : ( r & 0x3 | 0x8 );\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n onChangeValue() {\r\n if (this.sanitize)\r\n this.value = this._sanitizer.sanitize(SecurityContext.HTML, this.value);\r\n if (this.onChange != null)\r\n this.onChange(this.value);\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n this.value = this.sanitize ? this._sanitizer.sanitize(SecurityContext.HTML, modelValue) : modelValue;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n \r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\n\r\n@Component({\r\n selector: 'info-multi-select',\r\n templateUrl: 'multi-select.component.html',\r\n styleUrls: ['multi-select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoMultiSelectComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoMultiSelectComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required: any = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n selectedValues: any[] = [];\r\n onChange: any;\r\n onTouched: any;\r\n\r\n private initialized = false;\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData();\r\n }\r\n \r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n \r\n if (this.selectfirst && this.data != null && this.data.length > 0 && !this.data.some(d => this.selectedValues?.indexOf(d.Id) > -1))\r\n this.writeValue([this.data[0].Id]);\r\n \r\n if (this.disablednoregisters)\r\n this.setDisabledState((this.data == null || this.data.length == 0));\r\n }\r\n\r\n constructor(private _dataAcessService: InfoDataService) { }\r\n\r\n ngOnInit() {\r\n this.name += this.placeholder.replace(/ /g, '');\r\n this.getData();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.selectedValues = value;\r\n this.onChangeValue();\r\n }\r\n\r\n getData() {\r\n this.initialized = true;\r\n \r\n if (this.api == null || (this.params != null && this.params.toLowerCase().indexOf('undefined') > -1))\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n this._dataAcessService.get(this.api, this.method, this.params).subscribe(r => {\r\n if (r.success) {\r\n this.data = r.data;\r\n if ((this.selectedValues || []).length > 0) this.onChangeValue();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.selectedValues);\r\n\r\n if (this.onselecteditem != null)\r\n this.onselecteditem.emit(this.data == null ? null : this.data.filter(r => this.selectedValues?.indexOf(r.Id) > -1));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;\r\n }\r\n}","import { ENTER } from '@angular/cdk/keycodes';\r\nimport { Component, forwardRef, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-chips',\r\n templateUrl: 'chips.component.html',\r\n providers:[\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoChipsComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoChipsComponent implements ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() readonly: boolean = false;\r\n readonly separatorKeysCodes: number[] = [ENTER];\r\n\r\n @Output() onblur = new EventEmitter();\r\n \r\n values: string[] = [];\r\n onChange: any;\r\n onTouched: any;\r\n\r\n add(event): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n if ((value || '').trim()) this.values.push(value.trim());\r\n if (input) input.value = '';\r\n \r\n this.writeValue(this.values);\r\n }\r\n \r\n remove(index): void {\r\n if (index >= 0) this.values.splice(index, 1);\r\n this.writeValue(this.values);\r\n }\r\n \r\n\r\n onBlur() {\r\n this.onblur.emit(this.values);\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.values);\r\n }\r\n\r\n writeValue(modelValues: any): void {\r\n this.values = modelValues;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { InfoPlatformModel } from \"../../model/platform.model\";\r\nimport { InfoSessionModel } from \"../../model/session.model\";\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoTopbarComponent } from \"../topbar/topbar.component\";\r\n\r\n@Component({\r\n selector: 'info-main',\r\n templateUrl: 'main.component.html',\r\n styleUrls: ['main.component.scss']\r\n})\r\nexport class InfoMainComponent implements OnInit {\r\n\r\n @Input() opened: boolean = false;\r\n @Input() version: string = null;\r\n @Input() messages: any[] = [];\r\n private _themes: any = [];\r\n\r\n @Input() get themes() { return this._themes; }\r\n set themes(value) {\r\n this._themes = value;\r\n this._platform.Themes = this.themes;\r\n\r\n if (this._session.TemaId > 0 && this.setthemeonchangecompany)\r\n this._themeService.setThemeByLoggedCompany();\r\n }\r\n\r\n @Input() languages: any = [];\r\n @Input() profileurl: string = '';\r\n @Input() loginurl: string = 'login';\r\n\r\n @Input() menuapi: any = null;\r\n @Input() menumethod: string = 'GetMenu';\r\n @Input() activemenubyurl: boolean = false;\r\n\r\n @Input() loggeduserapi: any = null;\r\n @Input() loggedusermethod: string = 'GetLoggedUser';\r\n\r\n @Input() notificationapi: any = null;\r\n @Input() notificationgetmethod: string = 'Get';\r\n @Input() notificationpostmethod: string = 'PostNotification';\r\n @Input() notificationverifymethod: string = 'Verify';\r\n @Input() notificationverifyenabled: boolean = true;\r\n \r\n @Input() fastsearchform: any = null;\r\n @Input() fastsearchformwidth: number = 1200;\r\n @Input() fastsearchtitle: string = 'PesquisaRapidaCarteira';\r\n \r\n @Input() setthemeonchangecompany: boolean = false;\r\n\r\n @Input() shortcutapi: any = null;\r\n\r\n @Output() ongetnotification = new EventEmitter();\r\n @Output() onverifynotification = new EventEmitter();\r\n\r\n @ViewChild('topbar') topbar: InfoTopbarComponent;\r\n\r\n constructor(public _platform: InfoPlatformModel, \r\n private _session: InfoSessionModel, \r\n private _router: Router, \r\n private _dataAccessService: InfoDataService, \r\n private _themeService: InfoThemeService,\r\n private _renderer: Renderer2,\r\n private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n //console.log('info-library.main.ngOnInit');\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n\r\n this._platform.Themes = this.themes;\r\n this._platform.ShortcutApi = this.shortcutapi;\r\n\r\n if (localStorage.getItem(this._platform.TokenKey) == null)\r\n this._router.navigateByUrl(this.loginurl);\r\n\r\n else this.getLoggedUser();\r\n\r\n if (document.body.classList.length > 0){\r\n let theme = document.body.classList[0];\r\n \r\n if (document.body.classList[0].indexOf('-theme') < 0 && this._platform.Config.theme != null)\r\n theme = '_' + this._platform.Config.theme + '-theme';\r\n \r\n this._themeService.setTheme(theme);\r\n }\r\n }\r\n\r\n onChangeTopBarState() {\r\n this.opened = !this.opened;\r\n }\r\n\r\n onChangeSideBarState(){\r\n this.topbar.openSidebar();\r\n }\r\n\r\n getLoggedUser() {\r\n if (localStorage.getItem(this._platform.SessionKey) != null)\r\n Object.assign(this._session, JSON.parse(localStorage.getItem(this._platform.SessionKey)));\r\n\r\n if (this._session.UsuarioId != null || this.loggeduserapi == null)\r\n return;\r\n\r\n this._dataAccessService.get(this.loggeduserapi, this.loggedusermethod).subscribe(r => {\r\n if (r.success) {\r\n this._session.UsuarioId = r.data.UsuarioId;\r\n this._session.Usuario = r.data.Usuario;\r\n this._session.Login = r.data.Login;\r\n this._session.Email = r.data.Email;\r\n this._session.Perfil = r.data.Perfil;\r\n this._session.EmpresaId = r.data.EmpresaId;\r\n this._session.TemaId = r.data.TemaId;\r\n this._session.Empresa = r.data.Empresa;\r\n this._session.UltimoAcesso = r.data.UltimoAcesso;\r\n this._session.Master = r.data.Master;\r\n this._session.Clone = r.data.Clone;\r\n this._session.DataMovimentacao = r.data.DataMovimentacao;\r\n this._session.OcultarNomeCliente = r.data.OcultarNomeCliente;\r\n this._session.Empresas = r.data.Empresas;\r\n this._session.Parametros = r.data.Parametros;\r\n this._session.MFA = r.data.MFA;\r\n this._session.TempoInatividade = r.data.TempoInatividade;\r\n this._session.Versao = r.data.Versao;\r\n this.version = r.data.Versao;\r\n\r\n if (this._session.Parametros.some(p => p.Chave == 'DisclaimerGeral'))\r\n this.messages.push(this._session.Parametros.find(p => p.Chave == 'DisclaimerGeral').Valor);\r\n\r\n if (this._session.TemaId != null)\r\n this._themeService.setThemeByLoggedCompany();\r\n }\r\n });\r\n }\r\n\r\n onGetNotificationsTopBar(event) {\r\n this.ongetnotification.emit(event);\r\n }\r\n\r\n onVerifyNotificationsTopBar(event) {\r\n this.onverifynotification.emit(event);\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoLastSearchModel } from '../../model/last-search.model';\r\nimport { InfoSessionModel } from '../../model/session.model';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class InfoSidebarComponent implements OnInit {\r\n\r\n @Input() api: any = null;\r\n @Input() method: string = 'GetMenu';\r\n @Input() activemenubyurl: boolean = false;\r\n @Output() onchangestate = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n menu: any = [];\r\n openSubmenu: string = '';\r\n menuAtivo: string = 'Dashboard';\r\n\r\n constructor(private _dataAcessService: InfoDataService, private _authentication: InfoAuthenticationService, \r\n private _themeService: InfoThemeService, public _session: InfoSessionModel, public _platform: InfoPlatformModel,\r\n private _lastSearch: InfoLastSearchModel, private _router: Router, private _renderer: Renderer2, private _element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n if (!this._authentication.isLogged() || this.api == null)\r\n return;\r\n\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.loading = true;\r\n\r\n this._dataAcessService\r\n .get(this.api, this.method)\r\n .subscribe(r => {\r\n if (r.success){\r\n this.menu = r.data;\r\n this._platform.Menu = r.data;\r\n this._authentication.definePaginaAtiva(this._router.url);\r\n\r\n this.monitorarUrl();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n toggle(e: Event, menuItem: any) {\r\n\r\n e.preventDefault();\r\n\r\n if (!menuItem.Enabled)\r\n return;\r\n\r\n if (!menuItem.Active)\r\n for (let i = 0; i < this.menu.length; i++)\r\n this.menu[i].Active = false;\r\n\r\n menuItem.Active = !menuItem.Active;\r\n }\r\n\r\n access(menu: string){\r\n this.menuAtivo = menu;\r\n this.openSubmenu = '';\r\n \r\n this.resetLastSearch();\r\n }\r\n\r\n monitorarUrl(){\r\n if (this.activemenubyurl){\r\n this.ativarMenu(this._router.url);\r\n\r\n this._router.events.subscribe(e => {\r\n if (e instanceof NavigationStart)\r\n this.ativarMenu(e.url);\r\n });\r\n }\r\n }\r\n\r\n ativarMenu(url: string){\r\n let itemMenu = this.menu.find(m => m.Routing == url);\r\n\r\n if (itemMenu != null)\r\n this.menuAtivo = itemMenu.Title;\r\n }\r\n\r\n toggleSubmenu(menu) {\r\n this.openSubmenu = this.openSubmenu == menu ? '' : menu;\r\n }\r\n\r\n resetLastSearch(){\r\n this._lastSearch.model = null;\r\n this._lastSearch.url = '';\r\n }\r\n\r\n changeSidebar() {\r\n this.onchangestate.emit();\r\n }\r\n\r\n toggleSidebar(){\r\n this._themeService.setMenuMin();\r\n }\r\n}","import { Component, OnInit, Input, Output, EventEmitter, Renderer2, ElementRef } from '@angular/core';\r\nimport { InfoDialogModal } from '../dialog/dialog.component';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { InfoDialogButtons } from '../../enum';\r\nimport { InfoTranslateService } from '../../service/translate.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoNotificationModel } from '../../model/notification.model';\r\nimport { InfoSessionModel } from '../../model/session.model'; \r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\n\r\n@Component({\r\n selector: 'info-topbar',\r\n templateUrl: './topbar.component.html',\r\n styleUrls: ['./topbar.component.scss']\r\n})\r\nexport class InfoTopbarComponent implements OnInit {\r\n @Input() opened: boolean = false;\r\n @Input() languages: any = [];\r\n @Input() themes: any = [];\r\n @Input() notificationapi: any = null;\r\n @Input() notificationgetmethod: string = 'Get';\r\n @Input() notificationpostmethod: string = 'PostNotification';\r\n @Input() notificationverifymethod: string = 'Verify';\r\n @Input() notificationverifyenabled: boolean = true;\r\n @Input() fastsearchform: any = null;\r\n @Input() fastsearchformwidth: number = 1200;\r\n @Input() fastsearchtitle: string = 'PesquisaRapidaCarteira';\r\n @Input() profileurl: string = '';\r\n @Input() setthemeonchangecompany: boolean = false;\r\n @Output() onchangestate = new EventEmitter();\r\n @Output() ongetnotification = new EventEmitter();\r\n @Output() onverifynotification = new EventEmitter();\r\n\r\n modalRef: any = null;\r\n loading: boolean = false;\r\n prodution: boolean = false;\r\n notifications: InfoNotificationModel = new InfoNotificationModel();\r\n\r\n topMenu: any = {\r\n empresa: false,\r\n tema: false,\r\n idioma: false,\r\n notificacao: false,\r\n calendario: false\r\n };\r\n\r\n constructor(private _translateService: InfoTranslateService, \r\n public _authenticationService: InfoAuthenticationService, private _dataService: InfoDataService, \r\n private _themeService: InfoThemeService, private _router: Router, private _dialog: InfoDialogModal, \r\n public _session: InfoSessionModel, public _platform: InfoPlatformModel, private _modal: MatDialog,\r\n private _renderer: Renderer2, private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n \r\n this.prodution = this._platform.Config.production;\r\n this.getNotifications();\r\n }\r\n\r\n setCompany(company) {\r\n this._authenticationService.trocarEmpresa(this._session.Login, company.Id).subscribe(res => {\r\n if (res.success) {\r\n\r\n document.body.setAttribute('loading', 'true');\r\n \r\n this._session.Permissoes = [];\r\n this._session.EmpresaId = company.Id;\r\n this._session.Empresa = company.Nome;\r\n this._session.TemaId = company.TemaId;\r\n this._themeService.setThemeByLoggedCompany();\r\n\r\n localStorage.removeItem(\"Dashboard\");\r\n localStorage.setItem(this._platform.SessionKey, JSON.stringify(this._session));\r\n this._router.navigateByUrl('').then(r => location.reload());\r\n \r\n } else this._authenticationService.logout();\r\n }, err => this._authenticationService.logout());\r\n }\r\n\r\n setLanguage(language: string) {\r\n this._translateService.set(language);\r\n }\r\n\r\n setTheme(theme) {\r\n //console.log('topbar.setTheme', theme);\r\n this._themeService.setTheme(theme);\r\n }\r\n\r\n toggleMode(){\r\n this._themeService.setModePrime();\r\n }\r\n\r\n openFastSearch() {\r\n this.close();\r\n\r\n if (this.modalRef != null) \r\n return;\r\n\r\n this.modalRef = this._modal.open(this.fastsearchform, {\r\n disableClose: true,\r\n width: this.fastsearchformwidth + 'px'\r\n });\r\n\r\n this.modalRef.keydownEvents().subscribe(r => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n this.modalRef.close();\r\n });\r\n\r\n this.modalRef.afterClosed().subscribe(r => { this.modalRef = null });\r\n }\r\n\r\n open(achtiveMenu) {\r\n this.topMenu.empresa = achtiveMenu == 'empresa';\r\n this.topMenu.tema = achtiveMenu == 'tema';\r\n this.topMenu.idioma = achtiveMenu == 'idioma';\r\n this.topMenu.notificacao = achtiveMenu == 'notificacao';\r\n this.topMenu.calendario = achtiveMenu == 'calendario';\r\n }\r\n\r\n close() {\r\n this.topMenu.empresa = false;\r\n this.topMenu.tema = false;\r\n this.topMenu.idioma = false;\r\n this.topMenu.notificacao = false;\r\n this.topMenu.calendario = false;\r\n }\r\n\r\n openSidebar() {\r\n this.opened = !this.opened;\r\n this.onchangestate.emit();\r\n }\r\n\r\n getNotifications() {\r\n if (!this._authenticationService.isLogged() || this.notificationapi == null)\r\n return;\r\n\r\n this._dataService.get(this.notificationapi, this.notificationgetmethod, null).subscribe(r => {\r\n if (r.success) {\r\n this.notifications.Count = r.data.Count;\r\n this.notifications.Itens = r.data.Itens;\r\n\r\n if (this.notificationverifyenabled)\r\n this.verifyNotifications();\r\n\r\n this.ongetnotification.emit(this.notifications);\r\n }\r\n });\r\n }\r\n\r\n verifyNotifications() {\r\n if (!this._authenticationService.isLogged() || this.notificationapi == null)\r\n return;\r\n\r\n this._dataService.get(this.notificationapi, this.notificationverifymethod).subscribe(r => {\r\n if (r.data == -1)\r\n this.logout();\r\n\r\n else if (this.notifications.Count == r.data)\r\n setTimeout(() => { this.verifyNotifications(); }, 15000);\r\n\r\n else this.getNotifications();\r\n\r\n this.onverifynotification.emit({...this.notifications, VerifyCount: r.data});\r\n });\r\n }\r\n\r\n setNotificationStatus(read, access, remove) {\r\n if (this.notifications.Count == 0) return;\r\n\r\n this._dataService.post(this.notificationapi, { Id: '00000000-0000-0000-0000-000000000000', Acesso: access, Leitura: read, Exclusao: remove }, this.notificationpostmethod)\r\n .subscribe(r => this.notifications.Count = 0);\r\n }\r\n\r\n navigate(url: string) {\r\n this._router.navigate([url.replace('/#', '')]);\r\n }\r\n\r\n logout() {\r\n this._dialog.YesOrNo('DesejaRealmenteSair').subscribe(r => {\r\n if (r.button == InfoDialogButtons.Yes)\r\n this._authenticationService.logout();\r\n });\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoLastSearchModel } from '../../model/last-search.model';\r\nimport { InfoSessionModel } from '../../model/session.model';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-topmenu',\r\n templateUrl: './topmenu.component.html',\r\n styleUrls: ['./topmenu.component.scss']\r\n})\r\nexport class InfoTopMenuComponent implements OnInit {\r\n \r\n @Input() api: any = null;\r\n @Input() method: string = 'GetMenu';\r\n @Output() onchangestate = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n menu: any = [];\r\n openSubmenu: string = '';\r\n menuAtivo: string = 'Dashboard';\r\n\r\n constructor(private _dataAcessService: InfoDataService, private _authentication: InfoAuthenticationService, \r\n private _lastSearch: InfoLastSearchModel, private _router: Router, \r\n public _session: InfoSessionModel, public _platform: InfoPlatformModel,\r\n private _renderer: Renderer2, private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n if (!this._authentication.isLogged() || this.api == null)\r\n return;\r\n\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.loading = true;\r\n\r\n this._dataAcessService\r\n .get(this.api, this.method)\r\n .subscribe(r => {\r\n if (r.success){\r\n this.menu = r.data;\r\n this._platform.Menu = r.data;\r\n this._authentication.definePaginaAtiva(this._router.url);\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n toggle(e: Event, menuItem: any) {\r\n\r\n e.preventDefault();\r\n\r\n if (!menuItem.Enabled)\r\n return;\r\n\r\n if (!menuItem.Active)\r\n for (let i = 0; i < this.menu.length; i++)\r\n this.menu[i].Active = false;\r\n\r\n menuItem.Active = !menuItem.Active;\r\n }\r\n\r\n access(menu: string){\r\n this.menuAtivo = menu;\r\n this.openSubmenu = '';\r\n \r\n this.resetLastSearch();\r\n }\r\n\r\n toggleSubmenu(menu) {\r\n this.openSubmenu = this.openSubmenu == menu ? '' : menu;\r\n }\r\n\r\n resetLastSearch(){\r\n this._lastSearch.model = null;\r\n this._lastSearch.url = '';\r\n }\r\n\r\n changeSidebar() {\r\n this.onchangestate.emit();\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'info-loading',\r\n template: `\r\n <section class=\"loading-bar\">\r\n <mat-progress-bar [color]=\"color\" [mode]=\"mode\" *ngIf=\"enabled\" >\r\n </mat-progress-bar>\r\n </section>\r\n `,\r\n styles: [`\r\n .loading-bar { height: 1px; }\r\n .loading-bar .mat-progress-bar { height: 1px; margin: 0; }\r\n `]\r\n})\r\nexport class InfoLoadingComponent{\r\n\r\n @Input() enabled: boolean = false;\r\n @Input() mode: string = 'indeterminate';\r\n @Input() color: string = 'primary';\r\n\r\n}","import { Component, Input, Output, EventEmitter, forwardRef, Inject } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoFormPropModel } from '../../model/form-prop.model';\r\nimport { InfoModalAction } from '../../enum/modal-action.enum';\r\n\r\n@Component({\r\n selector: 'info-modal',\r\n templateUrl: './modal.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoModalComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoModalComponent implements ControlValueAccessor {\r\n\r\n @Input() modaltitle: string = '';\r\n @Input() showcloseicon: boolean = false;\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n @Input() readonly: boolean = null;\r\n @Input() loading: boolean = false;\r\n @Input() loadingblock: boolean = true;\r\n @Input() form: any = null;\r\n @Input() labelclose: string = 'Fechar';\r\n @Input() labelcancel: string = 'Cancelar';\r\n @Input() labelsubmit: string = 'Salvar';\r\n @Input() messages: String[] = [];\r\n @Input() width: number = null;\r\n\r\n @Output() onsave = new EventEmitter();\r\n @Output() onsuccess = new EventEmitter();\r\n\r\n model: any;\r\n onChange: any;\r\n onTouched: any;\r\n\r\n constructor(private _dataAccessService: InfoDataService, @Inject(MAT_DIALOG_DATA) public prop: InfoFormPropModel, private _ref: MatDialogRef<any>) { }\r\n\r\n ngOnInit() {\r\n\r\n if (this.modaltitle == '' && this.prop != null && this.prop.title != null)\r\n this.modaltitle = this.prop.title;\r\n\r\n if (this.api == null && this.prop != null && this.prop.api != null)\r\n this.api = this.prop.api;\r\n\r\n if (this.width != null)\r\n this._ref.updateSize(this.width.toString().replace('px', '') + 'px');\r\n\r\n if (this.readonly == null && this.prop != null && this.prop.readonly != null)\r\n this.readonly = this.prop.readonly;\r\n\r\n this._ref.keydownEvents().subscribe((r) => {\r\n if (r.ctrlKey && r.key == \"Enter\" && !(this.loading || (this.form != null && !this.form.form.valid)) && this.labelsubmit != '' && !this.readonly)\r\n this.submit();\r\n });\r\n }\r\n\r\n submit() {\r\n if (this.onsave.observers.length > 0) {\r\n this.onsave.next();\r\n return;\r\n }\r\n\r\n this.messages = [];\r\n \r\n if (this.api == null || this.api.toString() == '')\r\n this.messages.push('API não informado');\r\n\r\n var dataInicial = this.model[\"DataInicial\"];\r\n var dataFinal = this.model[\"DataFinal\"];\r\n if (dataInicial != null && dataFinal != null && new Date(dataInicial) > new Date(dataFinal)) {\r\n this.messages.push('DataInicialMaiorFinal');\r\n return;\r\n }\r\n\r\n var dataInicio = this.model[\"DataInicio\"];\r\n var dataFim = this.model[\"DataFim\"];\r\n if (dataInicio != null && dataFim != null && new Date(dataInicio) > new Date(dataFim)) {\r\n this.messages.push('DataInicioMaiorFim');\r\n return;\r\n }\r\n\r\n if (this.messages.length > 0)\r\n return;\r\n\r\n this.loading = true;\r\n\r\n this._dataAccessService\r\n .post(this.api, this.model, this.method)\r\n .subscribe(r => {\r\n\r\n if (r.success) {\r\n this.prop.modalAction = InfoModalAction.Save;\r\n this.prop.data = this.model;\r\n this._ref.close(this.prop);\r\n\r\n if (this.onsuccess.observers.length > 0)\r\n this.onsuccess.next();\r\n }\r\n\r\n else this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n close() {\r\n this.messages = [];\r\n this.loading = false;\r\n this._ref.close(this.prop);\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.model = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void { }\r\n}\r\n","import { Component, Input, Inject, ElementRef, Renderer2 } from '@angular/core';\r\nimport { Router, NavigationStart, GuardsCheckStart, NavigationEnd } from '@angular/router';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoTranslateService } from '../../service/translate.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { InfoFormPropModel } from '../../model/form-prop.model';\r\nimport { InfoPageAction } from '../../enum/page-action.enum';\r\nimport { InfoModalAction } from '../../enum/modal-action.enum';\r\n\r\n@Component({\r\n\tselector: 'info-pagebar',\r\n\ttemplateUrl: './pagebar.component.html',\r\n\tstyleUrls: ['./pagebar.component.scss']\r\n})\r\nexport class InfoPagebarComponent {\r\n\r\n\t@Input() margintop = 0;\r\n\t@Input() icon: string;\r\n\t@Input() description: string;\r\n\t@Input() backurl: string = null;\r\n\t@Input() access: any = [];\r\n\t@Input() transparent: boolean = false;\r\n\r\n\tprivate _pageTitle: string;\r\n\tget pagetitle(){\r\n\t\treturn this._pageTitle;\r\n\t}\r\n\r\n\t@Input('pagetitle') set pagetitle(value: string){ \r\n\t\tthis._pageTitle = value.replace(/\\(/g, '<small>(').replace(/\\)/g, ')</small>');\r\n\t}\r\n\r\n\tloading = false;\r\n\tatalhoId: any = null;\r\n\tpodeCriarAtalho = false;\r\n\texibirAcessos = false;\r\n\r\n\tconstructor(private _router: Router,\r\n\t\t\t\tprivate _modal: MatDialog,\r\n\t\t\t\tprivate _dataService: InfoDataService,\r\n\t\t\t\tprivate _translate: InfoTranslateService,\r\n\t\t\t\tpublic _platform: InfoPlatformModel,\r\n\t\t\t\tprivate _renderer: Renderer2, private _element: ElementRef) { \r\n\t\t_router.events.subscribe(e => {\r\n if (e instanceof NavigationStart || e instanceof GuardsCheckStart)\r\n\t\t\t\tsetTimeout(() => this.loading = true, 0);\r\n\t\t\t\r\n\t\t\telse setTimeout(() => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (e instanceof NavigationEnd) {\r\n\t\t\t\t\tthis.podeCriarAtalho = !!this._platform.ShortcutApi && this._router.url != '/';\r\n\t\t\t\t\tthis.getAtalho();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n });\r\n\t}\r\n\r\n\tngOnInit(){\r\n\t\tthis._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n\t}\r\n\r\n\tgoBack(){\r\n\t\tthis._router.navigateByUrl(this.backurl);\r\n\t}\r\n\r\n\tgetAtalho() {\r\n\t\tif (!this.podeCriarAtalho)\r\n\t\t\treturn;\r\n\t\tthis.loading = true;\r\n\t\tthis._dataService.get(this._platform.ShortcutApi, 'GetByUrl', 'url='+this._router.url).subscribe(r => {\r\n\t\t\tthis.loading = false;\r\n\t\t\tif (r.success) this.atalhoId = (r.data || {}).Id;\r\n\t\t});\r\n\t}\r\n\r\n\ttoggleAtalho() {\r\n\t\tif (this.atalhoId) {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis._dataService.delete(this._platform.ShortcutApi, this.atalhoId).subscribe(r => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (r.success) this.atalhoId = null;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis.openModalAtalho().subscribe((r: InfoFormPropModel) => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (r && r.modalAction == InfoModalAction.Save) this.getAtalho();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate openModalAtalho() {\r\n\t\tvar prop = new InfoFormPropModel();\r\n\t\tprop.api = this._platform.ShortcutApi;\r\n\t\tprop.set(InfoPageAction.New, { \r\n\t\t\tId: this.atalhoId,\r\n\t\t\tUrl: this._router.url,\r\n\t\t\tTitulo: `${this._translate.translate(this._platform.PaginaAtiva.Titulo)} / ${this._translate.translate(this.pagetitle)}`\r\n\t\t});\r\n\r\n\t\tlet ref = this._modal.open(AtalhoModalComponent, {\r\n data: prop,\r\n\t\t\tdisableClose: true,\r\n\t\t\twidth: '400px'\r\n\t\t});\r\n\t\t\r\n\t\tref.keydownEvents().subscribe((r) => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n ref.close();\r\n });\r\n\r\n return ref.afterClosed();\r\n\t}\r\n}\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"CriarAcessoRapido\" [form]=\"formModal\" [(ngModel)]=\"model\">\r\n\t\t\t<form autocomplete=\"off\" #formModal=\"ngForm\">\r\n\t\t\t\t<div class=\"row\"> \r\n\t\t\t\t\t<info-input class=\"col-md-12\" [(ngModel)]=\"model.Titulo\" placeholder=\"Titulo\" name=\"Titulo\" required></info-input>\r\n\t\t\t\t</div>\r\n\t\t\t</form>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class AtalhoModalComponent {\r\n\tmodel: any = {};\r\n\tconstructor(@Inject(MAT_DIALOG_DATA) public prop: InfoFormPropModel) {\r\n\t\tthis.model = Object.assign({}, prop.data);\r\n\t\tthis.model.Id = this.model.Id || '00000000-0000-0000-0000-000000000000';\r\n\t}\r\n}","import { Directive, ElementRef, Renderer2, Input, forwardRef, Inject, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'\r\nimport { createTextMaskInputElement } from 'text-mask-core/dist/textMaskCore'\r\nimport emailMask from 'text-mask-addons/dist/emailMask';\r\nimport createAutoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe';\r\n\r\n@Directive({\r\n host: {\r\n '(input)': 'onInput($event.target.value)',\r\n '(blur)': '_onTouched()'\r\n },\r\n selector: '[setmask]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoMaskDirective),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoMaskDirective implements ControlValueAccessor, OnChanges {\r\n private maskInputElement: any\r\n private inputElement: HTMLInputElement\r\n\r\n private lastValue: any\r\n private mask: any\r\n\r\n @Input('setmask') maskType: any\r\n\r\n _onTouched = () => { }\r\n _onChange = (_: any) => { }\r\n\r\n constructor(@Inject(Renderer2) private renderer: Renderer2, @Inject(ElementRef) private element: ElementRef) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setupMask(true);\r\n\r\n if (this.maskInputElement !== undefined)\r\n this.maskInputElement.update(this.inputElement.value)\r\n }\r\n\r\n writeValue(value: any) {\r\n this.setupMask()\r\n\r\n const normalizedValue = value == null ? '' : value\r\n this.renderer.setProperty(this.inputElement, 'value', normalizedValue)\r\n\r\n if (this.maskInputElement !== undefined) {\r\n this.maskInputElement.update(value)\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: any) => any): void { this._onChange = fn }\r\n\r\n registerOnTouched(fn: () => any): void { this._onTouched = fn }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.renderer.setProperty(this.element.nativeElement, 'disabled', isDisabled)\r\n }\r\n\r\n onInput(value) {\r\n this.setupMask()\r\n\r\n if (this.maskInputElement !== undefined) {\r\n this.maskInputElement.update(value)\r\n\r\n value = this.inputElement.value\r\n\r\n if (this.lastValue !== value) {\r\n this.lastValue = value\r\n this._onChange(value)\r\n }\r\n }\r\n }\r\n\r\n private setupMask(create = false) {\r\n if (!this.inputElement) {\r\n if (this.element.nativeElement.tagName === 'INPUT')\r\n this.inputElement = this.element.nativeElement;\r\n\r\n else this.inputElement = this.element.nativeElement.getElementsByTagName('INPUT')[0];\r\n }\r\n\r\n if (this.inputElement && create) {\r\n\r\n let pipe = undefined;\r\n\r\n if (this.maskType == 'email')\r\n this.mask = emailMask;\r\n \r\n else if (this.maskType == 'phone')\r\n this.mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n \r\n else if (this.maskType == 'cel')\r\n this.mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n\r\n else if (this.maskType == 'cep')\r\n this.mask = [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/];\r\n \r\n else if (this.maskType == 'date') {\r\n pipe = createAutoCorrectedDatePipe('dd/mm/yyyy');\r\n this.mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'datemonth') {\r\n pipe = createAutoCorrectedDatePipe('mm/yyyy');\r\n this.mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'time') {\r\n pipe = createAutoCorrectedDatePipe('HH:MM');\r\n this.mask = [/\\d/, /\\d/, ':', /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'cpf')\r\n this.mask = [/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n\r\n else if (this.maskType == 'cnpj')\r\n this.mask = [/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'/',/\\d/,/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n\r\n else this.mask = [];\r\n\r\n let maskConfig = {\r\n mask: this.mask,\r\n guide: true,\r\n placeholderChar: '_',\r\n pipe: pipe,\r\n modelClean: true,\r\n keepCharPositions: false,\r\n };\r\n\r\n this.maskInputElement = createTextMaskInputElement(\r\n Object.assign({ inputElement: this.inputElement }, maskConfig)\r\n )\r\n }\r\n\r\n }\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[unmask]'\r\n})\r\nexport class InfoUnmaskDirective {\r\n\r\n constructor(private elementRef: ElementRef, private model: NgControl) { }\r\n\r\n @HostListener('input') inputChange() {\r\n const newValue = this.elementRef.nativeElement.value.replace(/\\D/g, '')\r\n this.model.control.setValue(newValue);\r\n }\r\n}","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\r\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\n\r\nimport { InfoTranslatePipe } from './pipe/translate.pipe';\r\nimport { InfoMaskPipe } from './pipe/mask.pipe';\r\nimport { InfoMaskDirective } from './directives/mask.directive';\r\nimport { InfoUnmaskDirective } from './directives/unmask.directive';\r\n\r\n// Controls\r\nimport { InfoAlertComponent } from './controls/alert/alert.component';\r\nimport { InfoAutoCompleteComponent } from './controls/autocomplete/autocomplete.component';\r\nimport { InfoBigCheckboxComponent } from './controls/big-checkbox/big-checkbox.component';\r\nimport { InfoCardComponent } from './controls/card/card.component';\r\nimport { InfoMenuCardComponent } from './controls/card-menu/card-menu.component';\r\nimport { InfoCheckboxComponent } from './controls/checkbox/checkbox.component';\r\nimport { InfoDateComponent } from './controls/date/date.component';\r\nimport { InfoDateMonthComponent } from './controls/date-month/date-month.component';\r\nimport { InfoGridComponent } from './controls/grid/grid.component';\r\nimport { InfoInputComponent } from './controls/input/input.component';\r\nimport { InfoInputListComponent } from './controls/input-list/input-list.component';\r\nimport { InfoListCheckboxComponent } from './controls/list-checkbox/list-checkbox.component';\r\nimport { InfoMessageComponent } from './controls/message/message.component';\r\nimport { InfoPaginatorComponent } from './controls/paginator/paginator.component';\r\nimport { InfoSelectComponent } from './controls/select/select.component';\r\nimport { InfoTimelineComponent } from './controls/timeline/timeline.component';\r\nimport { InfoEditorComponent } from './controls/editor/editor.component';\r\nimport { InfoMultiSelectComponent } from './controls/multi-select/multi-select.component';\r\nimport { InfoChipsComponent } from './controls/chips/chips.component';\r\n\r\n// Layouts\r\nimport { InfoDialogComponent } from './layouts/dialog/dialog.component';\r\nimport { InfoLoadingComponent } from './layouts/loading/loading.component';\r\nimport { InfoMainComponent } from './layouts/main/main.component';\r\nimport { InfoModalComponent } from './layouts/modal/modal.component';\r\nimport { InfoPagebarComponent, AtalhoModalComponent } from './layouts/pagebar/pagebar.component';\r\nimport { InfoSidebarComponent } from './layouts/sidebar/sidebar.component';\r\nimport { InfoTopbarComponent } from './layouts/topbar/topbar.component';\r\nimport { RefreshSessionTimeModalComponent } from './service/authentication.service';\r\nimport { InfoTopMenuComponent } from './layouts/topmenu/topmenu.component';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tHttpClientModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatCardModule,\r\n\t\tMatIconModule,\r\n\t\tMatInputModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatListModule,\r\n\t\tMatSelectModule,\r\n\t\tMatCheckboxModule,\r\n\t\tMatRadioModule,\r\n\t\tMatButtonModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatMomentDateModule,\r\n\t\tMatDialogModule,\r\n\t\tMatProgressBarModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tMatTooltipModule,\r\n\t\tRouterModule,\r\n\t\tCurrencyMaskModule,\r\n\t\tAngularEditorModule,\r\n\t\tMatChipsModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tInfoTranslatePipe,\r\n\t\tInfoMaskPipe,\r\n\r\n\t\tInfoMaskDirective,\r\n\t\tInfoUnmaskDirective,\r\n\r\n\t\tInfoAlertComponent,\r\n\t\tInfoAutoCompleteComponent,\r\n\t\tInfoBigCheckboxComponent,\r\n\t\tInfoCardComponent,\r\n\t\tInfoMenuCardComponent,\r\n\t\tInfoCheckboxComponent,\r\n\t\tInfoDateComponent,\r\n\t\tInfoDateMonthComponent,\r\n\t\tInfoGridComponent,\r\n\t\tInfoInputComponent,\r\n\t\tInfoInputListComponent,\r\n\t\tInfoListCheckboxComponent,\r\n\t\tInfoMessageComponent,\r\n\t\tInfoPaginatorComponent,\r\n\t\tInfoSelectComponent,\r\n\t\tInfoTimelineComponent,\r\n\t\tInfoEditorComponent,\r\n\t\tInfoMultiSelectComponent,\r\n\t\tInfoChipsComponent,\r\n\r\n\t\tInfoDialogComponent,\r\n\t\tInfoLoadingComponent,\r\n\t\tInfoMainComponent,\r\n\t\tInfoModalComponent,\r\n\t\tInfoPagebarComponent,\r\n\t\tInfoSidebarComponent,\r\n\t\tInfoTopbarComponent,\r\n\t\tInfoTopMenuComponent,\r\n\t\tAtalhoModalComponent,\r\n\t\tRefreshSessionTimeModalComponent,\r\n\t],\r\n\texports: [\r\n\t\tInfoTranslatePipe,\r\n\t\tInfoMaskPipe,\r\n\r\n\t\tInfoAlertComponent,\r\n\t\tInfoAutoCompleteComponent,\r\n\t\tInfoBigCheckboxComponent,\r\n\t\tInfoCardComponent,\r\n\t\tInfoMenuCardComponent,\r\n\t\tInfoCheckboxComponent,\r\n\t\tInfoDateComponent,\r\n\t\tInfoDateMonthComponent,\r\n\t\tInfoGridComponent,\r\n\t\tInfoInputComponent,\r\n\t\tInfoInputListComponent,\r\n\t\tInfoListCheckboxComponent,\r\n\t\tInfoMessageComponent,\r\n\t\tInfoPaginatorComponent,\r\n\t\tInfoSelectComponent,\r\n\t\tInfoTimelineComponent,\r\n\t\tInfoEditorComponent,\r\n\t\tInfoMultiSelectComponent,\r\n\t\tInfoChipsComponent,\r\n\r\n\t\tInfoDialogComponent,\r\n\t\tInfoLoadingComponent,\r\n\t\tInfoMainComponent,\r\n\t\tInfoModalComponent,\r\n\t\tInfoPagebarComponent,\r\n\t\tInfoSidebarComponent,\r\n\t\tInfoTopbarComponent,\r\n\t\tInfoTopMenuComponent,\r\n\t],\r\n\tschemas: [\r\n\t\tCUSTOM_ELEMENTS_SCHEMA\r\n\t],\r\n\tentryComponents: [\r\n\t\tInfoDialogComponent,\r\n\t\tAtalhoModalComponent,\r\n\t\tRefreshSessionTimeModalComponent\r\n\t]\r\n})\r\nexport class InfoLibraryModule { }"]}
1
+ {"version":3,"sources":["../../../projects/info-library/src/global-config.ts","../../../projects/info-library/src/model/app-config.model.ts","../../../projects/info-library/src/model/data-access.model.ts","../../../projects/info-library/src/model/dialog-result.model.ts","../../../projects/info-library/src/model/dialog.model.ts","../../../projects/info-library/src/enum/page-action.enum.ts","../../../projects/info-library/src/enum/modal-action.enum.ts","../../../projects/info-library/src/model/form-prop.model.ts","../../../projects/info-library/src/model/grid-button.model.ts","../../../projects/info-library/src/model/method-grid-button.model.ts","../../../projects/info-library/src/model/last-search.model.ts","../../../projects/info-library/src/model/login.model.ts","../../../projects/info-library/src/model/pagebar-buttons.model.ts","../../../projects/info-library/src/model/permission.model.ts","../../../projects/info-library/src/model/platform.model.ts","../../../projects/info-library/src/model/session.model.ts","../../../projects/info-library/src/model/notification.model.ts","../../../projects/info-library/src/enum/dialog-buttons.enum.ts","../../../projects/info-library/src/service/translate.service.ts","../../../projects/info-library/src/pipe/translate.pipe.ts","../../../projects/info-library/src/pipe/mask.pipe.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/info-library/src/service/data.service.ts","../../../projects/info-library/src/service/authentication.service.ts","../../../projects/info-library/src/service/theme.service.ts","../../../projects/info-library/src/service/configuration.service.ts","../../../projects/info-library/src/controls/alert/alert.component.ts","../../../projects/info-library/src/controls/autocomplete/autocomplete.component.ts","../../../projects/info-library/src/controls/big-checkbox/big-checkbox.component.ts","../../../projects/info-library/src/controls/card/card.component.ts","../../../projects/info-library/src/controls/card-menu/card-menu.component.ts","../../../projects/info-library/src/controls/checkbox/checkbox.component.ts","../../../projects/info-library/src/controls/date/date.component.ts","../../../projects/info-library/src/controls/date-month/date-month.component.ts","../../../projects/info-library/src/layouts/dialog/dialog.component.ts","../../../projects/info-library/src/controls/grid/grid.component.ts","../../../projects/info-library/src/controls/input/input.component.ts","../../../projects/info-library/src/controls/input-list/input-list.component.ts","../../../projects/info-library/src/controls/list-checkbox/list-checkbox.component.ts","../../../projects/info-library/src/controls/message/message.component.ts","../../../projects/info-library/src/controls/paginator/paginator.component.ts","../../../projects/info-library/src/controls/select/select.component.ts","../../../projects/info-library/src/controls/timeline/timeline.component.ts","../../../projects/info-library/src/controls/editor/editor.component.ts","../../../projects/info-library/src/controls/multi-select/multi-select.component.ts","../../../projects/info-library/src/controls/chips/chips.component.ts","../../../projects/info-library/src/layouts/main/main.component.ts","../../../projects/info-library/src/layouts/sidebar/sidebar.component.ts","../../../projects/info-library/src/layouts/topbar/topbar.component.ts","../../../projects/info-library/src/layouts/topmenu/topmenu.component.ts","../../../projects/info-library/src/layouts/loading/loading.component.ts","../../../projects/info-library/src/layouts/modal/modal.component.ts","../../../projects/info-library/src/layouts/pagebar/pagebar.component.ts","../../../projects/info-library/src/directives/mask.directive.ts","../../../projects/info-library/src/directives/unmask.directive.ts","../../../projects/info-library/src/info-library.module.ts"],"names":["DICTIONARIES_CONFIG","InjectionToken","APICONTROLLER_CONFIG","this","production","webapiUrl","processingUrl","theme","dictionary","ux","style","topMenu","enabledPrime","data","success","messages","name","description","total","parentId","referenceGuid","external","Name","Description","Total","Success","Messages","ParentId","ReferenceGuid","External","Data","Array","button","yesOrNo","message","width","labelOk","labelCancel","labelAux","colorOk","colorCancel","colorAux","processingMode","disableButtonCancel","InfoPageAction","None","View","New","Edit","Delete","Search","InfoModalAction","Ok","Yes","No","Cancel","Save","Special","Aux","InfoFormPropModel","modalAction","modalComponent","api","prototype","set","pageAction","readonly","title","label","passId","icon","navigateTo","widthModalComponent","method","disabledField","confirm","showOnlyClass","url","model","index","enabledSearch","modal","modalwidth","InfoPlatformModel","TokenKey","SessionKey","ConfigIsNull","Themes","Config","InfoAppConfigModel","UnificarTopbar","MenuMin","ModoPrime","PaginaLimpa","Menu","ShortcutApi","setConfig","config","Permissoes","Empresas","Parametros","Count","Itens","InfoDialogButtons","InfoTranslateService","_translations","_plataforma","_key","lang","localStorage","getItem","_currentLang","Object","defineProperty","setItem","translate","key","translation","currentLang","Values","getCalendar","Calendar","instant","Injectable","args","providedIn","Inject","InfoTranslatePipe","_translate","transform","value","Pipe","pure","InfoMaskPipe","mask","from","map","c","conformToMask","guide","conformedValue","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","create","SuppressedError","InfoDataService","_apiController","_http","_router","getToken","token","navigateByUrl","getHeaderToken","HttpHeaders","getAPIUrl","controller","toString","replace","toLowerCase","getNoToken","param","_this","get","pipe","r","InfoDataAccessModel","catchError","errorHandling","headers","getById","id","postNoToken","post","delete","undefined","alert","deleteByModel","httpOptions","request","formData","FormData","append","redirect","status","document","location","href","of","HttpClient","Router","InfoAuthenticationService","_sessao","_dataService","_modal","_keySessao","_sessionActive","getSessao","getPlatform","canActivate","activatedRouteSnapshot","routerStateSnapshot","isLogged","logout","setTimeout","refreshSessionTime","definePaginaAtiva","getPermission","hasPermission","indexOf","paramMap","error","switchMap","res","permissao","params","RegExp","p","toPromise","_a","clearInterval","_sessionTimeInterval","TempoInatividade","tempoSessao","Date","valueOf","setInterval","tempoRestante","Math","round","parseInt","isNaN","showMessage","open","RefreshSessionTimeModalComponent","disableClose","afterClosed","subscribe","login","usuario","senha","reCaptchaToken","codigo2FA","removeSessao","Usuario","Senha","ReCaptchaToken","Codigo2FA","Token","InfoLoginModel","trocarEmpresa","empresaId","EmpresaId","clonar","reload","getPermissions","logAtividade","setTrocaSenha","setRecuperarSenha","setResetarSenha","getLoginResources","keyFunction","urlGenerica","getUrlGenerica","some","s","URL","ChaveFuncionalidade","Acesso","validaSessao","ret","Observable","observer","complete","forEach","item","filter","JSON","stringify","keys","includes","aux","substring","split","tituloMenu","PaginaAtiva","Icone","Titulo","m","Title","Icon","retorno","urlParts","i","parseFloat","isGuid","error_description","match","InfoSessionModel","MatDialog","_ref","time","ngOnInit","interval","ativo","close","Component","template","MatDialogRef","InfoThemeService","_overlay","_plataform","_session","setTheme","find","unificarTopbar","getContainerElement","classList","themeClassesToRemove","remove","add","removeAttribute","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","cssFile","createElement","type","rel","head","appendChild","cssClient","InfoAlertComponent","onClose","selector","Input","InfoAutoCompleteComponent","_dataAcess","control","FormControl","placeholder","required","selectfirst","disablednoregisters","getdataonchange","getdataonchangetime","maxlist","startwith","minchar","onselecteditem","EventEmitter","selectedValue","initialized","_loading","_params","_disabled","_data","setDisabledState","loading","getData","a","disable","enable","writeValue","Id","floor","random","valueChanges","debounceTime","distinctUntilChanged","options","filterValue","Nome","option","slice","parameters","charAt","toUpperCase","reduce","b","assign","onBlur","trim","first","onFocus","setValue","displayFn","indexSmall","obj","onChange","emit","registerOnChange","fn","registerOnTouched","onTouched","isDisabled","disabled","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","Output","InfoBigCheckboxComponent","preload","enabledcheckall","labelselectall","labelsearch","max","submessage","_paramsmodel","paramsmodel","loadByParamModel","load","paramModel","getModel","getFilteredData","d","existData","Descricao","Selecionado","selectAll","removeItems","splice","InfoCardComponent","onclick","onCardClick","InfoMenuCardComponent","menu","cols","loadinit","menuRows","col","colClass","permission","numberItensRow","ceil","InfoCheckboxComponent","min","checkboxValue","true","false","onChangeValue","customType","Number","modelValue","PT_BR_DATE_FORMATS","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","InfoDateComponent","minDate","maxDate","datefilter","dateclass","ngAfterViewInit","placeholderChar","createAutoCorrectedDatePipe","modelClean","keepCharPositions","dateMask","createTextMaskInputElement","inputElement","input","nativeElement","onInputDate","update","dateValue","moment","isBefore","isAfter","setMinutes","getMinutes","getTimezoneOffset","getFullYear","getMonth","getDate","onKeyPress","keyCode","MAT_DATE_LOCALE","useValue","DateAdapter","useClass","MomentDateAdapter","deps","MAT_DATE_FORMATS","MAT_MOMENT_DATE_ADAPTER_OPTIONS","useUtc","ViewChild","static","PT_BR_DATE_MONTH_FORMATS","InfoDateMonthComponent","changeonlyonmonth","chosenYearHandler","year","chosenMonthHandler","datepicker","month","InfoDialogModal","dialog","InfoDialogModel","InfoDialogComponent","YesOrNo","Confirm","Custom","Processing","ref","onclickCancel","InfoDialogResult","onclickOk","onclickAux","decorators","MAT_DIALOG_DATA","InfoGridComponent","_dialog","_platform","_prop","_dataAccessService","_activatedRoute","_authenticationService","_changeDetectorRef","_lastSearch","_renderer","_element","pagetitle","prefixtitle","pagebarbuttons","fullarea","form","parent","apidownload","methoddownload","backurl","newurl","newlabel","editurl","viewurl","templateurl","paged","size","autorefresh","enablednew","enablededit","enableddelete","enabledview","enabledcancelsearch","enableddetail","enabledclassicons","enabledclickaccess","enabledclickevent","searchopened","searchonlyonebutton","disablesearchlast","statictitle","disabledcol","accessicon","loadoninit","searchmodel","onbeforesearch","onloadcomplete","onclosemodal","onnew","onedit","onview","ondelete","customdelete","dynamiccols","buttons","searchbuttons","showmessageerror","defaultnewobject","resultTitle","searchModelReset","showPagebar","hasPermissionNew","hasPermissionEdit","hasPermissionDelete","tableHeight","pagebarTitle","icons","colunasItens","colunasHeaders","colunasType","colunasWidth","colunasTranslate","currentUrl","parentIdUrlChange","parentIdUrlValue","_cols","setColumns","snapshot","addClass","setPagebarTitle","formModel","formSearch","toArray","addControl","paginator","hideLoad","registro","column","header","dados","parts","headerInfo","navigate","openCustomModal","openModal","getSearch","getPaged","getAll","getByParentId","getDataReturn","Index","Size","dataInicial","dataFinal","dataInicio","dataFim","refreshPaginator","parentIdUrl","refresh","fillIcons","changePage","cancelSearch","search","detail","access","edit","view","observers","icone","Tooltip","Principal","index_1","element","element_1","info","back","keydownEvents","detectChanges","download","arquivoId","binaryString","window","atob","Conteudo","binaryLen","bytes","Uint8Array","ascii","charCodeAt","blob","Blob","navigator","msSaveOrOpenBlob","fileURL","createObjectURL","elementA","click","removeChild","eventButton","ActivatedRoute","ChangeDetectorRef","InfoLastSearchModel","Renderer2","ElementRef","ContentChildren","NgModel","NgForm","InfoInputComponent","rows","tabindex","iconPrefix","iconSuffix","onblur","maskOptions","align","allowNegative","decimal","precision","prefix","suffix","thousands","customMask","passwordMode","methodIsmask","toLocaleLowerCase","ismask","startsWith","InfoInputListComponent","percent","hiddenDe","novoValor","De","Ate","Valor","Excluir","ngOnChanges","ordernar","remover","findIndex","sort","InfoListCheckboxComponent","filterlabel","selectedlabel","onelist","filterList","filterSelected","disabledValue","valor","selecionados","todos","marcarFiltrados","marcar","ids","marcarTodos","InfoMessageComponent","color","outline","event","preventDefault","InfoPaginatorComponent","show","change","_total","indexActive","numberPages","pages","totalDescription","x","setDescription","goto","previous","currentInit","currentEnd","InfoSelectComponent","_dataAcessService","blank","blankItem","notranslate","translatValue","InfoTimelineComponent","showdate","alignLeft","alignCenter","alignRight","alignBetween","host","[class.timeline]","[class.show-date]","HostBinding","InfoEditorComponent","_sanitizer","enabledhtmlmode","sanitize","focused","editorConfig","editable","spellcheck","height","minHeight","maxHeight","minWidth","enableToolbar","showToolbar","defaultParagraphSeparator","toolbarPosition","fonts","class","getGuid","querySelector","addEventListener","editor","editorToolbar","saveSelection","SecurityContext","HTML","DomSanitizer","InfoMultiSelectComponent","selectedValues","InfoChipsComponent","separatorKeysCodes","ENTER","values","modelValues","InfoMainComponent","opened","version","_themes","languages","profileurl","loginurl","menuapi","menumethod","activemenubyurl","loggeduserapi","loggedusermethod","notificationapi","notificationgetmethod","notificationpostmethod","notificationverifymethod","notificationverifyenabled","fastsearchform","fastsearchformwidth","fastsearchtitle","setthemeonchangecompany","shortcutapi","ongetnotification","onverifynotification","themes","getLoggedUser","onChangeTopBarState","onChangeSideBarState","topbar","openSidebar","UsuarioId","Login","Email","Perfil","Empresa","UltimoAcesso","Master","Clone","DataMovimentacao","OcultarNomeCliente","MFA","Versao","Chave","onGetNotificationsTopBar","onVerifyNotificationsTopBar","InfoSidebarComponent","_authentication","onchangestate","openSubmenu","menuAtivo","monitorarUrl","toggle","menuItem","Enabled","Active","resetLastSearch","ativarMenu","events","NavigationStart","itemMenu","Routing","toggleSubmenu","changeSidebar","toggleSidebar","InfoTopbarComponent","_translateService","modalRef","prodution","notifications","InfoNotificationModel","empresa","tema","idioma","notificacao","calendario","getNotifications","setCompany","company","setAttribute","removeItem","err","setLanguage","language","toggleMode","openFastSearch","achtiveMenu","verifyNotifications","VerifyCount","setNotificationStatus","read","Leitura","Exclusao","InfoTopMenuComponent","enabled","mode","InfoModalComponent","prop","modaltitle","showcloseicon","loadingblock","labelclose","labelcancel","labelsubmit","onsave","onsuccess","updateSize","ctrlKey","valid","submit","InfoPagebarComponent","margintop","transparent","atalhoId","podeCriarAtalho","exibirAcessos","GuardsCheckStart","NavigationEnd","getAtalho","_pageTitle","goBack","toggleAtalho","openModalAtalho","Url","AtalhoModalComponent","InfoMaskDirective","renderer","_onTouched","_onChange","changes","setupMask","maskInputElement","normalizedValue","setProperty","onInput","lastValue","tagName","getElementsByTagName","maskType","emailMask","maskConfig","Directive","(input)","(blur)","InfoUnmaskDirective","elementRef","inputChange","newValue","NgControl","HostListener","NgModule","imports","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","MatCardModule","MatIconModule","MatInputModule","MatFormFieldModule","MatListModule","MatSelectModule","MatCheckboxModule","MatRadioModule","MatButtonModule","MatDatepickerModule","MatMomentDateModule","MatDialogModule","MatProgressBarModule","MatAutocompleteModule","MatTooltipModule","RouterModule","CurrencyMaskModule","AngularEditorModule","MatChipsModule","declarations","InfoLoadingComponent","exports","schemas","CUSTOM_ELEMENTS_SCHEMA","entryComponents"],"mappings":"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","sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const DICTIONARIES_CONFIG = new InjectionToken<any>('DICTIONARIES_CONFIG');\r\nexport const APICONTROLLER_CONFIG = new InjectionToken<any>('APICONTROLLER_CONFIG');","export class InfoAppConfigModel {\r\n production: boolean = false;\r\n webapiUrl: string = '';\r\n processingUrl: string = '';\r\n theme: string = '';\r\n dictionary: string = '';\r\n ux: Number = 2;\r\n style: string = '';\r\n topMenu: boolean = false;\r\n enabledPrime: boolean = false;\r\n}","export class InfoDataAccessModel {\r\n \r\n success: boolean;\r\n messages: string[] = [];\r\n name: string = null;\r\n description: string = null;\r\n data: any;\r\n total: number = 0;\r\n parentId: number = null;\r\n referenceGuid: string = null;\r\n external = false;\r\n\r\n constructor(data: any, success?: boolean, messages?: string[]) {\r\n\r\n if (data != null) {\r\n if (data.Name != null && data.Name != \"\")\r\n this.name = data.Name\r\n\r\n if (data.Description != null && data.Description != \"\")\r\n this.description = data.Description;\r\n\r\n if (data.Total != null)\r\n this.total = data.Total;\r\n \r\n if (data.Success != null)\r\n success = data.Success;\r\n\r\n if (data.Messages)\r\n messages = data.Messages;\r\n\r\n if (data.ParentId != null)\r\n this.parentId = data.ParentId;\r\n\r\n if (data.ReferenceGuid != null)\r\n this.referenceGuid = data.ReferenceGuid;\r\n \r\n if (data.External != null)\r\n this.external = data.External;\r\n\r\n this.data = data.Data;\r\n }\r\n \r\n this.success = success == null ? true : success;\r\n this.messages = messages;\r\n\r\n if (this.messages == null || this.messages == [])\r\n this.messages = new Array();\r\n }\r\n}","import { InfoDialogButtons } from \"../enum/dialog-buttons.enum\";\r\n\r\nexport class InfoDialogResult {\r\n data?: any = null;\r\n button: InfoDialogButtons;\r\n\r\n constructor(button: InfoDialogButtons);\r\n constructor(button: InfoDialogButtons, data?: any) {\r\n this.button = button;\r\n this.data = data;\r\n }\r\n}","export class InfoDialogModel {\r\n\r\n yesOrNo: boolean = false\r\n title: string\r\n message: string = ''\r\n width: number = 450;\r\n\r\n labelOk: string = 'Ok'\r\n labelCancel: string = 'Cancelar'\r\n labelAux: string = null\r\n\r\n colorOk: string = ''\r\n colorCancel: string = ''\r\n colorAux: string = ''\r\n\r\n processingMode: boolean = false;\r\n\r\n disableButtonCancel: boolean = false;\r\n}","export enum InfoPageAction {\r\n None = -1,\r\n\r\n View = 0,\r\n New = 1,\r\n Edit = 2,\r\n Delete = 3,\r\n Search = 4,\r\n}","export enum InfoModalAction {\r\n None,\r\n Ok,\r\n Yes,\r\n No,\r\n Cancel,\r\n Save,\r\n Special,\r\n Aux\r\n}","import { InfoPageAction } from \"../enum/page-action.enum\";\r\nimport { InfoModalAction } from \"../enum/modal-action.enum\";\r\n\r\nexport class InfoFormPropModel {\r\n\r\n title: string;\r\n readonly: boolean;\r\n data: any;\r\n pageAction: InfoPageAction;\r\n modalAction: InfoModalAction = InfoModalAction.None;\r\n modalComponent: any = null;\r\n api: any = null;\r\n\r\n set(pageAction: InfoPageAction, data: any) {\r\n\r\n this.data = data;\r\n this.readonly = pageAction == InfoPageAction.View;\r\n this.pageAction = pageAction;\r\n\r\n switch (pageAction) {\r\n\r\n case InfoPageAction.New:\r\n this.title = 'Novo';\r\n break;\r\n\r\n case InfoPageAction.Search:\r\n this.title = 'Pesquisar';\r\n break;\r\n\r\n case InfoPageAction.View:\r\n this.title = 'Visualizar';\r\n break;\r\n\r\n case InfoPageAction.Edit:\r\n this.title = 'Editar';\r\n break;\r\n\r\n case InfoPageAction.Delete:\r\n this.title = 'Remover';\r\n break;\r\n\r\n default:\r\n this.title = '';\r\n break;\r\n }\r\n }\r\n}","export class InfoGridButtonModel {\r\n \r\n label: string;\r\n passId: boolean;\r\n icon: string;\r\n navigateTo: string;\r\n modalComponent: any = null;\r\n widthModalComponent: Number = 500;\r\n api: any = null;\r\n method: string = null;\r\n showOnlyClass: string = null;\r\n disabledField: string = null;\r\n confirm: boolean;\r\n\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string, confirm: boolean);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function = null, widthModalComponent: Number = null, api: any = null, method: string = null, disabledField: string = null, confirm: boolean = true) {\r\n this.label = label;\r\n this.passId = passId;\r\n this.icon = icon;\r\n this.navigateTo = navigateTo;\r\n \r\n this.modalComponent = modalComponent;\r\n this.widthModalComponent = widthModalComponent;\r\n\r\n this.api = api;\r\n this.method = method;\r\n this.disabledField = disabledField;\r\n this.confirm = confirm;\r\n }\r\n}","export class InfoMethodGridButtonModel {\r\n \r\n label: string;\r\n icon: string;\r\n method: () => any = null;\r\n\r\n constructor(label: string, icon: string, method: () => any)\r\n {\r\n this.label = label;\r\n this.icon = icon;\r\n this.method = method;\r\n }\r\n}","export class InfoLastSearchModel {\r\n url: string = '';\r\n model: any = null;\r\n index: number = 0;\r\n enabledSearch: boolean = false;\r\n}","export class InfoLoginModel {\r\n\r\n success: boolean = false;\r\n messages: string;\r\n data: any;\r\n\r\n constructor(success: boolean, messages: string, data?: any) {\r\n this.success = success;\r\n this.messages = messages;\r\n this.data = data;\r\n }\r\n}","export class InfoPagebarButtonModel {\r\n label: string = '';\r\n url: string = '';\r\n icon: string = '';\r\n modal: any = null;\r\n modalwidth: number = 700;\r\n\r\n constructor(label: string, url: string);\r\n constructor(label: string, url: string, icon: string);\r\n constructor(label: string, url: string, icon: string, modal: any, modalwidth: number);\r\n constructor(label: string, url: string, icon: string = 'chevron_right', modal: any = null, modalwidth: number = 700){\r\n this.label = label;\r\n this.url = url;\r\n this.icon = icon;\r\n this.modal = modal;\r\n this.modalwidth = modalwidth;\r\n }\r\n}","export class InfoPermissionModel {\r\n Acesso: boolean;\r\n URL: string;\r\n ChaveFuncionalidade: string;\r\n}","import { InfoAppConfigModel } from \"./app-config.model\";\r\n\r\nexport class InfoPlatformModel {\r\n\r\n TokenKey: string = 'token';\r\n SessionKey: string = 'sessao';\r\n \r\n ConfigIsNull: boolean = true;\r\n Themes: any = [];\r\n Config: InfoAppConfigModel = new InfoAppConfigModel();\r\n\r\n PaginaAtiva: any;\r\n UnificarTopbar: boolean = true;\r\n MenuMin: boolean = false;\r\n ModoPrime: boolean = false;\r\n PaginaLimpa: boolean = false;\r\n\r\n Menu: any = [];\r\n\r\n ShortcutApi: any = null;\r\n\r\n public setConfig(config: InfoAppConfigModel) {\r\n this.Config = config;\r\n this.ConfigIsNull = false;\r\n }\r\n}","import { InfoPermissionModel } from \"./permission.model\";\r\n\r\nexport class InfoSessionModel {\r\n UsuarioId: number;\r\n Usuario: string;\r\n Login: string;\r\n Email: string;\r\n Perfil: string;\r\n EmpresaId: number;\r\n TemaId: number;\r\n Empresa: string;\r\n UltimoAcesso: Date;\r\n Master: boolean;\r\n Versao: string;\r\n Clone: boolean;\r\n DataMovimentacao: Date;\r\n OcultarNomeCliente: boolean;\r\n Permissoes: InfoPermissionModel[] = [];\r\n Empresas: any[] = [];\r\n Parametros: any[] = null;\r\n MFA: boolean;\r\n TempoInatividade: number;\r\n}","export class InfoNotificationModel {\r\n Count: number = 0;\r\n Itens: InfoNotificationItemModel[] = [];\r\n}\r\n\r\nexport class InfoNotificationItemModel {\r\n Id: number;\r\n Icon: string;\r\n Description: string;\r\n Url: string;\r\n Date: string;\r\n Viewed: boolean;\r\n}","export enum InfoDialogButtons {\r\n Ok,\r\n Cancel,\r\n Yes,\r\n No,\r\n Aux\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { DICTIONARIES_CONFIG } from \"../global-config\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoTranslateService {\r\n private _currentLang: string;\r\n private _key: string = 'currentLang';\r\n\r\n public get currentLang() {\r\n return this._currentLang;\r\n }\r\n\r\n constructor(@Inject(DICTIONARIES_CONFIG) private _translations: any, private _plataforma: InfoPlatformModel) {\r\n \r\n let lang = localStorage.getItem(this._key);\r\n if (lang == null)\r\n this._currentLang = 'pt-br';\r\n else this._currentLang = lang;\r\n }\r\n\r\n public set(lang: string): void {\r\n this._currentLang = lang;\r\n localStorage.setItem(this._key, lang);\r\n }\r\n\r\n public translate(key: string): string {\r\n let translation = key;\r\n\r\n if (this._translations[this.currentLang] && this._translations[this.currentLang].Values && this._translations[this.currentLang].Values[key]) {\r\n translation = (this._translations[this.currentLang].Values[this._plataforma.Config.dictionary] || {})[key] || this._translations[this.currentLang].Values[key];\r\n if (typeof translation != 'string')\r\n translation = key;\r\n }\r\n\r\n return translation;\r\n }\r\n\r\n public getCalendar(): any {\r\n if (this._translations[this.currentLang] && this._translations[this.currentLang].Calendar) {\r\n return this._translations[this.currentLang].Calendar;\r\n }\r\n }\r\n\r\n public instant(key: string) {\r\n return this.translate(key);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { InfoTranslateService } from '../service/translate.service';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n pure: false\r\n})\r\nexport class InfoTranslatePipe implements PipeTransform {\r\n\r\n constructor(private _translate: InfoTranslateService) { }\r\n\r\n transform(value: string, args?: any): any {\r\n if (!value) \r\n return;\r\n\r\n if (args === false)\r\n return value;\r\n\r\n return this._translate.instant(value);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport emailMask from 'text-mask-addons/dist/emailMask';\r\nimport { conformToMask } from \"text-mask-core/dist/textMaskCore\";\r\n\r\n@Pipe({\r\n name: 'mask',\r\n pure: false\r\n})\r\nexport class InfoMaskPipe implements PipeTransform {\r\n\r\n constructor( ) { }\r\n\r\n transform(value: string, args?: any): any {\r\n if (!value) return;\r\n\r\n let mask = [];\r\n\r\n if (args == 'phone')\r\n mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]; \r\n else if (args == 'cel')\r\n mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n else if (args == 'cep')\r\n mask = [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/];\r\n else if (args == 'cpf')\r\n mask = [/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n else if (args == 'cnpj')\r\n mask = [/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'/',/\\d/,/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n else \r\n mask = Array.from(args).map(c => c == '0' ? /\\d/ : c);\r\n \r\n return conformToMask(value, mask, {guide: false}).conformedValue; \r\n }\r\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { InfoDataAccessModel } from '../model/data-access.model';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Observable, of, ObservableInput } from 'rxjs';\r\nimport { APICONTROLLER_CONFIG } from '../global-config';\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoDataService {\r\n\r\n private _key: string = 'token';\r\n private token: string;\r\n\r\n constructor(@Inject(APICONTROLLER_CONFIG) private _apiController: any, private _http: HttpClient, private _router: Router, private _plataforma: InfoPlatformModel) { }\r\n\r\n public getToken(): string {\r\n this.token = localStorage.getItem(this._key);\r\n\r\n if (this.token == null) {\r\n this._router.navigateByUrl('');\r\n return '';\r\n\r\n } else return 'Bearer ' + this.token;\r\n }\r\n\r\n public getHeaderToken(): HttpHeaders {\r\n return new HttpHeaders().set('Authorization', this.getToken());\r\n }\r\n\r\n public getAPIUrl(controller: any) {\r\n let api = '';\r\n\r\n\t\tif (typeof(controller) == 'number')\r\n\t\t\tapi = this._apiController[controller].toString();\r\n\r\n else api = controller == null ? '' : controller.toString();\r\n \r\n\t\treturn this._plataforma.Config.webapiUrl + (api.replace('_', '/') + '/').toLowerCase();\r\n }\r\n\r\n public getNoToken(controller: any): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))))\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public get(controller: any): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n \r\n return this._http\r\n .get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public getById(controller: any, id: number): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .get(this.getAPIUrl(controller) + id.toString(), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public postNoToken(controller: any, model: any): Observable<InfoDataAccessModel>;\r\n public postNoToken(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public postNoToken(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .post(this.getAPIUrl(controller) + method.toLowerCase(), model)\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public post(controller: any, model: any): Observable<InfoDataAccessModel>;\r\n public post(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public post(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .post(this.getAPIUrl(controller) + (method == null ? '' : method), model, { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e, false))\r\n );\r\n }\r\n\r\n public delete(controller: any, id: any): Observable<InfoDataAccessModel>\r\n public delete(controller: any, id: any, method?: string): Observable<InfoDataAccessModel>;\r\n public delete(controller: any, id: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n if (id == undefined || id == null)\r\n alert('Id não informado');\r\n\r\n return this._http\r\n .delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + \"?id=\" + id.toString(), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public deleteByModel(controller: any, model: any): Observable<InfoDataAccessModel>\r\n public deleteByModel(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public deleteByModel(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n let httpOptions = {\r\n headers: this.getHeaderToken(),\r\n body: model\r\n }\r\n\r\n return this._http\r\n .delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()), httpOptions)\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public request(controller: any, model: any[], method?: string): Observable<InfoDataAccessModel>\r\n public request(controller: any, model: any[], method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public request(controller: any, model: any[], method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n\r\n let formData = new FormData();\r\n for (let index = 0; index < model.length; index++)\r\n formData.append(model[index].name, model[index]);\r\n\r\n return this._http\r\n .request('POST', this.getAPIUrl(controller) + (method == null ? '' : method) + (param == null ? '' : ('?' + param)), { headers: this.getHeaderToken(), body: formData })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse, redirect: boolean = true): ObservableInput<InfoDataAccessModel> {\r\n if (e.status == 401) \r\n document.location.href = '/#/login';\r\n else if (redirect) \r\n document.location.href = '/#/500';\r\n\r\n let messages: string[] = new Array(e.message);\r\n return of(new InfoDataAccessModel(null, false, messages));\r\n }\r\n}","import { Component, Injectable } from '@angular/core';\r\nimport { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, ObservableInput, of } from 'rxjs';\r\nimport { map, catchError, switchMap } from 'rxjs/operators';\r\nimport { InfoSessionModel } from '../model/session.model';\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoLoginModel } from '../model/login.model';\r\nimport { InfoDataService } from '../service/data.service';\r\nimport { InfoFormPropModel } from '../model/form-prop.model';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoModalAction } from '../enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoAuthenticationService implements CanActivate {\r\n private _key: string = 'token';\r\n private _keySessao: string = 'sessao';\r\n private _sessionTimeInterval;\r\n private _sessionActive: boolean = true;\r\n\r\n constructor(private _router: Router, \r\n private _http: HttpClient, \r\n private _sessao: InfoSessionModel, \r\n private _plataforma: InfoPlatformModel,\r\n private _dataService: InfoDataService,\r\n private _modal: MatDialog) { }\r\n\r\n getSessao(): InfoSessionModel{\r\n return this._sessao;\r\n }\r\n\r\n getPlatform(): InfoPlatformModel {\r\n return this._plataforma;\r\n }\r\n\r\n canActivate(activatedRouteSnapshot: ActivatedRouteSnapshot, routerStateSnapshot: RouterStateSnapshot): Observable<boolean> | boolean {\r\n \r\n if (!this.isLogged() || !this._sessionActive) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n const url = activatedRouteSnapshot.data['URL'] || routerStateSnapshot.url;\r\n\r\n setTimeout(() => {\r\n this.refreshSessionTime(); \r\n }, 1000);\r\n\r\n this.definePaginaAtiva(url);\r\n\r\n return this.getPermission(url, true)\r\n .pipe(\r\n map(() => {\r\n if (url == '/')\r\n return true;\r\n\r\n if (!this.hasPermission(url))\r\n this._router.navigateByUrl('permission');\r\n\r\n if (url.indexOf('novo') > -1 && !this.hasPermission(url, 'new'))\r\n this._router.navigateByUrl('permission');\r\n\r\n if (url.indexOf('visualizar') < -1 && activatedRouteSnapshot.paramMap.get('id') != null && !this.hasPermission(url, 'edit'))\r\n this._router.navigateByUrl('permission');\r\n\r\n return true;\r\n }, \r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n })\r\n )).pipe(\r\n switchMap(async res => {\r\n const permissao = activatedRouteSnapshot.data['Permissao'];\r\n\r\n if (!permissao)\r\n return true;\r\n\r\n var params = (permissao[2] || '').replace(RegExp(/\\{(.*?)\\}/, 'g'), (_, p) => activatedRouteSnapshot.params[p]);\r\n\r\n var r = await this._dataService.get(permissao[0], permissao[1], params).toPromise();\r\n if (!r.success || r.data != true)\r\n this._router.navigateByUrl('permission');\r\n\r\n return true;\r\n })\r\n );\r\n }\r\n\r\n isLogged(): boolean {\r\n return (localStorage.getItem(this._key) != null);\r\n }\r\n\r\n\trefreshSessionTime() {\r\n if (!this._sessionActive)\r\n return;\r\n\r\n clearInterval(this._sessionTimeInterval);\r\n\r\n if (this._sessao.TempoInatividade == null || this._sessao.TempoInatividade <= 0)\r\n return;\r\n \r\n let tempoSessao = this._sessao.TempoInatividade;\r\n localStorage.setItem('ms', new Date().valueOf().toString());\r\n \r\n this._sessionTimeInterval = setInterval(() => {\r\n\r\n if (tempoSessao > 0) {\r\n tempoSessao--;\r\n return;\r\n }\r\n \r\n let tempoRestante = Math.round(this._sessao.TempoInatividade - ((new Date().valueOf() - parseInt(localStorage.getItem('ms'))) / 1000));\r\n\r\n if (!isNaN(tempoRestante) && tempoRestante > 0){\r\n tempoSessao = tempoRestante;\r\n return;\r\n }\r\n \r\n clearInterval(this._sessionTimeInterval);\r\n this._sessionActive = false;\r\n\r\n if (isNaN(tempoRestante))\r\n this.logout();\r\n \r\n else this.showMessage();\r\n }, 1000);\r\n\t}\r\n\r\n showMessage(){\r\n let ref = this._modal.open(RefreshSessionTimeModalComponent, {\r\n data: null,\r\n disableClose: true,\r\n width: '500px'\r\n });\r\n\r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n\r\n if (r != null && (r.modalAction == InfoModalAction.Yes || (this._sessao.TempoInatividade - ((new Date().valueOf() - parseInt(localStorage.getItem('ms'))) / 1000)) > 0)){\r\n this._sessionActive = true;\r\n this.refreshSessionTime();\r\n }\r\n\r\n else this.logout();\r\n });\r\n }\r\n\r\n login(usuario: string, senha: string, reCaptchaToken: string = null, codigo2FA: string = null): Observable<any> {\r\n this.removeSessao();\r\n\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/autenticar', { Usuario: usuario, Senha: senha, ReCaptchaToken: reCaptchaToken, Codigo2FA: codigo2FA })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data.Token);\r\n \r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n trocarEmpresa(usuario: string, empresaId: number): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/trocarempresa', { EmpresaId: empresaId }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n clonar(usuario: string): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/clonar', { Usuario: usuario }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n logout() {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); });\r\n }\r\n\r\n getPermissions(url: string, logAtividade: boolean = false): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/getpermissao?url=' + url + '&logatividade=' + logAtividade.toString(), { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setTrocaSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/TrocarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setRecuperarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/RecuperarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setResetarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/ResetarSenha', model)\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n getLoginResources(): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/app/GetLoginResources')\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n hasPermission(url: string, keyFunction: string = 'view'): boolean {\r\n\r\n if (url == '/' && keyFunction == 'view')\r\n return true;\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n return this._sessao.Permissoes.some(s => s.URL == urlGenerica && s.ChaveFuncionalidade == keyFunction && s.Acesso);\r\n }\r\n\r\n getPermission(url: string, logAtividade: boolean = false): Observable<boolean> {\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n let contemUrl = this._sessao.Permissoes.some(s => s.URL == urlGenerica);\r\n if (contemUrl) {\r\n if (logAtividade) {\r\n return this.validaSessao(url).pipe(map(ret => {\r\n if (!ret.success)\r\n this.logout();\r\n \r\n return true;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n } else {\r\n return new Observable(function (observer) {\r\n observer.next(true);\r\n observer.complete();\r\n });\r\n }\r\n } else {\r\n return this.getPermissions(urlGenerica, logAtividade).pipe(map(ret => {\r\n let permissao = true;\r\n if (ret.success) {\r\n if (ret.data == null) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n ret.data.forEach(item => {\r\n if (this._sessao.Permissoes.filter(s => s.URL == item.URL && s.ChaveFuncionalidade == item.ChaveFuncionalidade).length == 0)\r\n this._sessao.Permissoes.push(item);\r\n });\r\n\r\n ret.data.some(s => s.URL == urlGenerica)\r\n\r\n localStorage.setItem(this._keySessao, JSON.stringify(this._sessao));\r\n }\r\n\r\n return permissao;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n }\r\n }\r\n\r\n validaSessao(url: string): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/validasessao?url=' + url, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r === true, '', r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n removeSessao() {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('Dashboard')) delete localStorage[key];\r\n });\r\n }\r\n\r\n definePaginaAtiva(url) {\r\n\r\n if (this._plataforma.Menu == null || url == null) {\r\n this._plataforma.PaginaAtiva = null;\r\n return;\r\n }\r\n\r\n let aux: string[] = url.substring(1).replace(/-/g, '').toLowerCase().split('/');\r\n let tituloMenu: string = aux.length > 0 ? aux[0].toString() : url;\r\n\r\n if (tituloMenu.indexOf('ashboard') > -1)\r\n this._plataforma.PaginaAtiva = { Icone: 'widgets', Titulo: 'Dashboard' };\r\n\r\n else {\r\n let item: any = this._plataforma.Menu.filter(m => m.Title.toLowerCase().indexOf(tituloMenu) > -1);\r\n\r\n if (item != null && item.length > 0)\r\n this._plataforma.PaginaAtiva = { Icone: item[0].Icon, Titulo: item[0].Title };\r\n else this._plataforma.PaginaAtiva = { Icone: 'security', Titulo: 'Plataforma' };\r\n }\r\n }\r\n\r\n getUrlGenerica(url: string): string {\r\n let retorno = \"\";\r\n let urlParts: string[] = url.split('/');\r\n for (var i = 0; i < urlParts.length; i++) {\r\n if (!isNaN(parseFloat(urlParts[i])) || this.isGuid(urlParts[i]) || urlParts[i].toLowerCase() == 'novo')\r\n break;\r\n else\r\n retorno += '/' + urlParts[i];\r\n }\r\n return retorno.substring(1);\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse): ObservableInput<InfoLoginModel> {\r\n if (e.status == 401) \r\n this.logout();\r\n\r\n else if (e.status == 500)\r\n this._router.navigateByUrl('500');\r\n\r\n else if (e.error != null && e.error.error_description != null)\r\n return of(new InfoLoginModel(false, e.error.error_description));\r\n\r\n else return of(new InfoLoginModel(false, 'Houve um problema e não foi possível conectar'));\r\n }\r\n\r\n private isGuid(value) : boolean {\r\n return (value || '').match('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') !== null;\r\n }\r\n}\r\n\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"Inatividade\" (onsave)=\"ativo(true)\" labelsubmit=\"Sim\" labelcancel=\"({{ time }}) {{ 'Nao' | translate }}\">\r\n <label style=\"font-size:130%\">{{ 'VoceAindaEstaUtilizandoPlataforma' | translate }}</label>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class RefreshSessionTimeModalComponent {\r\n time = 15;\r\n interval;\r\n\r\n\tconstructor(private _ref: MatDialogRef<RefreshSessionTimeModalComponent>) { }\r\n\r\n ngOnInit() {\r\n clearInterval(this.interval);\r\n \r\n this.interval = setInterval(() => {\r\n if (this.time > 0)\r\n this.time--;\r\n else {\r\n this.ativo(false);\r\n clearInterval(this.interval);\r\n }\r\n }, 1000);\r\n }\r\n \r\n ativo(ativo: boolean) {\r\n this._ref.close({ modalAction: ativo ? InfoModalAction.Yes : InfoModalAction.No });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoSessionModel } from '../model/session.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoThemeService {\r\n\r\n constructor(public _overlay: OverlayContainer, public _plataform: InfoPlatformModel, public _session: InfoSessionModel) { }\r\n\r\n public setTheme(theme) {\r\n // console.log('info-theme.setTheme', theme);\r\n\r\n if (this._plataform.Themes != null){\r\n let item = this._plataform.Themes.find(t => t.name == theme);\r\n this._plataform.UnificarTopbar = item == null ? false : item.unificarTopbar;\r\n }\r\n\r\n let _overlay = this._overlay.getContainerElement().classList;\r\n let themeClassesToRemove: any = Array.from(_overlay).filter((item: string) => item.includes('-theme'));\r\n \r\n if (themeClassesToRemove && themeClassesToRemove.length > 0)\r\n _overlay.remove(themeClassesToRemove);\r\n\r\n _overlay.remove('alternative-layout');\r\n _overlay.add(theme);\r\n\r\n document.body.removeAttribute('class');\r\n document.body.classList.add(theme);\r\n\r\n if (this._plataform.UnificarTopbar)\r\n document.body.classList.add('alternative-layout');\r\n \r\n if (this._plataform.MenuMin)\r\n document.body.classList.add('menu-min');\r\n \r\n if (this._plataform.ModoPrime)\r\n document.body.classList.add('modo-prime');\r\n\r\n document.body.classList.add('ux' + (this._plataform.Config.ux ? this._plataform.Config.ux : 2));\r\n\r\n sessionStorage.setItem('at', theme);\r\n localStorage.setItem('at', theme);\r\n }\r\n\r\n public setThemeByLoggedCompany() {\r\n // console.log('info-theme.setThemeByLoggedCompany', this._session.TemaId);\r\n this.setTheme(this._session.TemaId > 0 ? `_${this._session.TemaId}-theme` : 'default-theme');\r\n }\r\n\r\n public setMenuMin(value: boolean = null){\r\n this._plataform.MenuMin = value == null ? !this._plataform.MenuMin : value;\r\n\r\n document.body.classList.remove('menu-min');\r\n \r\n if (this._plataform.MenuMin)\r\n document.body.classList.add('menu-min');\r\n\r\n sessionStorage.setItem('mm', this._plataform.MenuMin.toString());\r\n localStorage.setItem('mm', this._plataform.MenuMin.toString());\r\n }\r\n\r\n public setModePrime(prime: boolean = null){\r\n this._plataform.ModoPrime = prime == null ? !this._plataform.ModoPrime : prime;\r\n\r\n document.body.classList.remove('modo-prime');\r\n \r\n if (this._plataform.ModoPrime)\r\n document.body.classList.add('modo-prime');\r\n\r\n sessionStorage.setItem('mp', this._plataform.ModoPrime.toString());\r\n localStorage.setItem('mp', this._plataform.ModoPrime.toString());\r\n }\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { InfoPlatformModel } from \"../model/platform.model\";\r\nimport { InfoAppConfigModel } from \"../model/app-config.model\";\r\nimport { InfoThemeService } from \"./theme.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoConfigurationService {\r\n\r\n constructor(private _http: HttpClient, private _plataforma: InfoPlatformModel, private _themeService: InfoThemeService) { }\r\n\r\n initialize(): Promise<InfoAppConfigModel> {\r\n\r\n return new Promise((r, e) => {\r\n this._http\r\n .get<InfoAppConfigModel>('config.json')\r\n .subscribe(config => {\r\n let activeTheme = sessionStorage.getItem('at') || localStorage.getItem('at');\r\n let menuMin = sessionStorage.getItem('mm') || localStorage.getItem('mm');\r\n let prime = sessionStorage.getItem('mp') || localStorage.getItem('mp');\r\n\r\n this._plataforma.Config = config; \r\n this._plataforma.ConfigIsNull = false;\r\n\r\n if (this._plataforma.Config.ux == null || this._plataforma.Config.ux == undefined)\r\n this._plataforma.Config.ux = 2;\r\n\r\n if (this._plataforma.Config.ux == 2)\r\n menuMin = 'false';\r\n\r\n var cssFile = document.createElement('link');\r\n cssFile.href = this._plataforma.Config.webapiUrl.replace(/\\/api\\/$/ig, '') + '/layout/temas.css';\r\n cssFile.type = 'text/css';\r\n cssFile.rel = 'stylesheet';\r\n \r\n document.head.appendChild(cssFile);\r\n \r\n if (this._plataforma.Config.style != null){\r\n var cssClient = document.createElement('link');\r\n cssClient.href = '/assets/' + this._plataforma.Config.style + '/style.css';\r\n cssClient.type = 'text/css';\r\n cssClient.rel = 'stylesheet';\r\n document.head.appendChild(cssClient);\r\n }\r\n\r\n if (activeTheme == null || activeTheme == undefined)\r\n activeTheme = `_${this._plataforma.Config.theme}-theme`;\r\n\r\n this._themeService.setTheme(activeTheme || 'default-theme');\r\n this._themeService.setMenuMin(menuMin == 'true');\r\n this._themeService.setModePrime(prime == 'true');\r\n\r\n r(config);\r\n });\r\n });\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'info-alert',\r\n template: `\r\n <div *ngIf=\"messages != [] && messages.length > 0\">\r\n <div class=\"alert\" #alert >\r\n <h5>{{ 'Atencao' | translate }}</h5>\r\n <ng-content></ng-content>\r\n <ul>\r\n <li *ngFor=\"let m of messages\"><mat-icon>error_outline</mat-icon><label [innerHTML]=\"m | translate\"></label></li>\r\n </ul>\r\n <a class=\"close\" (click)=\"onClose()\"><i class=\"material-icons\">clear</i></a>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['alert.component.scss']\r\n})\r\nexport class InfoAlertComponent {\r\n\r\n @Input() messages: string[] = [];\r\n\r\n onClose() {\r\n this.messages = [];\r\n }\r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { debounceTime, switchMap, distinctUntilChanged } from 'rxjs/operators';\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { InfoDataAccessModel } from '../../model';\r\n\r\n@Component({\r\n selector: 'info-autocomplete',\r\n templateUrl: 'autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoAutoCompleteComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoAutoCompleteComponent implements OnInit, ControlValueAccessor {\r\n control = new FormControl();\r\n \r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() getdataonchange = false;\r\n @Input() getdataonchangetime = 500;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() maxlist = 10;\r\n @Input() startwith = false;\r\n @Input() minchar = 1;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n options: any[];\r\n selectedValue: any = null;\r\n\r\n onChange: any;\r\n onTouched: any;\r\n \r\n initialized = false;\r\n\r\n _loading: boolean = false;\r\n @Input()\r\n get loading(){\r\n return this._loading;\r\n }\r\n\r\n set loading(value){\r\n this._loading = value;\r\n \r\n if (this._disabled == null)\r\n this._disabled = false;\r\n\r\n else if (this._disabled.toString() == '')\r\n this._disabled = true;\r\n\r\n if (this._disabled == false)\r\n this.setDisabledState(this.loading);\r\n }\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData().subscribe(a => { this.data = a.data; this.loading = false; });\r\n }\r\n \r\n _disabled: boolean = null;\r\n @Input()\r\n set disabled(value: boolean) { \r\n if (this._disabled == null)\r\n this._disabled = value;\r\n\r\n if (value)\r\n this.control.disable();\r\n else\r\n this.control.enable();\r\n }\r\n\r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n\r\n if (this.getdataonchange)\r\n return;\r\n\r\n setTimeout(() => {\r\n if (this.selectedValue != null)\r\n if ((this._data == null || (this._data != null && this._data.length == 0)) && !this.loading) {\r\n this.writeValue(null);\r\n this.selectedValue = null;\r\n } else\r\n this.writeValue(this.selectedValue.Id == null ? this.selectedValue : this.selectedValue.Id);\r\n \r\n else if (this.selectfirst && this.data != null && this.data.length > 0)\r\n this.writeValue(this.data[0].Id);\r\n\r\n if (this.disablednoregisters)\r\n this.setDisabledState((this.data == null || this.data.length == 0));\r\n }, 1000);\r\n }\r\n\r\n constructor(private _dataAcess: InfoDataService) { }\r\n\r\n ngOnInit() {\r\n if (this.minchar == null || this.minchar < 0) this.minchar = 1;\r\n this.name = this.placeholder.replace(/ /g, '') + Math.floor(Math.random() * 1000).toString();\r\n\r\n if (!this.getdataonchange) {\r\n this.getData().subscribe(a => { this.data = a.data; this.loading = false; });\r\n this.control.valueChanges.subscribe(value => { this.options = this.filter(value)});\r\n } else {\r\n this.control.valueChanges.pipe(\r\n debounceTime(this.getdataonchangetime), \r\n distinctUntilChanged(),\r\n switchMap(value => this.getData(value))\r\n ).subscribe(a => this.data = this.options = a.data);\r\n }\r\n }\r\n\r\n filter(value: any): any[] {\r\n if (value == null || value.length < this.minchar) return [];\r\n let filterValue = value.Nome == null ? value.toString().toLowerCase() : value.Nome;\r\n\r\n if (this.startwith)\r\n return this.data.filter(option => option.Nome.toLowerCase().indexOf(filterValue) === 0 || (option.Aux == null ? \"\" : option.Aux.toLowerCase() == filterValue)).slice(0, this.maxlist);\r\n else\r\n return this.data.filter(option => option.Nome.toLowerCase().indexOf(filterValue) > -1 || (option.Aux == null ? \"\" : option.Aux.toLowerCase().indexOf(filterValue) > -1)).slice(0, this.maxlist);\r\n }\r\n\r\n getData(value: any = null): Observable<any> {\r\n this.initialized = true;\r\n\r\n if (this.api == null || this.api == '')\r\n return new Observable<InfoDataAccessModel>();\r\n\r\n this.loading = !this.getdataonchange;\r\n this.data = [];\r\n let parameters = this.params || '';\r\n\r\n if (this.getdataonchange) {\r\n if (value == null || value == '')\r\n return new Observable<InfoDataAccessModel>();\r\n\r\n if (parameters != null && parameters != '')\r\n parameters += '&';\r\n\r\n parameters += `nome=${value.Nome == null ? value.toString().toLowerCase() : value.Nome}&take=${this.maxlist}`;\r\n\r\n let model = parameters.split(\"&\").map(c => ({ [c.split(\"=\")[0].charAt(0).toUpperCase() + c.split(\"=\")[0].substring(1)]: c.split(\"=\")[1] })).reduce((a,b) => ({...a, ...b}));\r\n return this._dataAcess.post(this.api, model, this.method);\r\n }\r\n\r\n return this._dataAcess.get(this.api, this.method, parameters);\r\n }\r\n\r\n onBlur(value) {\r\n setTimeout(() => {\r\n if (this.selectedValue != null && this.selectedValue.Id != null)\r\n return;\r\n\r\n if (!value && this.selectedValue != null && this.selectedValue.trim() == '')\r\n this.writeValue(null);\r\n else {\r\n let first = this.filter(value);\r\n if (first != null && first.length > 0)\r\n this.writeValue(first[0].Id);\r\n else\r\n this.writeValue(null);\r\n } \r\n }, 300);\r\n }\r\n\r\n onFocus(value) {\r\n if (this.minchar != null && this.minchar == 0 && (value == null || value == ''))\r\n setTimeout(() => { this.control.setValue(''); }, 200);\r\n }\r\n\r\n displayFn(model): string {\r\n if (model == null || model.Nome == null)\r\n return '';\r\n\r\n let indexSmall = model.Nome.indexOf('<small');\r\n return indexSmall > -1 ? model.Nome.substring(0, indexSmall).trim() : model.Nome;\r\n }\r\n\r\n writeValue(value: any): void {\r\n let obj = this.data.find(r => r.Id == value);\r\n this.control.setValue(obj);\r\n\r\n if (value != null && obj == null)\r\n this.selectedValue = value;\r\n\r\n if (this.onChange != null)\r\n this.onChange(value);\r\n\r\n if (this.onselecteditem != null)\r\n this.onselecteditem.emit(this.data == null ? null : this.data.find(r => r.Id == value));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;\r\n }\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\n\r\n@Component({\r\n selector: 'info-big-checkbox',\r\n templateUrl: 'big-checkbox.component.html',\r\n styleUrls: ['big-checkbox.component.scss']\r\n})\r\nexport class InfoBigCheckboxComponent implements OnInit {\r\n\r\n @Input() readonly: boolean = false;\r\n @Input() preload: boolean = true;\r\n @Input() enabledcheckall: boolean = true;\r\n @Input() labelselectall: string = 'Todos';\r\n @Input() labelsearch: string = 'Buscar';\r\n @Input() minchar: number = 0;\r\n @Input() max: number = 20;\r\n @Input() message: string;\r\n @Input() submessage: string = '';\r\n\r\n @Input() value: string = '';\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n\r\n @Input() model: any = [];\r\n @Input() data: any[] = [];\r\n @Input() aux: string = null;\r\n\r\n private _params: any = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n this.getData();\r\n }\r\n\r\n private _paramsmodel: any = null;\r\n @Input()\r\n get paramsmodel(){\r\n return this._paramsmodel;\r\n }\r\n\r\n set paramsmodel(value){\r\n this._paramsmodel = value;\r\n this.getData();\r\n }\r\n\r\n loading: boolean = false;\r\n name: string = '';\r\n\r\n constructor(private _dataService: InfoDataService) { }\r\n\r\n ngOnInit(){\r\n this.submessage = 'Serão exibidos somente os ' + this.max + ' primeiros itens encontrados';\r\n this.name = 'input-search-' + Math.floor(Math.random() * 1000).toString();\r\n this.getData();\r\n }\r\n\r\n getData() {\r\n if (this.preload) {\r\n if (this.params == null && this.paramsmodel != null)\r\n this.loadByParamModel(this.paramsmodel);\r\n\r\n else this.load(this.params);\r\n }\r\n }\r\n\r\n load(param: any = null) {\r\n\r\n if (this.api == null)\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n if (this.model == null)\r\n this.model = [];\r\n\r\n this._dataService\r\n .get(this.api, this.method, param).subscribe(r => {\r\n if (r.success)\r\n this.data = r.data;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n loadByParamModel(paramModel: any = null) {\r\n \r\n if (this.api == null)\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n if (this.model == null)\r\n this.model = [];\r\n\r\n this._dataService.post(this.api, paramModel, this.method).subscribe(r => {\r\n if (r.success)\r\n this.data = r.data;\r\n \r\n this.loading = false;\r\n });\r\n }\r\n\r\n getModel(): any[]{\r\n\r\n if (this.model == null || this.model.length == 0)\r\n return [];\r\n\r\n return this.model.filter(m => this.aux == null || m.Aux == this.aux);\r\n }\r\n\r\n getFilteredData(): any[]{\r\n\r\n if (this.data.length == 0 || this.value.length < this.minchar)\r\n return [];\r\n\r\n return this.data.filter(d => \r\n (this.aux == null || this.aux == d.Aux) &&\r\n this.model.filter(m => m.Id == d.Id).length == 0 && \r\n d.Nome.toLowerCase().indexOf(this.value.toLowerCase()) > -1\r\n\r\n ).slice(0, this.max);\r\n }\r\n\r\n existData(): boolean{\r\n return (this.data != null && \r\n this.data.length > 0 && \r\n this.data.filter(d => this.aux == null || this.aux == d.Aux).length > 0);\r\n }\r\n\r\n add(item: any){\r\n \r\n if (this.model == null)\r\n this.model = [];\r\n\r\n this.model.push({\r\n Id: item.Id,\r\n Nome: item.Nome,\r\n Aux: (this.aux == null ? item.Aux : this.aux),\r\n Descricao: item.Descricao == null ? item.Nome : item.Descricao,\r\n Selecionado: true\r\n });\r\n }\r\n\r\n selectAll(){\r\n\r\n let removeItems = new Array();\r\n\r\n if (this.aux != null) {\r\n for (var i = 0; i < this.model.length; i++){\r\n if (this.model[i].Aux == this.aux)\r\n removeItems.push(i);\r\n }\r\n }\r\n\r\n removeItems.forEach(index => {\r\n this.model.splice(index, 1);\r\n });\r\n }\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-card',\r\n templateUrl: 'card.component.html',\r\n styleUrls: ['card.component.scss']\r\n})\r\n\r\nexport class InfoCardComponent {\r\n\r\n @Input() label: string;\r\n @Input() description: string;\r\n @Input() mark: string;\r\n @Input() url: string;\r\n @Input() icon: string;\r\n @Output() onclick = new EventEmitter();\r\n\r\n constructor(private _router: Router) { }\r\n\r\n onCardClick() {\r\n if (this.url == null || this.url == '')\r\n this.onclick.emit();\r\n \r\n else this._router.navigateByUrl(this.url);\r\n }\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\n\r\n/**\r\n * O atributo `menu` recebe uma lista responsável pela criação do menu:\r\n * ```\r\n * [{ title: string, url: string, permission: boolean }]\r\n * ```\r\n */\r\n@Component({\r\n selector: 'info-card-menu',\r\n templateUrl: 'card-menu.component.html',\r\n styleUrls: ['card-menu.component.scss']\r\n})\r\nexport class InfoMenuCardComponent implements OnInit {\r\n \r\n @Input() label: string = null;\r\n @Input() description: string = null;\r\n @Input() icon: string = null;\r\n @Input() menu: any[] = [];\r\n @Input() cols: number = 0;\r\n @Input() loadinit: boolean = true;\r\n\r\n menuRows: any[] = [];\r\n col: number = 12;\r\n colClass: string = 'col-md-';\r\n\r\n ngOnInit(){\r\n if (this.loadinit)\r\n this.load();\r\n }\r\n\r\n load() {\r\n this.menuRows = new Array();\r\n\r\n this.menu = this.menu == null ? null : this.menu.filter(i => i.permission == true);\r\n\r\n if (this.menu == null || this.menu.length == 0 || this.cols == null || this.cols == 0){\r\n this.menuRows.push(this.menu);\r\n this.colClass += this.col.toString();\r\n return;\r\n }\r\n\r\n let numberItensRow = Math.ceil(this.menu.length / this.cols);\r\n \r\n for (var i = 0; i < this.cols; i++)\r\n this.menuRows.push(this.menu.slice(i * numberItensRow, (i * numberItensRow) + numberItensRow));\r\n\r\n this.col = 12 / this.cols;\r\n this.colClass += this.col.toString();\r\n }\r\n}","import { Component, OnInit, Input, forwardRef } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-checkbox',\r\n templateUrl: 'checkbox.component.html',\r\n styles: ['.info-checkbox-content { padding-top: 20px; } .info-checkbox-min { padding-top: 0 !important; margin: 0 0 13px !important; } '],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoCheckboxComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoCheckboxComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder: string = '';\r\n @Input() type: string = null;\r\n @Input() min: boolean = false;\r\n\r\n value: boolean = false;\r\n disabled: boolean = false;\r\n checkboxValue: { true: any, false: any } = { true: true, false: false };\r\n initialized: boolean = false;\r\n\r\n onChange: any;\r\n onTouched: any;\r\n\r\n @Input()\r\n get checked(){\r\n return this.value;\r\n }\r\n\r\n set checked(value) {\r\n\r\n if (this.initialized){\r\n this.value = value;\r\n this.onChangeValue();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n if (this.type != null) {\r\n let customType = this.type.split(',');\r\n this.checkboxValue.true = isNaN(Number(customType[0])) ? customType[0] : Number(customType[0]);\r\n this.checkboxValue.false = isNaN(Number(customType[1])) ? customType[1] : Number(customType[1]);\r\n }\r\n\r\n this.value = true;\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n \r\n if (modelValue === undefined || modelValue == null)\r\n this.value = false;\r\n\r\n else this.value = modelValue === this.checkboxValue.true;\r\n\r\n this.onChangeValue();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.initialized = true;\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onChangeValue() {\r\n let result = this.value ? this.checkboxValue.true : this.checkboxValue.false;\r\n\r\n if (this.onChange != null)\r\n this.onChange(result);\r\n }\r\n}","import { Component, forwardRef, Input, ViewChild } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from \"@angular/material-moment-adapter\";\r\nimport { createTextMaskInputElement } from \"text-mask-core/dist/textMaskCore\";\r\nimport createAutoCorrectedDatePipe from \"text-mask-addons/dist/createAutoCorrectedDatePipe\";\r\nimport * as moment from \"moment\";\r\n\r\nexport const PT_BR_DATE_FORMATS = {\r\n parse: {\r\n dateInput: 'DD/MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'DD/MM/YYYY',\r\n monthYearLabel: 'MMM Y',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM Y',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'info-date',\r\n templateUrl: './date.component.html',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoDateComponent),\r\n multi: true\r\n },\r\n { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: MAT_DATE_FORMATS, useValue: PT_BR_DATE_FORMATS },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }]\r\n})\r\nexport class InfoDateComponent implements ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() minDate: Date = new Date(1800, 0, 1);\r\n @Input() maxDate: Date = null;\r\n\r\n @Input() datefilter: any = null; //Metodo que recebe uma data(moment) e retorna boolean\r\n @Input() dateclass: any = null; //Metodo que recebe uma data(moment) e retorna string\r\n\r\n @ViewChild('inputDate', { static: false }) input;\r\n\r\n dateValue: any;\r\n dateMask: any;\r\n onChange;\r\n onTouched;\r\n\r\n ngAfterViewInit() {\r\n\r\n let config = {\r\n mask: [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/],\r\n guide: true,\r\n placeholderChar: '_',\r\n pipe: createAutoCorrectedDatePipe(PT_BR_DATE_FORMATS.parse.dateInput.toLowerCase()),\r\n modelClean: true,\r\n keepCharPositions: false,\r\n };\r\n\r\n this.dateMask = createTextMaskInputElement(\r\n Object.assign({ inputElement: this.input.nativeElement }, config)\r\n );\r\n }\r\n\r\n onInputDate(value) {\r\n this.dateMask.update(value);\r\n }\r\n\r\n onChangeValue() {\r\n if (this.dateValue != null) {\r\n if (moment(this.dateValue).isBefore(moment(this.minDate)))\r\n this.dateValue = this.minDate;\r\n \r\n if (this.maxDate != null && moment(this.dateValue).isAfter(moment(this.maxDate)))\r\n this.dateValue = this.maxDate;\r\n }\r\n\r\n if (this.onChange != null)\r\n this.onChange(this.dateValue);\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value != null) {\r\n value = new Date(value);\r\n value.setMinutes(value.getMinutes() + value.getTimezoneOffset());\r\n value = new Date(value.getFullYear(), value.getMonth(), value.getDate());\r\n }\r\n\r\n this.dateValue = value;\r\n this.onChangeValue();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n onKeyPress(e){\r\n if (e.keyCode == 13)\r\n this.onChangeValue();\r\n }\r\n}","import { Component, forwardRef, Input, OnInit, ViewChild } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { MAT_DATE_LOCALE, DateAdapter, MAT_DATE_FORMATS } from \"@angular/material/core\";\r\nimport { MomentDateAdapter, MAT_MOMENT_DATE_ADAPTER_OPTIONS } from \"@angular/material-moment-adapter\";\r\nimport { MatDatepicker } from '@angular/material/datepicker';\r\nimport { createTextMaskInputElement } from \"text-mask-core/dist/textMaskCore\";\r\nimport createAutoCorrectedDatePipe from \"text-mask-addons/dist/createAutoCorrectedDatePipe\";\r\nimport { Moment } from \"moment\";\r\nimport * as moment from \"moment\";\r\n\r\nexport const PT_BR_DATE_MONTH_FORMATS = {\r\n parse: {\r\n dateInput: 'MM/YYYY',\r\n },\r\n display: {\r\n dateInput: 'MM/YYYY',\r\n monthYearLabel: 'MMM YYYY',\r\n dateA11yLabel: 'LL',\r\n monthYearA11yLabel: 'MMMM YYYY',\r\n },\r\n};\r\n\r\n@Component({\r\n selector: 'info-date-month',\r\n templateUrl: './date-month.component.html',\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoDateMonthComponent),\r\n multi: true\r\n },\r\n { provide: MAT_DATE_LOCALE, useValue: 'pt-BR' },\r\n { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },\r\n { provide: MAT_DATE_FORMATS, useValue: PT_BR_DATE_MONTH_FORMATS },\r\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }]\r\n})\r\nexport class InfoDateMonthComponent implements ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() changeonlyonmonth: boolean = false;\r\n @Input() minDate: Date = new Date(1800, 0, 1);\r\n \r\n @ViewChild('inputDate', { static: false }) input;\r\n\r\n dateValue: any;\r\n dateMask: any;\r\n onChange;\r\n onTouched;\r\n\r\n ngAfterViewInit() {\r\n\r\n let config = {\r\n mask: [/\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/],\r\n guide: true,\r\n placeholderChar: '_',\r\n pipe: createAutoCorrectedDatePipe(PT_BR_DATE_MONTH_FORMATS.parse.dateInput.toLowerCase()),\r\n modelClean: true,\r\n keepCharPositions: false,\r\n };\r\n\r\n this.dateMask = createTextMaskInputElement(\r\n Object.assign({ inputElement: this.input.nativeElement }, config)\r\n );\r\n }\r\n\r\n onInputDate(value) {\r\n this.dateMask.update(value);\r\n }\r\n\r\n onChangeValue() {\r\n if (this.onChange != null) {\r\n if (moment(this.dateValue).isBefore(moment(this.minDate)))\r\n this.dateValue = this.minDate;\r\n\r\n this.onChange(this.dateValue);\r\n }\r\n }\r\n\r\n writeValue(value: any): void {\r\n if (value == null || value == undefined)\r\n this.dateValue = null;\r\n else {\r\n value = new Date(value);\r\n value.setMinutes(value.getMinutes() + value.getTimezoneOffset());\r\n value = new Date(value.getFullYear(), value.getMonth(), 1);\r\n this.dateValue = value;\r\n }\r\n \r\n this.onChangeValue();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n chosenYearHandler(value: Moment) {\r\n if (this.changeonlyonmonth)\r\n return;\r\n let aux = new Date(value.year(), new Date(this.dateValue).getMonth(), 1);\r\n this.dateValue = aux;\r\n this.onChangeValue();\r\n }\r\n\r\n chosenMonthHandler(value: Moment, datepicker: MatDatepicker<Moment>) {\r\n let aux = new Date(value.year(), value.month(), 1);\r\n this.dateValue = aux;\r\n this.onChangeValue();\r\n datepicker.close();\r\n }\r\n \r\n onKeyPress(e){\r\n if (e.keyCode == 13)\r\n this.onChangeValue();\r\n }\r\n}","import { Component, OnInit, Inject, Injectable } from \"@angular/core\";\r\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from \"@angular/material/dialog\";\r\nimport { InfoDialogModel } from \"../../model/dialog.model\";\r\nimport { InfoDialogResult } from \"../../model/dialog-result.model\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class InfoDialogModal {\r\n\r\n refProcessing: MatDialogRef<InfoDialogComponent>;\r\n\r\n constructor(public dialog: MatDialog) { }\r\n\r\n alert(message: string): Observable<InfoDialogResult> {\r\n\r\n let model = new InfoDialogModel();\r\n model.message = message;\r\n model.labelCancel = null;\r\n model.processingMode = false;\r\n\r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: model.width + 'px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n\r\n YesOrNo(message: string): Observable<InfoDialogResult> {\r\n let model = new InfoDialogModel();\r\n model.message = message;\r\n model.yesOrNo = true;\r\n model.colorOk = 'warn';\r\n model.processingMode = false;\r\n \r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: model.width + 'px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n\r\n Confirm(message: string): Observable<InfoDialogResult> {\r\n let model = new InfoDialogModel(); \r\n model.message = message;\r\n model.processingMode = false;\r\n\r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: model.width + 'px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n\r\n Custom(model: InfoDialogModel): Observable<InfoDialogResult> {\r\n model.processingMode = false;\r\n\r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: model.width + 'px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n\r\n Processing() {\r\n let model = new InfoDialogModel();\r\n model.message = '';\r\n model.yesOrNo = false;\r\n model.labelCancel = null;\r\n model.colorOk = 'warn';\r\n model.processingMode = true;\r\n \r\n let ref = this.dialog.open(InfoDialogComponent, {\r\n data: model,\r\n disableClose: true,\r\n width: '500px'\r\n });\r\n\r\n return ref.afterClosed();\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'info-dialog',\r\n templateUrl: './dialog.component.html'\r\n})\r\nexport class InfoDialogComponent implements OnInit {\r\n\r\n constructor(public ref: MatDialogRef<InfoDialogComponent>, @Inject(MAT_DIALOG_DATA) public model: InfoDialogModel) { }\r\n\r\n ngOnInit() {\r\n\r\n if (this.model.yesOrNo){\r\n this.model.labelOk = 'Sim';\r\n this.model.labelCancel = 'Nao';\r\n }\r\n }\r\n\r\n onclickCancel() {\r\n this.ref.close(new InfoDialogResult(this.model.yesOrNo ? InfoDialogButtons.No : InfoDialogButtons.Cancel));\r\n }\r\n\r\n onclickOk() {\r\n this.ref.close(new InfoDialogResult(this.model.yesOrNo ? InfoDialogButtons.Yes : InfoDialogButtons.Ok));\r\n }\r\n\r\n onclickAux() {\r\n this.ref.close(new InfoDialogResult(InfoDialogButtons.Aux));\r\n }\r\n}","import { Component, OnInit, Input, AfterViewInit, EventEmitter, Output, ViewChild, ChangeDetectorRef, ContentChildren, Renderer2, ElementRef } from \"@angular/core\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { InfoFormPropModel } from \"../../model/form-prop.model\";\r\nimport { InfoPaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { InfoDialogModal } from \"../../layouts/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { InfoAuthenticationService } from \"../../service/authentication.service\";\r\nimport { InfoTranslateService } from \"../../service/translate.service\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\nimport { InfoModalAction } from \"../../enum/modal-action.enum\";\r\nimport { InfoPageAction } from \"../../enum/page-action.enum\";\r\nimport { InfoPagebarButtonModel } from \"../../model/pagebar-buttons.model\";\r\nimport { InfoGridButtonModel } from \"../../model/grid-button.model\";\r\nimport { InfoLastSearchModel } from \"../../model/last-search.model\";\r\nimport { InfoMethodGridButtonModel } from \"../../model/method-grid-button.model\";\r\nimport { NgModel, NgForm } from '@angular/forms';\r\nimport { QueryList } from '@angular/core';\r\nimport { InfoPlatformModel } from \"../../model/platform.model\";\r\n\r\n@Component({\r\n selector: 'info-grid',\r\n templateUrl: 'grid.component.html',\r\n styleUrls: ['grid.component.scss'],\r\n providers: [InfoFormPropModel]\r\n})\r\nexport class InfoGridComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() pagetitle = '';\r\n @Input() prefixtitle = '';\r\n @Input() description = '';\r\n @Input() pagebarbuttons: InfoPagebarButtonModel[] = [];\r\n @Input() fullarea = false;\r\n\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n @Input() form: any = null;\r\n @Input() width: number = 800;\r\n @Input() parent: any = null;\r\n @Input() apidownload: any = null;\r\n @Input() methoddownload: string = null;\r\n\r\n @Input() backurl = '';\r\n @Input() newurl = '';\r\n @Input() newlabel = 'Novo';\r\n @Input() editurl = '';\r\n @Input() viewurl = '';\r\n @Input() templateurl = '';\r\n\r\n @Input() paged = false;\r\n @Input() size = 15;\r\n @Input() autorefresh = 0;\r\n\r\n @Input() enablednew = true;\r\n @Input() enablededit = true;\r\n @Input() enableddelete = true;\r\n @Input() enabledview = true;\r\n @Input() enabledcancelsearch = true;\r\n @Input() enableddetail = false;\r\n @Input() enabledclassicons = true;\r\n @Input() enabledclickaccess = false;\r\n @Input() enabledclickevent = false;\r\n\r\n @Input() searchopened = false;\r\n @Input() searchonlyonebutton = false;\r\n @Input() disablesearchlast = false;\r\n @Input() statictitle = false;\r\n @Input() disabledcol = '';\r\n @Input() accessicon = 'arrow_forward';\r\n\r\n @Input() loadoninit = true;\r\n @Input() data: any[];\r\n @Input() searchmodel: any = null;\r\n\r\n @Output() onbeforesearch = new EventEmitter();\r\n @Output() onloadcomplete = new EventEmitter();\r\n @Output() onclosemodal = new EventEmitter();\r\n @Output() onnew = new EventEmitter();\r\n @Output() onedit = new EventEmitter();\r\n @Output() onview = new EventEmitter();\r\n @Output() ondelete = new EventEmitter();\r\n @Output() customdelete = new EventEmitter();\r\n\r\n @Input() dynamiccols: string = null;\r\n @Input() buttons: InfoGridButtonModel[] = [];\r\n @Input() searchbuttons: InfoMethodGridButtonModel[] = [];\r\n\r\n @Input() showmessageerror = false;\r\n @Input() defaultnewobject: any = null;\r\n \r\n @ContentChildren(NgModel) formModel: QueryList<NgModel>;\r\n @ViewChild(NgForm, { static: false }) formSearch: NgForm;\r\n \r\n messages: String[] = [];\r\n resultTitle = '';\r\n enabledSearch = false;\r\n searchModelReset: any = null;\r\n\r\n showPagebar = false;\r\n hasPermissionNew = false;\r\n hasPermissionEdit = false;\r\n hasPermissionDelete = false;\r\n\r\n tableHeight = 0;\r\n loading = false;\r\n pagebarTitle = '';\r\n icons: any[] = [];\r\n colunasItens = [];\r\n colunasHeaders = [];\r\n colunasType = [];\r\n colunasWidth = [];\r\n colunasTranslate = [];\r\n currentUrl: string = null;\r\n url: string = null;\r\n\r\n @ViewChild('paginator', { static: false }) paginator: InfoPaginatorComponent;\r\n @Output() parentIdUrlChange = new EventEmitter();\r\n\r\n parentIdUrlValue: number = null;\r\n @Input()\r\n get parentIdUrl() {\r\n return this.parentIdUrlValue;\r\n }\r\n\r\n set parentIdUrl(value) {\r\n this.parentIdUrlValue = value;\r\n this.parentIdUrlChange.emit(this.parentIdUrlValue);\r\n }\r\n\r\n _cols: string = '';\r\n @Input()\r\n get cols() {\r\n return this._cols;\r\n }\r\n\r\n set cols(value) {\r\n this._cols = value;\r\n this.setColumns();\r\n }\r\n\r\n constructor(private _dialog: InfoDialogModal, \r\n public _platform: InfoPlatformModel,\r\n public modal: MatDialog, \r\n private _prop: InfoFormPropModel, \r\n private _dataAccessService: InfoDataService, \r\n private _router: Router,\r\n private _activatedRoute: ActivatedRoute,\r\n private _authenticationService: InfoAuthenticationService, \r\n private _changeDetectorRef: ChangeDetectorRef, \r\n private _translate: InfoTranslateService, \r\n private _lastSearch: InfoLastSearchModel,\r\n private _renderer: Renderer2, \r\n private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this.url = (this._activatedRoute.snapshot.data['URL'] || this._router.url).toLowerCase();\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.setPagebarTitle();\r\n\r\n if (this.searchmodel != null) {\r\n if (this.method == null)\r\n this.method = 'Search';\r\n\r\n this.searchModelReset = Object.assign({}, this.searchmodel);\r\n }\r\n\r\n else if (this.parent != null && (this.method == null || this.method == ''))\r\n this.method = 'GetByParentId';\r\n\r\n if (!this.disablesearchlast && this._authenticationService.getUrlGenerica(this._lastSearch.url) == this._authenticationService.getUrlGenerica(this.url)) {\r\n this.enabledSearch = this._lastSearch.enabledSearch;\r\n \r\n if (this.searchmodel != null && this._lastSearch.model != null)\r\n Object.assign(this.searchmodel, this._lastSearch.model);\r\n }\r\n\r\n if (this.searchopened)\r\n this.enabledSearch = true;\r\n\r\n if (this.autorefresh > 0)\r\n this.currentUrl = location.href;\r\n\r\n this._prop.api = this.api;\r\n this._prop.modalComponent = this.form;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.showPagebar = this.pagetitle != '' || this.prefixtitle != '';\r\n \r\n if (!this.fullarea && this._platform.Config.ux <= 2)\r\n this.fullarea = this.showPagebar;\r\n\r\n if (this.searchmodel && this.formModel.length > 0 && this.formSearch)\r\n this.formModel.toArray().forEach(model => this.formSearch.addControl(model));\r\n\r\n if (!this.disablesearchlast && this.paged && this._authenticationService.getUrlGenerica(this._lastSearch.url) == this._authenticationService.getUrlGenerica(this.url))\r\n this.paginator.index = this._lastSearch.index;\r\n\r\n if (this.dynamiccols == null) {\r\n this.setColumns();\r\n this.getPermission();\r\n\r\n if (this.loadoninit)\r\n this.getData();\r\n\r\n else this.hideLoad();\r\n }\r\n\r\n else this._dataAccessService\r\n .get(this.api, this.dynamiccols)\r\n .subscribe(r => {\r\n this.cols = r.data;\r\n this.setColumns();\r\n this.getPermission();\r\n\r\n if (this.loadoninit)\r\n this.getData();\r\n\r\n else this.hideLoad();\r\n });\r\n\r\n if (this.enabledclickevent)\r\n this.enabledclickaccess = true;\r\n }\r\n\r\n setColumns() {\r\n\r\n if (this.cols == '')\r\n alert('Nenhuma coluna informada');\r\n\r\n if (this.cols != '') {\r\n this.colunasItens = [];\r\n this.colunasHeaders = [];\r\n this.colunasType = [];\r\n this.colunasWidth = [];\r\n this.colunasTranslate = [];\r\n \r\n this.cols.split(',').forEach(registro => {\r\n\r\n let translate: boolean = registro.indexOf('#') == -1;\r\n registro = registro.replace(/#/g, '');\r\n\r\n let column: string = registro;\r\n let header: string = registro;\r\n let type: string = '';\r\n let width: string = '';\r\n\r\n if (header.indexOf(':') > -1) {\r\n let dados = registro.split(':');\r\n column = dados[0];\r\n header = dados[1];\r\n }\r\n\r\n if (header.indexOf('=') > -1) {\r\n let parts = header.split('=');\r\n\r\n if (column == header)\r\n column = parts[0];\r\n\r\n header = parts[0];\r\n type = parts[1];\r\n }\r\n\r\n let aux = type == '' ? header : type;\r\n if (aux.indexOf('*') > -1) {\r\n let headerInfo = aux.split('*');\r\n\r\n if (type == '') {\r\n if (column == header)\r\n column = headerInfo[0];\r\n\r\n header = headerInfo[0];\r\n\r\n } else type = headerInfo[0];\r\n\r\n width = headerInfo[1];\r\n\r\n if (width.indexOf('%') < 0 && width.indexOf('px') < 0)\r\n width += 'px';\r\n }\r\n\r\n this.colunasItens.push(column);\r\n this.colunasHeaders.push(header);\r\n this.colunasType.push(type == '' ? 'label' : type);\r\n this.colunasWidth.push(width);\r\n this.colunasTranslate.push(translate);\r\n });\r\n\r\n if (this.colunasItens.length == 1 && this.colunasWidth.length == 1)\r\n this.colunasWidth[0] = '100%';\r\n }\r\n }\r\n\r\n setPagebarTitle() {\r\n let aux = '';\r\n\r\n if (this.prefixtitle != '')\r\n aux = this._translate.translate(this.prefixtitle);\r\n\r\n if (this.resultTitle != '')\r\n aux += (this.prefixtitle != '' ? ' / ' : '') + this._translate.translate(this.resultTitle);\r\n\r\n if (this.pagetitle != '')\r\n aux += (this.resultTitle != '' || this.prefixtitle != '' ? ' / ' : '') + this._translate.translate(this.pagetitle);\r\n\r\n this.pagebarTitle = aux;\r\n }\r\n\r\n navigateTo(url: string, passId: boolean, id?: string) {\r\n\r\n if (passId) {\r\n if (url.indexOf(\":id\") > -1)\r\n this._router.navigateByUrl(url.replace(':id', id));\r\n else this._router.navigate([url, id]);\r\n }\r\n\r\n else this._router.navigateByUrl(url);\r\n }\r\n\r\n openCustomModal(modalComponent: any, width: Number, model: any = null) {\r\n\r\n this._prop.set(InfoPageAction.None, model);\r\n this.openModal(modalComponent, width);\r\n }\r\n\r\n getData() {\r\n this.messages = [];\r\n\r\n if (this.api == null || this.api == '') {\r\n this.hideLoad();\r\n return;\r\n \r\n } else if (this.searchmodel != null)\r\n this.getSearch();\r\n\r\n else if (this.paged)\r\n this.getPaged();\r\n\r\n else if (this.parent == null)\r\n this.getAll();\r\n\r\n else this.getByParentId();\r\n }\r\n\r\n getAll(): any {\r\n\r\n if (this.searchmodel == null)\r\n this._dataAccessService\r\n .get(this.api, this.method)\r\n .subscribe(r => this.getDataReturn(r));\r\n\r\n else this._dataAccessService\r\n .post(this.api, this.searchmodel, this.method)\r\n .subscribe(r => this.getDataReturn(r));\r\n }\r\n\r\n getPaged(): any {\r\n\r\n let params = this.parent == null ? \"\" : \"id=\" + this.parent + \"&\";\r\n params += 'index=' + this.paginator.index + '&size=' + this.size;\r\n\r\n this._dataAccessService\r\n .get(this.api, this.method, params)\r\n .subscribe(r => this.getDataReturn(r, true));\r\n }\r\n\r\n getSearch(): any {\r\n this.onbeforesearch.emit();\r\n\r\n this.messages = [];\r\n if (this.paged) {\r\n this.searchmodel.Index = this.paginator.index;\r\n this.searchmodel.Size = this.size;\r\n }\r\n\r\n var dataInicial = this.searchmodel[\"DataInicial\"];\r\n var dataFinal = this.searchmodel[\"DataFinal\"];\r\n if (dataInicial != null && dataFinal != null && new Date(dataInicial) > new Date(dataFinal)) {\r\n this.messages.push('DataInicialMaiorFinal');\r\n this.hideLoad();\r\n return;\r\n }\r\n\r\n var dataInicio = this.searchmodel[\"DataInicio\"];\r\n var dataFim = this.searchmodel[\"DataFim\"];\r\n if (dataInicio != null && dataFim != null && new Date(dataInicio) > new Date(dataFim)) {\r\n this.messages.push('DataInicioMaiorFim');\r\n this.hideLoad();\r\n return;\r\n }\r\n\r\n this._dataAccessService\r\n .post(this.api, this.searchmodel, this.method)\r\n .subscribe(r => this.getDataReturn(r, this.paged));\r\n }\r\n\r\n getByParentId(): any {\r\n this._dataAccessService\r\n .get(this.api, this.method, 'id=' + this.parent)\r\n .subscribe(r => this.getDataReturn(r, false));\r\n }\r\n\r\n getDataReturn(result: any, refreshPaginator: boolean = false) {\r\n \r\n if (!this.disablesearchlast) {\r\n this._lastSearch.url = this._authenticationService.getUrlGenerica(this.url);\r\n this._lastSearch.enabledSearch = this.enabledSearch;\r\n this._lastSearch.model = Object.assign({}, this.searchmodel);\r\n\r\n if (this.paged)\r\n this._lastSearch.index = this.paginator.index;\r\n }\r\n\r\n if (result.success) {\r\n this.data = result.data;\r\n\r\n if (!this.statictitle && result.name != null)\r\n this.resultTitle = this._translate.translate(result.name);\r\n\r\n if (result.description != null)\r\n this.description = result.description;\r\n\r\n if (result.parentId != null)\r\n this.parentIdUrl = result.parentId;\r\n\r\n if (refreshPaginator)\r\n this.paginator.refresh(result.total);\r\n\r\n if (this.autorefresh > 0 && this.currentUrl == location.href)\r\n setTimeout(() => { this.getData(); }, this.autorefresh * 1000);\r\n\r\n this.fillIcons();\r\n\r\n } else {\r\n this.data = [];\r\n if(this.showmessageerror) this.messages = result.messages;\r\n } \r\n\r\n this.hideLoad();\r\n this.onloadcomplete.emit();\r\n }\r\n\r\n changePage(index: number) {\r\n this.loading = true;\r\n this.paginator.index = index;\r\n\r\n if (this.searchmodel != null)\r\n this.getSearch();\r\n\r\n else this.getPaged();\r\n }\r\n\r\n cancelSearch() {\r\n Object.assign(this.searchmodel, this.searchModelReset);\r\n\r\n if (!this.searchopened)\r\n this.enabledSearch = false;\r\n\r\n this.search();\r\n }\r\n\r\n search() {\r\n this.loading = true;\r\n \r\n if (this.paged)\r\n this.paginator.index = 0;\r\n\r\n this.getData();\r\n }\r\n\r\n add() {\r\n\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.New, this.defaultnewobject);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.newurl == null || this.newurl == '')\r\n this.newurl = this.url;\r\n\r\n this.newurl += '/novo';\r\n this.newurl = this.newurl.replace('//', '/');\r\n\r\n this._router.navigateByUrl(this.newurl);\r\n }\r\n\r\n this.onnew.emit();\r\n }\r\n\r\n detail(model: any): void {\r\n this._prop.set(InfoPageAction.Search, model);\r\n this.openModal();\r\n }\r\n\r\n access(model: any): void {\r\n if (this.enabledclickaccess){\r\n if (this.enabledclickevent)\r\n this.onview.emit(model);\r\n \r\n else this.edit(model);\r\n }\r\n }\r\n\r\n view(model: any): void {\r\n\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.View, model);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.viewurl == null || this.viewurl == '')\r\n this.viewurl = this.url;\r\n \r\n this.viewurl += '/' + model.Id + (this.enabledclickaccess ? '' : '/visualizar');\r\n this.viewurl = this.viewurl.replace('//', '/');\r\n\r\n this._router.navigateByUrl(this.viewurl);\r\n }\r\n\r\n this.onview.emit(model);\r\n }\r\n\r\n edit(model: any): void {\r\n if (this.hasPermissionEdit) {\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.Edit, model);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.editurl == null || this.editurl == '')\r\n this.editurl = this.url;\r\n\r\n this.editurl = this.editurl.replace('//', '/');\r\n\r\n this._router.navigate([this.editurl, model.Id]);\r\n }\r\n\r\n this.onedit.emit(model);\r\n } else {\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.View, model);\r\n this.openModal();\r\n \r\n } else {\r\n if (this.viewurl == null || this.viewurl == '')\r\n this.viewurl = this.url;\r\n \r\n this.viewurl += '/' + model.Id + (this.enabledclickaccess ? '' : '/visualizar');\r\n this.viewurl = this.viewurl.replace('//', '/');\r\n \r\n this._router.navigateByUrl(this.viewurl);\r\n }\r\n \r\n this.onview.emit(model);\r\n }\r\n }\r\n\r\n delete(model: any) {\r\n if(this.customdelete.observers.length > 0) {\r\n this.customdelete.emit(model);\r\n return;\r\n }\r\n\r\n this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {\r\n if (r.button == InfoDialogButtons.Yes) {\r\n this.loading = true;\r\n\r\n this._dataAccessService.delete(this.api, model.Id).subscribe(d => {\r\n this.ondelete.emit(d);\r\n\r\n if (d.success)\r\n this.getData();\r\n else {\r\n this.hideLoad();\r\n if (this.showmessageerror) this.messages = d.messages;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n fillIcons() {\r\n this.icons = [];\r\n\r\n if (this.data == null)\r\n return;\r\n\r\n this.data.forEach(ret => {\r\n\r\n let item = ret['Icon'];\r\n if (item == null)\r\n return;\r\n\r\n if (item.indexOf('|') > -1) {\r\n let retorno = item\r\n .split('|')\r\n .map(icone => {\r\n\r\n if (icone.indexOf(':') > -1) {\r\n let dados = icone.split(':');\r\n return { Name: item, Icon: dados[0], Tooltip: dados[1], Principal: true };\r\n\r\n } else return { Name: item, Icon: icone, Tooltip: '', Principal: true };\r\n\r\n }).filter(a => a.Icon != null && a.Icon != '');\r\n\r\n let index = 0;\r\n retorno.forEach(element => {\r\n if (this.icons.find(a => a.Name == element.Name && a.Icon == element.Icon) == null){\r\n element.Principal = index == 0;\r\n this.icons.push(element);\r\n }\r\n\r\n index++;\r\n });\r\n } else {\r\n let element: any = [];\r\n\r\n if (item.indexOf(':') > -1) {\r\n let dados = item.split(':');\r\n element = { Name: item, Icon: dados[0], Tooltip: dados[1], Principal: true };\r\n\r\n } else element = { Name: item, Icon: item, Tooltip: \"\", Principal: true };\r\n\r\n if (this.icons.find(a => a.Name == element.Name) == null)\r\n this.icons.push(element);\r\n }\r\n });\r\n }\r\n\r\n info(value) {\r\n this._dialog.alert(value);\r\n }\r\n\r\n back() {\r\n this.navigateTo(this.backurl + (this.parentIdUrl == null ? \"\" : \"/\" + this.parentIdUrl), false);\r\n }\r\n\r\n openModal(modalComponent: any = this.form, width: Number = this.width) {\r\n\r\n let ref = this.modal.open(modalComponent, {\r\n data: this._prop,\r\n disableClose: true,\r\n width: width + 'px'\r\n });\r\n\r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n if (r == null)\r\n return;\r\n\r\n if (r.modalAction == InfoModalAction.Save)\r\n this.getData();\r\n\r\n this.onclosemodal.emit(r);\r\n });\r\n\r\n ref.keydownEvents().subscribe((r) => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n ref.close();\r\n });\r\n }\r\n\r\n hideLoad() {\r\n this.setPagebarTitle();\r\n this.loading = false;\r\n }\r\n\r\n getPermission() {\r\n this.hasPermissionNew = this._authenticationService.hasPermission(this.url, 'new');\r\n this.hasPermissionEdit = this._authenticationService.hasPermission(this.url, 'edit');\r\n this.hasPermissionDelete = this._authenticationService.hasPermission(this.url, 'remove');\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n download(arquivoId: any) {\r\n if (this.apidownload == null)\r\n alert('API Download está null');\r\n\r\n this.loading = true;\r\n this._dataAccessService.get(this.apidownload, (this.methoddownload != null ? this.methoddownload : 'Get'), \"id=\" + arquivoId).subscribe(r => {\r\n this.messages = r.messages;\r\n\r\n if (r.success && r.data != null) {\r\n var binaryString = window.atob(r.data.Conteudo);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n\r\n var blob = new Blob([bytes]);\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, r.data.Nome);\r\n } else {\r\n let fileURL = URL.createObjectURL(blob);\r\n let elementA: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;\r\n elementA.href = fileURL;\r\n elementA.download = r.data.Nome;\r\n document.body.appendChild(elementA);\r\n elementA.click(); \r\n document.body.removeChild(elementA);\r\n }\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n eventButton(model: any, api: any, method: string, confirm: boolean = true) {\r\n if (confirm) {\r\n this._dialog\r\n .YesOrNo('MensagemConfirmar')\r\n .subscribe(ret => {\r\n if (ret.button == InfoDialogButtons.Yes) {\r\n this.loading = true;\r\n this._dataAccessService.post(api, model, method).subscribe(r => {\r\n if (r.success)\r\n this.getData();\r\n else if(this.showmessageerror)\r\n this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n });\r\n } else {\r\n this.loading = true;\r\n this._dataAccessService.post(api, model, method).subscribe(r => {\r\n if (r.success)\r\n this.getData();\r\n else if(this.showmessageerror)\r\n this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n}","import { Component, forwardRef, Input, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-input',\r\n styleUrls: [ 'input.component.scss' ],\r\n templateUrl: 'input.component.html',\r\n providers:[\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoInputComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() readonly: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() maxlength: any;\r\n @Input() type: string = 'text';\r\n @Input() rows: number = 1;\r\n @Input() tabindex: number = 0;\r\n @Input() iconPrefix: string = '';\r\n @Input() iconSuffix: string = '';\r\n @Input() min: number = -99999999999999.999999999;\r\n @Input() max: number = 99999999999999.999999999;\r\n @Input() step: number = null;\r\n\r\n @Output() onblur = new EventEmitter();\r\n \r\n maskOptions: any = {\r\n align: 'right',\r\n allowNegative: true,\r\n decimal: ',',\r\n precision: 2,\r\n prefix: '',\r\n suffix: '',\r\n thousands: '.'\r\n };\r\n \r\n value: string = '';\r\n customMask: string = null;\r\n onChange: any;\r\n onTouched: any;\r\n passwordMode: boolean = false;\r\n\r\n ngOnInit() { \r\n this.passwordMode = this.type.toLocaleLowerCase() == 'password';\r\n }\r\n\r\n private methodIsmask: string = null;\r\n @Input()\r\n get ismask(){\r\n return this.methodIsmask;\r\n }\r\n\r\n set ismask(value){\r\n this.methodIsmask = value;\r\n\r\n if (this.methodIsmask != null) {\r\n this.methodIsmask = this.methodIsmask.toLowerCase();\r\n \r\n if (this.methodIsmask == 'int')\r\n this.maskOptions.precision = 0;\r\n\r\n else if (this.methodIsmask[0] == 'n' && (this.methodIsmask.length == 2 || this.methodIsmask.length == 3))\r\n this.maskOptions.precision = parseInt(this.methodIsmask.replace('n', ''));\r\n\r\n else this.customMask = this.methodIsmask;\r\n }\r\n }\r\n\r\n onBlur() {\r\n if (this.type == 'number' || (this.ismask != null && this.ismask.startsWith(\"n\"))) {\r\n if (this.min != null)\r\n this.value = this.min > Number(this.value) ? null : this.value;\r\n\r\n if (this.max != null)\r\n this.value = this.max < Number(this.value) ? null : this.value;\r\n\r\n this.onChangeValue();\r\n }\r\n\r\n if (this.onblur != null)\r\n this.onblur.emit(this.value);\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.value);\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n this.value = modelValue;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}","import { Component, Input, OnChanges } from \"@angular/core\";\r\nimport { InfoDialogModal } from \"../../layouts/dialog/dialog.component\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\n\r\n@Component({\r\n selector: 'info-input-list',\r\n templateUrl: 'input-list.component.html',\r\n styleUrls: ['input-list.component.scss']\r\n})\r\nexport class InfoInputListComponent implements OnChanges {\r\n \r\n @Input() model: any = []\r\n @Input() readonly: boolean = false\r\n @Input() percent: boolean = false\r\n @Input() hiddenDe: boolean = false\r\n @Input() disabled: boolean = false\r\n\r\n mask: string = \"n2\";\r\n @Input() \r\n get ismask() {\r\n return this.mask;\r\n }\r\n\r\n set ismask(value) {\r\n this.mask = (value == null ? this.mask : value);\r\n }\r\n\r\n messages: string[] = [];\r\n novoValor = { De: null, Ate: null, Valor: null, Excluir: false };\r\n\r\n constructor(private _dialog: InfoDialogModal) { }\r\n\r\n ngOnChanges() {\r\n if (this.model == null)\r\n this.model = [];\r\n\r\n for (var i = 0; i < this.model.length; i++)\r\n this.model[i].Excluir = false;\r\n }\r\n\r\n getModel(): any[]{\r\n if (!this.model || this.model == null)\r\n return [];\r\n\r\n return this.model.filter(m => !m.Excluir);\r\n }\r\n\r\n add() {\r\n this.messages = [];\r\n\r\n if (this.hiddenDe && this.novoValor.Ate == null)\r\n this.messages.push('InformeUmValorDe');\r\n\r\n if (!this.hiddenDe && this.novoValor.De == null && this.novoValor.Ate == null)\r\n this.messages.push('InformeUmValorDeOuAte');\r\n\r\n if (!this.hiddenDe && this.novoValor.Ate < this.novoValor.De)\r\n this.messages.push('ValorAteMenorQueDe');\r\n\r\n if (this.novoValor.Valor == null)\r\n this.messages.push('InformeValor');\r\n\r\n if (this.messages.length > 0){\r\n\r\n \r\n\r\n return;\r\n }\r\n\r\n this.model.push({ De: this.novoValor.De, Ate: this.novoValor.Ate, Valor: this.novoValor.Valor, Excluir: false });\r\n this.novoValor = { De: null, Ate: null, Valor: null, Excluir: false };\r\n\r\n this.ordernar();\r\n }\r\n\r\n remover(item: any){\r\n\r\n this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {\r\n if (r.button == InfoDialogButtons.No)\r\n return;\r\n\r\n item.Excluir = true;\r\n this.model.splice(this.model.findIndex(m => m == item), 1);\r\n this.ordernar();\r\n });\r\n }\r\n\r\n ordernar(){\r\n\r\n this.model = this.model.sort((a, b) => { \r\n if (this.hiddenDe ? (a.Ate < b.Ate) : (a.De < b.De))\r\n return -1;\r\n\r\n else if (this.hiddenDe ? (a.Ate > b.Ate) : (a.De > b.De))\r\n return 1;\r\n\r\n else return 0;\r\n });\r\n }\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { InfoTranslateService } from \"../../service/translate.service\";\r\n\r\n@Component({\r\n selector: 'info-list-checkbox',\r\n templateUrl: 'list-checkbox.component.html',\r\n styles: ['ul.checkbox-list { height: 270px; overflow-y: auto }']\r\n})\r\nexport class InfoListCheckboxComponent implements OnInit {\r\n\r\n @Input() filterlabel: string = 'Filtrar';\r\n @Input() filterdescription: string;\r\n\r\n @Input() selectedlabel: string = 'Filtrar';\r\n @Input() selecteddescription: string;\r\n\r\n @Input() model: any[] = [];\r\n @Input() max: number = 0;\r\n @Input() onelist: boolean = false;\r\n\r\n private disabledValue: any;\r\n @Input()\r\n get disabled() {\r\n return this.disabledValue;\r\n }\r\n\r\n set disabled(value) {\r\n this.disabledValue = value;\r\n }\r\n\r\n filterList: string = '';\r\n filterSelected: string = ''; \r\n message: string = \"\";\r\n\r\n constructor(private _translate: InfoTranslateService) { }\r\n\r\n ngOnInit() {\r\n if (this.max != null && this.max > 0)\r\n this.message = this._translate.translate('MensagemTopRegistro').replace('{0}', this.max.toString());\r\n }\r\n \r\n getModel(valor: string, selecionados: boolean = false, todos = false): any[] {\r\n if (todos || this.max == null || this.max == 0)\r\n return this.model.filter(r => (selecionados ? r.Selecionado : r.Selecionado == r.Selecionado) && r.Descricao.toLowerCase().indexOf(valor.toLowerCase()) > -1);\r\n else \r\n return this.model.filter(r => (selecionados ? r.Selecionado : r.Selecionado == r.Selecionado) && r.Descricao.toLowerCase().indexOf(valor.toLowerCase()) > -1).slice(0, this.max);\r\n }\r\n\r\n marcarFiltrados(valor: string, marcar: boolean, selecionados: boolean = false) {\r\n let ids: any[] = this.getModel(valor, selecionados, true).map(r => r.Id);\r\n\r\n this.model.forEach((item, index) => {\r\n if (ids.indexOf(item.Id) > -1)\r\n item.Selecionado = marcar; \r\n });\r\n }\r\n\r\n marcarTodos(marcar: boolean) {\r\n this.model.forEach(item => item.Selecionado = marcar);\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-message',\r\n templateUrl: 'message.component.html',\r\n styleUrls: ['message.component.scss']\r\n})\r\n\r\nexport class InfoMessageComponent {\r\n\r\n @Input() color: string = 'info';\r\n @Input() outline: boolean = true;\r\n @Input() close: boolean = false;\r\n @Input() min: boolean = false;\r\n\r\n delete(event: any, message: any) {\r\n event.preventDefault();\r\n message.remove();\r\n }\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-paginator',\r\n templateUrl: 'paginator.component.html',\r\n styleUrls: ['paginator.component.scss']\r\n})\r\n\r\nexport class InfoPaginatorComponent {\r\n\r\n @Input() size = 5;\r\n @Input() min = false;\r\n @Input() show = false;\r\n @Output() index = 0;\r\n @Output() change = new EventEmitter<number>();\r\n\r\n _total = 0;\r\n @Input()\r\n get total(){\r\n return this._total;\r\n }\r\n\r\n set total(value){\r\n this._total = value;\r\n this.initialize();\r\n }\r\n\r\n onChange: any;\r\n indexActive = 0;\r\n numberPages = 1;\r\n pages = [];\r\n totalDescription = '';\r\n\r\n refresh(total: number) {\r\n this.total = total;\r\n }\r\n\r\n initialize() {\r\n this.pages = [];\r\n this.indexActive = this.index;\r\n this.numberPages = Math.ceil(this.total / this.size);\r\n \r\n if (this.total > this.size) {\r\n let i = (this.index > 2) ? (this.index - 2) : 0;\r\n let x = this.numberPages;\r\n\r\n if ((this.index + 2) < this.numberPages){\r\n \r\n let aux = 3;\r\n if (this.index < 2)\r\n aux = (5 - this.index);\r\n\r\n x = (this.index + aux);\r\n }\r\n else if ((this.index - 2) > 0)\r\n i = this.index - (5 - (this.numberPages - this.index));\r\n \r\n if (i < 0)\r\n i = 0;\r\n\r\n if (x > this.numberPages)\r\n x = this.numberPages;\r\n \r\n for (i; i < x; i++)\r\n this.pages.push(i);\r\n\r\n } else {\r\n this.pages.push(0);\r\n }\r\n \r\n this.setDescription();\r\n this.show = true;\r\n }\r\n\r\n goto(index: number) {\r\n \r\n if (this.index == index)\r\n return;\r\n\r\n this.index = index;\r\n this.change.emit(this.index);\r\n }\r\n\r\n next() {\r\n this.goto(this.index + 1);\r\n }\r\n\r\n previous() {\r\n this.goto(this.index - 1);\r\n }\r\n\r\n setDescription(){\r\n let currentInit = (this.size * this.index) + 1;\r\n let currentEnd = this.size * (this.index + 1);\r\n\r\n if (currentEnd > this.total)\r\n currentEnd = this.total;\r\n\r\n if (currentInit == null || currentEnd == null) return;\r\n\r\n this.totalDescription = currentInit + ' - ' + currentEnd + ' de ' + this.total;\r\n }\r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\n\r\n@Component({\r\n selector: 'info-select',\r\n templateUrl: 'select.component.html',\r\n styleUrls: ['select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoSelectComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoSelectComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required: any = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() blank = false;\r\n @Input() blankItem: any = null;\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n @Input() notranslate: any = null;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n selectedValue: any = null;\r\n translatValue: boolean = true;\r\n onChange: any;\r\n onTouched: any;\r\n\r\n private initialized = false;\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData();\r\n }\r\n \r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n \r\n if (this.selectfirst && this.data != null && this.data.length > 0 && !this.data.some(d => d.Id == this.selectedValue))\r\n this.writeValue(this.data[0].Id);\r\n \r\n if (this.disablednoregisters)\r\n this.setDisabledState((this.data == null || this.data.length == 0));\r\n }\r\n\r\n constructor(private _dataAcessService: InfoDataService) { }\r\n\r\n ngOnInit() {\r\n this.name += this.placeholder.replace(/ /g, '');\r\n this.blank = (this.required !== '' && this.required !== 'true' && this.required !== true);\r\n\r\n if (this.blankItem == null)\r\n this.blankItem = { Id: null, Nome: '' };\r\n \r\n this.getData();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.selectedValue = value;\r\n this.onChangeValue();\r\n }\r\n\r\n getData() {\r\n this.initialized = true;\r\n \r\n if (this.api == null || (this.params != null && this.params.toLowerCase().indexOf('undefined') > -1))\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n this._dataAcessService.get(this.api, this.method, this.params).subscribe(r => {\r\n if (r.success) {\r\n this.data = r.data;\r\n if (this.selectedValue) this.onChangeValue();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.selectedValue);\r\n\r\n if (this.onselecteditem != null)\r\n this.onselecteditem.emit(this.data == null ? null : this.data.find(r => r.Id == this.selectedValue));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;\r\n }\r\n}","import { Component, OnInit, Input, HostBinding } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-timeline',\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss'],\r\n host: {\r\n '[class.timeline]': 'true',\r\n '[class.show-date]': 'true'\r\n }\r\n})\r\nexport class InfoTimelineComponent implements OnInit {\r\n @Input() showdate: boolean = true;\r\n @Input() align: string = 'between';\r\n @Input() style: any = '';\r\n @Input() label: string = '';\r\n @Input() data: any[] = [];\r\n\r\n @HostBinding('class.align-left') alignLeft: boolean = false;\r\n @HostBinding('class.align-center') alignCenter: boolean = false;\r\n @HostBinding('class.align-right') alignRight: boolean = false;\r\n @HostBinding('class.align-between') alignBetween: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.alignLeft = (this.align === 'left');\r\n this.alignCenter = (this.align === 'center');\r\n this.alignRight = (this.align === 'right');\r\n this.alignBetween = (this.align === 'between');\r\n }\r\n}","import { Component, forwardRef, Input, SecurityContext, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { AngularEditorComponent, AngularEditorConfig, AngularEditorService } from '@kolkov/angular-editor';\r\n \r\n@Component({\r\n selector: 'info-editor',\r\n templateUrl: './editor.component.html',\r\n styleUrls: ['./editor.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoEditorComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoEditorComponent implements ControlValueAccessor {\r\n\r\n @ViewChild('editor') editor: AngularEditorComponent;\r\n\r\n @Input() required: boolean = false;\r\n @Input() enabledhtmlmode: boolean = false;\r\n @Input() sanitize: boolean = true;\r\n\r\n @Input()\r\n get disabled() { return !(this.editorConfig || {}).editable; }\r\n set disabled(value) { this.editorConfig.editable = !value; }\r\n\r\n @Input()\r\n get height() { return (this.editorConfig || {}).height; }\r\n set height(value) { this.editorConfig.height = value || 'auto'; }\r\n\r\n @Input()\r\n get minheight() { return (this.editorConfig || {}).minHeight; }\r\n set minheight(value) { this.editorConfig.minHeight = value || '0'; }\r\n\r\n @Input()\r\n get maxheight() { return (this.editorConfig || {}).maxHeight; }\r\n set maxheight(value) { this.editorConfig.maxHeight = value || 'auto'; }\r\n\r\n @Input()\r\n get width() { return (this.editorConfig || {}).width; }\r\n set width(value) { this.editorConfig.width = value || 'auto'; }\r\n\r\n @Input()\r\n get minwidth() { return (this.editorConfig || {}).minWidth; }\r\n set minwidth(value) { this.editorConfig.minWidth = value || '0'; }\r\n\r\n value: any = '';\r\n \r\n onChange: any;\r\n onTouched: any;\r\n focused = false;\r\n id = null;\r\n\r\n editorConfig: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: 'auto',\r\n minHeight: '0',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n defaultParagraphSeparator: '',\r\n toolbarPosition: 'top',\r\n sanitize: false,\r\n fonts: [\r\n {class: 'arial', name: 'Arial'},\r\n {class: 'times-new-roman', name: 'Times New Roman'},\r\n {class: 'calibri', name: 'Calibri'},\r\n {class: 'comic-sans-ms', name: 'Comic Sans MS'}\r\n ],\r\n };\r\n\r\n constructor(private _sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n this.id = `editor-${this.getGuid()}`;\r\n }\r\n\r\n ngAfterViewInit() {\r\n var _this = this;\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('focus', () => _this.focused = true);\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('blur', () => _this.focused = false);\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('mouseout', () => _this.editor.editorToolbar['editorService'].saveSelection());\r\n }\r\n\r\n private getGuid() : string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : ( r & 0x3 | 0x8 );\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n onChangeValue() {\r\n if (this.sanitize)\r\n this.value = this._sanitizer.sanitize(SecurityContext.HTML, this.value);\r\n if (this.onChange != null)\r\n this.onChange(this.value);\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n this.value = this.sanitize ? this._sanitizer.sanitize(SecurityContext.HTML, modelValue) : modelValue;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n \r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\n\r\n@Component({\r\n selector: 'info-multi-select',\r\n templateUrl: 'multi-select.component.html',\r\n styleUrls: ['multi-select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoMultiSelectComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoMultiSelectComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required: any = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n selectedValues: any[] = [];\r\n onChange: any;\r\n onTouched: any;\r\n\r\n private initialized = false;\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData();\r\n }\r\n \r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n \r\n if (this.selectfirst && this.data != null && this.data.length > 0 && !this.data.some(d => this.selectedValues?.indexOf(d.Id) > -1))\r\n this.writeValue([this.data[0].Id]);\r\n \r\n if (this.disablednoregisters)\r\n this.setDisabledState((this.data == null || this.data.length == 0));\r\n }\r\n\r\n constructor(private _dataAcessService: InfoDataService) { }\r\n\r\n ngOnInit() {\r\n this.name += this.placeholder.replace(/ /g, '');\r\n this.getData();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.selectedValues = value;\r\n this.onChangeValue();\r\n }\r\n\r\n getData() {\r\n this.initialized = true;\r\n \r\n if (this.api == null || (this.params != null && this.params.toLowerCase().indexOf('undefined') > -1))\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n this._dataAcessService.get(this.api, this.method, this.params).subscribe(r => {\r\n if (r.success) {\r\n this.data = r.data;\r\n if ((this.selectedValues || []).length > 0) this.onChangeValue();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.selectedValues);\r\n\r\n if (this.onselecteditem != null)\r\n this.onselecteditem.emit(this.data == null ? null : this.data.filter(r => this.selectedValues?.indexOf(r.Id) > -1));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;\r\n }\r\n}","import { ENTER } from '@angular/cdk/keycodes';\r\nimport { Component, forwardRef, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-chips',\r\n templateUrl: 'chips.component.html',\r\n providers:[\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoChipsComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoChipsComponent implements ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() readonly: boolean = false;\r\n readonly separatorKeysCodes: number[] = [ENTER];\r\n\r\n @Output() onblur = new EventEmitter();\r\n \r\n values: string[] = [];\r\n onChange: any;\r\n onTouched: any;\r\n\r\n add(event): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n if ((value || '').trim()) this.values.push(value.trim());\r\n if (input) input.value = '';\r\n \r\n this.writeValue(this.values);\r\n }\r\n \r\n remove(index): void {\r\n if (index >= 0) this.values.splice(index, 1);\r\n this.writeValue(this.values);\r\n }\r\n \r\n\r\n onBlur() {\r\n this.onblur.emit(this.values);\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.values);\r\n }\r\n\r\n writeValue(modelValues: any): void {\r\n this.values = modelValues;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { InfoPlatformModel } from \"../../model/platform.model\";\r\nimport { InfoSessionModel } from \"../../model/session.model\";\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoTopbarComponent } from \"../topbar/topbar.component\";\r\n\r\n@Component({\r\n selector: 'info-main',\r\n templateUrl: 'main.component.html',\r\n styleUrls: ['main.component.scss']\r\n})\r\nexport class InfoMainComponent implements OnInit {\r\n\r\n @Input() opened: boolean = false;\r\n @Input() version: string = null;\r\n @Input() messages: any[] = [];\r\n private _themes: any = [];\r\n\r\n @Input() get themes() { return this._themes; }\r\n set themes(value) {\r\n this._themes = value;\r\n this._platform.Themes = this.themes;\r\n\r\n if (this._session.TemaId > 0 && this.setthemeonchangecompany)\r\n this._themeService.setThemeByLoggedCompany();\r\n }\r\n\r\n @Input() languages: any = [];\r\n @Input() profileurl: string = '';\r\n @Input() loginurl: string = 'login';\r\n\r\n @Input() menuapi: any = null;\r\n @Input() menumethod: string = 'GetMenu';\r\n @Input() activemenubyurl: boolean = false;\r\n\r\n @Input() loggeduserapi: any = null;\r\n @Input() loggedusermethod: string = 'GetLoggedUser';\r\n\r\n @Input() notificationapi: any = null;\r\n @Input() notificationgetmethod: string = 'Get';\r\n @Input() notificationpostmethod: string = 'PostNotification';\r\n @Input() notificationverifymethod: string = 'Verify';\r\n @Input() notificationverifyenabled: boolean = true;\r\n \r\n @Input() fastsearchform: any = null;\r\n @Input() fastsearchformwidth: number = 1200;\r\n @Input() fastsearchtitle: string = 'PesquisaRapidaCarteira';\r\n \r\n @Input() setthemeonchangecompany: boolean = false;\r\n\r\n @Input() shortcutapi: any = null;\r\n\r\n @Output() ongetnotification = new EventEmitter();\r\n @Output() onverifynotification = new EventEmitter();\r\n\r\n @ViewChild('topbar') topbar: InfoTopbarComponent;\r\n\r\n constructor(public _platform: InfoPlatformModel, \r\n private _session: InfoSessionModel, \r\n private _router: Router, \r\n private _dataAccessService: InfoDataService, \r\n private _themeService: InfoThemeService,\r\n private _renderer: Renderer2,\r\n private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n //console.log('info-library.main.ngOnInit');\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n\r\n this._platform.Themes = this.themes;\r\n this._platform.ShortcutApi = this.shortcutapi;\r\n\r\n if (localStorage.getItem(this._platform.TokenKey) == null)\r\n this._router.navigateByUrl(this.loginurl);\r\n\r\n else this.getLoggedUser();\r\n\r\n if (document.body.classList.length > 0){\r\n let theme = document.body.classList[0];\r\n \r\n if (document.body.classList[0].indexOf('-theme') < 0 && this._platform.Config.theme != null)\r\n theme = '_' + this._platform.Config.theme + '-theme';\r\n \r\n this._themeService.setTheme(theme);\r\n }\r\n }\r\n\r\n onChangeTopBarState() {\r\n this.opened = !this.opened;\r\n }\r\n\r\n onChangeSideBarState(){\r\n this.topbar.openSidebar();\r\n }\r\n\r\n getLoggedUser() {\r\n if (localStorage.getItem(this._platform.SessionKey) != null)\r\n Object.assign(this._session, JSON.parse(localStorage.getItem(this._platform.SessionKey)));\r\n\r\n if (this._session.UsuarioId != null || this.loggeduserapi == null)\r\n return;\r\n\r\n this._dataAccessService.get(this.loggeduserapi, this.loggedusermethod).subscribe(r => {\r\n if (r.success) {\r\n this._session.UsuarioId = r.data.UsuarioId;\r\n this._session.Usuario = r.data.Usuario;\r\n this._session.Login = r.data.Login;\r\n this._session.Email = r.data.Email;\r\n this._session.Perfil = r.data.Perfil;\r\n this._session.EmpresaId = r.data.EmpresaId;\r\n this._session.TemaId = r.data.TemaId;\r\n this._session.Empresa = r.data.Empresa;\r\n this._session.UltimoAcesso = r.data.UltimoAcesso;\r\n this._session.Master = r.data.Master;\r\n this._session.Clone = r.data.Clone;\r\n this._session.DataMovimentacao = r.data.DataMovimentacao;\r\n this._session.OcultarNomeCliente = r.data.OcultarNomeCliente;\r\n this._session.Empresas = r.data.Empresas;\r\n this._session.Parametros = r.data.Parametros;\r\n this._session.MFA = r.data.MFA;\r\n this._session.TempoInatividade = r.data.TempoInatividade;\r\n this._session.Versao = r.data.Versao;\r\n this.version = r.data.Versao;\r\n\r\n if (this._session.Parametros.some(p => p.Chave == 'DisclaimerGeral'))\r\n this.messages.push(this._session.Parametros.find(p => p.Chave == 'DisclaimerGeral').Valor);\r\n\r\n if (this._session.TemaId != null)\r\n this._themeService.setThemeByLoggedCompany();\r\n }\r\n });\r\n }\r\n\r\n onGetNotificationsTopBar(event) {\r\n this.ongetnotification.emit(event);\r\n }\r\n\r\n onVerifyNotificationsTopBar(event) {\r\n this.onverifynotification.emit(event);\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoLastSearchModel } from '../../model/last-search.model';\r\nimport { InfoSessionModel } from '../../model/session.model';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class InfoSidebarComponent implements OnInit {\r\n\r\n @Input() api: any = null;\r\n @Input() method: string = 'GetMenu';\r\n @Input() activemenubyurl: boolean = false;\r\n @Output() onchangestate = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n menu: any = [];\r\n openSubmenu: string = '';\r\n menuAtivo: string = 'Dashboard';\r\n\r\n constructor(private _dataAcessService: InfoDataService, private _authentication: InfoAuthenticationService, \r\n private _themeService: InfoThemeService, public _session: InfoSessionModel, public _platform: InfoPlatformModel,\r\n private _lastSearch: InfoLastSearchModel, private _router: Router, private _renderer: Renderer2, private _element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n if (!this._authentication.isLogged() || this.api == null)\r\n return;\r\n\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.loading = true;\r\n\r\n this._dataAcessService\r\n .get(this.api, this.method)\r\n .subscribe(r => {\r\n if (r.success){\r\n this.menu = r.data;\r\n this._platform.Menu = r.data;\r\n this._authentication.definePaginaAtiva(this._router.url);\r\n\r\n this.monitorarUrl();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n toggle(e: Event, menuItem: any) {\r\n\r\n e.preventDefault();\r\n\r\n if (!menuItem.Enabled)\r\n return;\r\n\r\n if (!menuItem.Active)\r\n for (let i = 0; i < this.menu.length; i++)\r\n this.menu[i].Active = false;\r\n\r\n menuItem.Active = !menuItem.Active;\r\n }\r\n\r\n access(menu: string){\r\n this.menuAtivo = menu;\r\n this.openSubmenu = '';\r\n \r\n this.resetLastSearch();\r\n }\r\n\r\n monitorarUrl(){\r\n if (this.activemenubyurl){\r\n this.ativarMenu(this._router.url);\r\n\r\n this._router.events.subscribe(e => {\r\n if (e instanceof NavigationStart)\r\n this.ativarMenu(e.url);\r\n });\r\n }\r\n }\r\n\r\n ativarMenu(url: string){\r\n let itemMenu = this.menu.find(m => m.Routing == url);\r\n\r\n if (itemMenu != null)\r\n this.menuAtivo = itemMenu.Title;\r\n }\r\n\r\n toggleSubmenu(menu) {\r\n this.openSubmenu = this.openSubmenu == menu ? '' : menu;\r\n }\r\n\r\n resetLastSearch(){\r\n this._lastSearch.model = null;\r\n this._lastSearch.url = '';\r\n }\r\n\r\n changeSidebar() {\r\n this.onchangestate.emit();\r\n }\r\n\r\n toggleSidebar(){\r\n this._themeService.setMenuMin();\r\n }\r\n}","import { Component, OnInit, Input, Output, EventEmitter, Renderer2, ElementRef } from '@angular/core';\r\nimport { InfoDialogModal } from '../dialog/dialog.component';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { InfoDialogButtons } from '../../enum';\r\nimport { InfoTranslateService } from '../../service/translate.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoNotificationModel } from '../../model/notification.model';\r\nimport { InfoSessionModel } from '../../model/session.model'; \r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\n\r\n@Component({\r\n selector: 'info-topbar',\r\n templateUrl: './topbar.component.html',\r\n styleUrls: ['./topbar.component.scss']\r\n})\r\nexport class InfoTopbarComponent implements OnInit {\r\n @Input() opened: boolean = false;\r\n @Input() languages: any = [];\r\n @Input() themes: any = [];\r\n @Input() notificationapi: any = null;\r\n @Input() notificationgetmethod: string = 'Get';\r\n @Input() notificationpostmethod: string = 'PostNotification';\r\n @Input() notificationverifymethod: string = 'Verify';\r\n @Input() notificationverifyenabled: boolean = true;\r\n @Input() fastsearchform: any = null;\r\n @Input() fastsearchformwidth: number = 1200;\r\n @Input() fastsearchtitle: string = 'PesquisaRapidaCarteira';\r\n @Input() profileurl: string = '';\r\n @Input() setthemeonchangecompany: boolean = false;\r\n @Output() onchangestate = new EventEmitter();\r\n @Output() ongetnotification = new EventEmitter();\r\n @Output() onverifynotification = new EventEmitter();\r\n\r\n modalRef: any = null;\r\n loading: boolean = false;\r\n prodution: boolean = false;\r\n notifications: InfoNotificationModel = new InfoNotificationModel();\r\n\r\n topMenu: any = {\r\n empresa: false,\r\n tema: false,\r\n idioma: false,\r\n notificacao: false,\r\n calendario: false\r\n };\r\n\r\n constructor(private _translateService: InfoTranslateService, \r\n public _authenticationService: InfoAuthenticationService, private _dataService: InfoDataService, \r\n private _themeService: InfoThemeService, private _router: Router, private _dialog: InfoDialogModal, \r\n public _session: InfoSessionModel, public _platform: InfoPlatformModel, private _modal: MatDialog,\r\n private _renderer: Renderer2, private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n \r\n this.prodution = this._platform.Config.production;\r\n this.getNotifications();\r\n }\r\n\r\n setCompany(company) {\r\n this._authenticationService.trocarEmpresa(this._session.Login, company.Id).subscribe(res => {\r\n if (res.success) {\r\n\r\n document.body.setAttribute('loading', 'true');\r\n \r\n this._session.Permissoes = [];\r\n this._session.EmpresaId = company.Id;\r\n this._session.Empresa = company.Nome;\r\n this._session.TemaId = company.TemaId;\r\n this._themeService.setThemeByLoggedCompany();\r\n\r\n localStorage.removeItem(\"Dashboard\");\r\n localStorage.setItem(this._platform.SessionKey, JSON.stringify(this._session));\r\n this._router.navigateByUrl('').then(r => location.reload());\r\n \r\n } else this._authenticationService.logout();\r\n }, err => this._authenticationService.logout());\r\n }\r\n\r\n setLanguage(language: string) {\r\n this._translateService.set(language);\r\n }\r\n\r\n setTheme(theme) {\r\n //console.log('topbar.setTheme', theme);\r\n this._themeService.setTheme(theme);\r\n }\r\n\r\n toggleMode(){\r\n this._themeService.setModePrime();\r\n }\r\n\r\n openFastSearch() {\r\n this.close();\r\n\r\n if (this.modalRef != null) \r\n return;\r\n\r\n this.modalRef = this._modal.open(this.fastsearchform, {\r\n disableClose: true,\r\n width: this.fastsearchformwidth + 'px'\r\n });\r\n\r\n this.modalRef.keydownEvents().subscribe(r => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n this.modalRef.close();\r\n });\r\n\r\n this.modalRef.afterClosed().subscribe(r => { this.modalRef = null });\r\n }\r\n\r\n open(achtiveMenu) {\r\n this.topMenu.empresa = achtiveMenu == 'empresa';\r\n this.topMenu.tema = achtiveMenu == 'tema';\r\n this.topMenu.idioma = achtiveMenu == 'idioma';\r\n this.topMenu.notificacao = achtiveMenu == 'notificacao';\r\n this.topMenu.calendario = achtiveMenu == 'calendario';\r\n }\r\n\r\n close() {\r\n this.topMenu.empresa = false;\r\n this.topMenu.tema = false;\r\n this.topMenu.idioma = false;\r\n this.topMenu.notificacao = false;\r\n this.topMenu.calendario = false;\r\n }\r\n\r\n openSidebar() {\r\n this.opened = !this.opened;\r\n this.onchangestate.emit();\r\n }\r\n\r\n getNotifications() {\r\n if (!this._authenticationService.isLogged() || this.notificationapi == null)\r\n return;\r\n\r\n this._dataService.get(this.notificationapi, this.notificationgetmethod, null).subscribe(r => {\r\n if (r.success) {\r\n this.notifications.Count = r.data.Count;\r\n this.notifications.Itens = r.data.Itens;\r\n\r\n if (this.notificationverifyenabled)\r\n this.verifyNotifications();\r\n\r\n this.ongetnotification.emit(this.notifications);\r\n }\r\n });\r\n }\r\n\r\n verifyNotifications() {\r\n if (!this._authenticationService.isLogged() || this.notificationapi == null)\r\n return;\r\n\r\n this._dataService.get(this.notificationapi, this.notificationverifymethod).subscribe(r => {\r\n if (r.data == -1)\r\n this.logout();\r\n\r\n else if (this.notifications.Count == r.data)\r\n setTimeout(() => { this.verifyNotifications(); }, 15000);\r\n\r\n else this.getNotifications();\r\n\r\n this.onverifynotification.emit({...this.notifications, VerifyCount: r.data});\r\n });\r\n }\r\n\r\n setNotificationStatus(read, access, remove) {\r\n if (this.notifications.Count == 0) return;\r\n\r\n this._dataService.post(this.notificationapi, { Id: '00000000-0000-0000-0000-000000000000', Acesso: access, Leitura: read, Exclusao: remove }, this.notificationpostmethod)\r\n .subscribe(r => this.notifications.Count = 0);\r\n }\r\n\r\n navigate(url: string) {\r\n this._router.navigate([url.replace('/#', '')]);\r\n }\r\n\r\n logout() {\r\n this._dialog.YesOrNo('DesejaRealmenteSair').subscribe(r => {\r\n if (r.button == InfoDialogButtons.Yes)\r\n this._authenticationService.logout();\r\n });\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoLastSearchModel } from '../../model/last-search.model';\r\nimport { InfoSessionModel } from '../../model/session.model';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-topmenu',\r\n templateUrl: './topmenu.component.html',\r\n styleUrls: ['./topmenu.component.scss']\r\n})\r\nexport class InfoTopMenuComponent implements OnInit {\r\n \r\n @Input() api: any = null;\r\n @Input() method: string = 'GetMenu';\r\n @Output() onchangestate = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n menu: any = [];\r\n openSubmenu: string = '';\r\n menuAtivo: string = 'Dashboard';\r\n\r\n constructor(private _dataAcessService: InfoDataService, private _authentication: InfoAuthenticationService, \r\n private _lastSearch: InfoLastSearchModel, private _router: Router, \r\n public _session: InfoSessionModel, public _platform: InfoPlatformModel,\r\n private _renderer: Renderer2, private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n if (!this._authentication.isLogged() || this.api == null)\r\n return;\r\n\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.loading = true;\r\n\r\n this._dataAcessService\r\n .get(this.api, this.method)\r\n .subscribe(r => {\r\n if (r.success){\r\n this.menu = r.data;\r\n this._platform.Menu = r.data;\r\n this._authentication.definePaginaAtiva(this._router.url);\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n toggle(e: Event, menuItem: any) {\r\n\r\n e.preventDefault();\r\n\r\n if (!menuItem.Enabled)\r\n return;\r\n\r\n if (!menuItem.Active)\r\n for (let i = 0; i < this.menu.length; i++)\r\n this.menu[i].Active = false;\r\n\r\n menuItem.Active = !menuItem.Active;\r\n }\r\n\r\n access(menu: string){\r\n this.menuAtivo = menu;\r\n this.openSubmenu = '';\r\n \r\n this.resetLastSearch();\r\n }\r\n\r\n toggleSubmenu(menu) {\r\n this.openSubmenu = this.openSubmenu == menu ? '' : menu;\r\n }\r\n\r\n resetLastSearch(){\r\n this._lastSearch.model = null;\r\n this._lastSearch.url = '';\r\n }\r\n\r\n changeSidebar() {\r\n this.onchangestate.emit();\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'info-loading',\r\n template: `\r\n <section class=\"loading-bar\">\r\n <mat-progress-bar [color]=\"color\" [mode]=\"mode\" *ngIf=\"enabled\" >\r\n </mat-progress-bar>\r\n </section>\r\n `,\r\n styles: [`\r\n .loading-bar { height: 1px; }\r\n .loading-bar .mat-progress-bar { height: 1px; margin: 0; }\r\n `]\r\n})\r\nexport class InfoLoadingComponent{\r\n\r\n @Input() enabled: boolean = false;\r\n @Input() mode: string = 'indeterminate';\r\n @Input() color: string = 'primary';\r\n\r\n}","import { Component, Input, Output, EventEmitter, forwardRef, Inject } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoFormPropModel } from '../../model/form-prop.model';\r\nimport { InfoModalAction } from '../../enum/modal-action.enum';\r\n\r\n@Component({\r\n selector: 'info-modal',\r\n templateUrl: './modal.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoModalComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoModalComponent implements ControlValueAccessor {\r\n\r\n @Input() modaltitle: string = '';\r\n @Input() showcloseicon: boolean = false;\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n @Input() readonly: boolean = null;\r\n @Input() loading: boolean = false;\r\n @Input() loadingblock: boolean = true;\r\n @Input() form: any = null;\r\n @Input() labelclose: string = 'Fechar';\r\n @Input() labelcancel: string = 'Cancelar';\r\n @Input() labelsubmit: string = 'Salvar';\r\n @Input() messages: String[] = [];\r\n @Input() width: number = null;\r\n\r\n @Output() onsave = new EventEmitter();\r\n @Output() onsuccess = new EventEmitter();\r\n\r\n model: any;\r\n onChange: any;\r\n onTouched: any;\r\n\r\n constructor(private _dataAccessService: InfoDataService, @Inject(MAT_DIALOG_DATA) public prop: InfoFormPropModel, private _ref: MatDialogRef<any>) { }\r\n\r\n ngOnInit() {\r\n\r\n if (this.modaltitle == '' && this.prop != null && this.prop.title != null)\r\n this.modaltitle = this.prop.title;\r\n\r\n if (this.api == null && this.prop != null && this.prop.api != null)\r\n this.api = this.prop.api;\r\n\r\n if (this.width != null)\r\n this._ref.updateSize(this.width.toString().replace('px', '') + 'px');\r\n\r\n if (this.readonly == null && this.prop != null && this.prop.readonly != null)\r\n this.readonly = this.prop.readonly;\r\n\r\n this._ref.keydownEvents().subscribe((r) => {\r\n if (r.ctrlKey && r.key == \"Enter\" && !(this.loading || (this.form != null && !this.form.form.valid)) && this.labelsubmit != '' && !this.readonly)\r\n this.submit();\r\n });\r\n }\r\n\r\n submit() {\r\n if (this.onsave.observers.length > 0) {\r\n this.onsave.next();\r\n return;\r\n }\r\n\r\n this.messages = [];\r\n \r\n if (this.api == null || this.api.toString() == '')\r\n this.messages.push('API não informado');\r\n\r\n var dataInicial = this.model[\"DataInicial\"];\r\n var dataFinal = this.model[\"DataFinal\"];\r\n if (dataInicial != null && dataFinal != null && new Date(dataInicial) > new Date(dataFinal)) {\r\n this.messages.push('DataInicialMaiorFinal');\r\n return;\r\n }\r\n\r\n var dataInicio = this.model[\"DataInicio\"];\r\n var dataFim = this.model[\"DataFim\"];\r\n if (dataInicio != null && dataFim != null && new Date(dataInicio) > new Date(dataFim)) {\r\n this.messages.push('DataInicioMaiorFim');\r\n return;\r\n }\r\n\r\n if (this.messages.length > 0)\r\n return;\r\n\r\n this.loading = true;\r\n\r\n this._dataAccessService\r\n .post(this.api, this.model, this.method)\r\n .subscribe(r => {\r\n\r\n if (r.success) {\r\n this.prop.modalAction = InfoModalAction.Save;\r\n this.prop.data = this.model;\r\n this._ref.close(this.prop);\r\n\r\n if (this.onsuccess.observers.length > 0)\r\n this.onsuccess.next();\r\n }\r\n\r\n else this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n close() {\r\n this.messages = [];\r\n this.loading = false;\r\n this._ref.close(this.prop);\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.model = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void { }\r\n}\r\n","import { Component, Input, Inject, ElementRef, Renderer2 } from '@angular/core';\r\nimport { Router, NavigationStart, GuardsCheckStart, NavigationEnd } from '@angular/router';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoTranslateService } from '../../service/translate.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { InfoFormPropModel } from '../../model/form-prop.model';\r\nimport { InfoPageAction } from '../../enum/page-action.enum';\r\nimport { InfoModalAction } from '../../enum/modal-action.enum';\r\n\r\n@Component({\r\n\tselector: 'info-pagebar',\r\n\ttemplateUrl: './pagebar.component.html',\r\n\tstyleUrls: ['./pagebar.component.scss']\r\n})\r\nexport class InfoPagebarComponent {\r\n\r\n\t@Input() margintop = 0;\r\n\t@Input() icon: string;\r\n\t@Input() description: string;\r\n\t@Input() backurl: string = null;\r\n\t@Input() access: any = [];\r\n\t@Input() transparent: boolean = false;\r\n\r\n\tprivate _pageTitle: string;\r\n\tget pagetitle(){\r\n\t\treturn this._pageTitle;\r\n\t}\r\n\r\n\t@Input('pagetitle') set pagetitle(value: string){ \r\n\t\tthis._pageTitle = value.replace(/\\(/g, '<small>(').replace(/\\)/g, ')</small>');\r\n\t}\r\n\r\n\tloading = false;\r\n\tatalhoId: any = null;\r\n\tpodeCriarAtalho = false;\r\n\texibirAcessos = false;\r\n\r\n\tconstructor(private _router: Router,\r\n\t\t\t\tprivate _modal: MatDialog,\r\n\t\t\t\tprivate _dataService: InfoDataService,\r\n\t\t\t\tprivate _translate: InfoTranslateService,\r\n\t\t\t\tpublic _platform: InfoPlatformModel,\r\n\t\t\t\tprivate _renderer: Renderer2, private _element: ElementRef) { \r\n\t\t_router.events.subscribe(e => {\r\n if (e instanceof NavigationStart || e instanceof GuardsCheckStart)\r\n\t\t\t\tsetTimeout(() => this.loading = true, 0);\r\n\t\t\t\r\n\t\t\telse setTimeout(() => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (e instanceof NavigationEnd) {\r\n\t\t\t\t\tthis.podeCriarAtalho = !!this._platform.ShortcutApi && this._router.url != '/';\r\n\t\t\t\t\tthis.getAtalho();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n });\r\n\t}\r\n\r\n\tngOnInit(){\r\n\t\tthis._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n\t}\r\n\r\n\tgoBack(){\r\n\t\tthis._router.navigateByUrl(this.backurl);\r\n\t}\r\n\r\n\tgetAtalho() {\r\n\t\tif (!this.podeCriarAtalho)\r\n\t\t\treturn;\r\n\t\tthis.loading = true;\r\n\t\tthis._dataService.get(this._platform.ShortcutApi, 'GetByUrl', 'url='+this._router.url).subscribe(r => {\r\n\t\t\tthis.loading = false;\r\n\t\t\tif (r.success) this.atalhoId = (r.data || {}).Id;\r\n\t\t});\r\n\t}\r\n\r\n\ttoggleAtalho() {\r\n\t\tif (this.atalhoId) {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis._dataService.delete(this._platform.ShortcutApi, this.atalhoId).subscribe(r => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (r.success) this.atalhoId = null;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis.openModalAtalho().subscribe((r: InfoFormPropModel) => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (r && r.modalAction == InfoModalAction.Save) this.getAtalho();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate openModalAtalho() {\r\n\t\tvar prop = new InfoFormPropModel();\r\n\t\tprop.api = this._platform.ShortcutApi;\r\n\t\tprop.set(InfoPageAction.New, { \r\n\t\t\tId: this.atalhoId,\r\n\t\t\tUrl: this._router.url,\r\n\t\t\tTitulo: `${this._translate.translate(this._platform.PaginaAtiva.Titulo)} / ${this._translate.translate(this.pagetitle)}`\r\n\t\t});\r\n\r\n\t\tlet ref = this._modal.open(AtalhoModalComponent, {\r\n data: prop,\r\n\t\t\tdisableClose: true,\r\n\t\t\twidth: '400px'\r\n\t\t});\r\n\t\t\r\n\t\tref.keydownEvents().subscribe((r) => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n ref.close();\r\n });\r\n\r\n return ref.afterClosed();\r\n\t}\r\n}\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"CriarAcessoRapido\" [form]=\"formModal\" [(ngModel)]=\"model\">\r\n\t\t\t<form autocomplete=\"off\" #formModal=\"ngForm\">\r\n\t\t\t\t<div class=\"row\"> \r\n\t\t\t\t\t<info-input class=\"col-md-12\" [(ngModel)]=\"model.Titulo\" placeholder=\"Titulo\" name=\"Titulo\" required></info-input>\r\n\t\t\t\t</div>\r\n\t\t\t</form>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class AtalhoModalComponent {\r\n\tmodel: any = {};\r\n\tconstructor(@Inject(MAT_DIALOG_DATA) public prop: InfoFormPropModel) {\r\n\t\tthis.model = Object.assign({}, prop.data);\r\n\t\tthis.model.Id = this.model.Id || '00000000-0000-0000-0000-000000000000';\r\n\t}\r\n}","import { Directive, ElementRef, Renderer2, Input, forwardRef, Inject, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'\r\nimport { createTextMaskInputElement } from 'text-mask-core/dist/textMaskCore'\r\nimport emailMask from 'text-mask-addons/dist/emailMask';\r\nimport createAutoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe';\r\n\r\n@Directive({\r\n host: {\r\n '(input)': 'onInput($event.target.value)',\r\n '(blur)': '_onTouched()'\r\n },\r\n selector: '[setmask]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoMaskDirective),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoMaskDirective implements ControlValueAccessor, OnChanges {\r\n private maskInputElement: any\r\n private inputElement: HTMLInputElement\r\n\r\n private lastValue: any\r\n private mask: any\r\n\r\n @Input('setmask') maskType: any\r\n\r\n _onTouched = () => { }\r\n _onChange = (_: any) => { }\r\n\r\n constructor(@Inject(Renderer2) private renderer: Renderer2, @Inject(ElementRef) private element: ElementRef) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setupMask(true);\r\n\r\n if (this.maskInputElement !== undefined)\r\n this.maskInputElement.update(this.inputElement.value)\r\n }\r\n\r\n writeValue(value: any) {\r\n this.setupMask()\r\n\r\n const normalizedValue = value == null ? '' : value\r\n this.renderer.setProperty(this.inputElement, 'value', normalizedValue)\r\n\r\n if (this.maskInputElement !== undefined) {\r\n this.maskInputElement.update(value)\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: any) => any): void { this._onChange = fn }\r\n\r\n registerOnTouched(fn: () => any): void { this._onTouched = fn }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.renderer.setProperty(this.element.nativeElement, 'disabled', isDisabled)\r\n }\r\n\r\n onInput(value) {\r\n this.setupMask()\r\n\r\n if (this.maskInputElement !== undefined) {\r\n this.maskInputElement.update(value)\r\n\r\n value = this.inputElement.value\r\n\r\n if (this.lastValue !== value) {\r\n this.lastValue = value\r\n this._onChange(value)\r\n }\r\n }\r\n }\r\n\r\n private setupMask(create = false) {\r\n if (!this.inputElement) {\r\n if (this.element.nativeElement.tagName === 'INPUT')\r\n this.inputElement = this.element.nativeElement;\r\n\r\n else this.inputElement = this.element.nativeElement.getElementsByTagName('INPUT')[0];\r\n }\r\n\r\n if (this.inputElement && create) {\r\n\r\n let pipe = undefined;\r\n\r\n if (this.maskType == 'email')\r\n this.mask = emailMask;\r\n \r\n else if (this.maskType == 'phone')\r\n this.mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n \r\n else if (this.maskType == 'cel')\r\n this.mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n\r\n else if (this.maskType == 'cep')\r\n this.mask = [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/];\r\n \r\n else if (this.maskType == 'date') {\r\n pipe = createAutoCorrectedDatePipe('dd/mm/yyyy');\r\n this.mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'datemonth') {\r\n pipe = createAutoCorrectedDatePipe('mm/yyyy');\r\n this.mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'time') {\r\n pipe = createAutoCorrectedDatePipe('HH:MM');\r\n this.mask = [/\\d/, /\\d/, ':', /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'cpf')\r\n this.mask = [/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n\r\n else if (this.maskType == 'cnpj')\r\n this.mask = [/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'/',/\\d/,/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n\r\n else this.mask = [];\r\n\r\n let maskConfig = {\r\n mask: this.mask,\r\n guide: true,\r\n placeholderChar: '_',\r\n pipe: pipe,\r\n modelClean: true,\r\n keepCharPositions: false,\r\n };\r\n\r\n this.maskInputElement = createTextMaskInputElement(\r\n Object.assign({ inputElement: this.inputElement }, maskConfig)\r\n )\r\n }\r\n\r\n }\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[unmask]'\r\n})\r\nexport class InfoUnmaskDirective {\r\n\r\n constructor(private elementRef: ElementRef, private model: NgControl) { }\r\n\r\n @HostListener('input') inputChange() {\r\n const newValue = this.elementRef.nativeElement.value.replace(/\\D/g, '')\r\n this.model.control.setValue(newValue);\r\n }\r\n}","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\r\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\n\r\nimport { InfoTranslatePipe } from './pipe/translate.pipe';\r\nimport { InfoMaskPipe } from './pipe/mask.pipe';\r\nimport { InfoMaskDirective } from './directives/mask.directive';\r\nimport { InfoUnmaskDirective } from './directives/unmask.directive';\r\n\r\n// Controls\r\nimport { InfoAlertComponent } from './controls/alert/alert.component';\r\nimport { InfoAutoCompleteComponent } from './controls/autocomplete/autocomplete.component';\r\nimport { InfoBigCheckboxComponent } from './controls/big-checkbox/big-checkbox.component';\r\nimport { InfoCardComponent } from './controls/card/card.component';\r\nimport { InfoMenuCardComponent } from './controls/card-menu/card-menu.component';\r\nimport { InfoCheckboxComponent } from './controls/checkbox/checkbox.component';\r\nimport { InfoDateComponent } from './controls/date/date.component';\r\nimport { InfoDateMonthComponent } from './controls/date-month/date-month.component';\r\nimport { InfoGridComponent } from './controls/grid/grid.component';\r\nimport { InfoInputComponent } from './controls/input/input.component';\r\nimport { InfoInputListComponent } from './controls/input-list/input-list.component';\r\nimport { InfoListCheckboxComponent } from './controls/list-checkbox/list-checkbox.component';\r\nimport { InfoMessageComponent } from './controls/message/message.component';\r\nimport { InfoPaginatorComponent } from './controls/paginator/paginator.component';\r\nimport { InfoSelectComponent } from './controls/select/select.component';\r\nimport { InfoTimelineComponent } from './controls/timeline/timeline.component';\r\nimport { InfoEditorComponent } from './controls/editor/editor.component';\r\nimport { InfoMultiSelectComponent } from './controls/multi-select/multi-select.component';\r\nimport { InfoChipsComponent } from './controls/chips/chips.component';\r\n\r\n// Layouts\r\nimport { InfoDialogComponent } from './layouts/dialog/dialog.component';\r\nimport { InfoLoadingComponent } from './layouts/loading/loading.component';\r\nimport { InfoMainComponent } from './layouts/main/main.component';\r\nimport { InfoModalComponent } from './layouts/modal/modal.component';\r\nimport { InfoPagebarComponent, AtalhoModalComponent } from './layouts/pagebar/pagebar.component';\r\nimport { InfoSidebarComponent } from './layouts/sidebar/sidebar.component';\r\nimport { InfoTopbarComponent } from './layouts/topbar/topbar.component';\r\nimport { RefreshSessionTimeModalComponent } from './service/authentication.service';\r\nimport { InfoTopMenuComponent } from './layouts/topmenu/topmenu.component';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tHttpClientModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatCardModule,\r\n\t\tMatIconModule,\r\n\t\tMatInputModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatListModule,\r\n\t\tMatSelectModule,\r\n\t\tMatCheckboxModule,\r\n\t\tMatRadioModule,\r\n\t\tMatButtonModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatMomentDateModule,\r\n\t\tMatDialogModule,\r\n\t\tMatProgressBarModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tMatTooltipModule,\r\n\t\tRouterModule,\r\n\t\tCurrencyMaskModule,\r\n\t\tAngularEditorModule,\r\n\t\tMatChipsModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tInfoTranslatePipe,\r\n\t\tInfoMaskPipe,\r\n\r\n\t\tInfoMaskDirective,\r\n\t\tInfoUnmaskDirective,\r\n\r\n\t\tInfoAlertComponent,\r\n\t\tInfoAutoCompleteComponent,\r\n\t\tInfoBigCheckboxComponent,\r\n\t\tInfoCardComponent,\r\n\t\tInfoMenuCardComponent,\r\n\t\tInfoCheckboxComponent,\r\n\t\tInfoDateComponent,\r\n\t\tInfoDateMonthComponent,\r\n\t\tInfoGridComponent,\r\n\t\tInfoInputComponent,\r\n\t\tInfoInputListComponent,\r\n\t\tInfoListCheckboxComponent,\r\n\t\tInfoMessageComponent,\r\n\t\tInfoPaginatorComponent,\r\n\t\tInfoSelectComponent,\r\n\t\tInfoTimelineComponent,\r\n\t\tInfoEditorComponent,\r\n\t\tInfoMultiSelectComponent,\r\n\t\tInfoChipsComponent,\r\n\r\n\t\tInfoDialogComponent,\r\n\t\tInfoLoadingComponent,\r\n\t\tInfoMainComponent,\r\n\t\tInfoModalComponent,\r\n\t\tInfoPagebarComponent,\r\n\t\tInfoSidebarComponent,\r\n\t\tInfoTopbarComponent,\r\n\t\tInfoTopMenuComponent,\r\n\t\tAtalhoModalComponent,\r\n\t\tRefreshSessionTimeModalComponent,\r\n\t],\r\n\texports: [\r\n\t\tInfoTranslatePipe,\r\n\t\tInfoMaskPipe,\r\n\r\n\t\tInfoAlertComponent,\r\n\t\tInfoAutoCompleteComponent,\r\n\t\tInfoBigCheckboxComponent,\r\n\t\tInfoCardComponent,\r\n\t\tInfoMenuCardComponent,\r\n\t\tInfoCheckboxComponent,\r\n\t\tInfoDateComponent,\r\n\t\tInfoDateMonthComponent,\r\n\t\tInfoGridComponent,\r\n\t\tInfoInputComponent,\r\n\t\tInfoInputListComponent,\r\n\t\tInfoListCheckboxComponent,\r\n\t\tInfoMessageComponent,\r\n\t\tInfoPaginatorComponent,\r\n\t\tInfoSelectComponent,\r\n\t\tInfoTimelineComponent,\r\n\t\tInfoEditorComponent,\r\n\t\tInfoMultiSelectComponent,\r\n\t\tInfoChipsComponent,\r\n\r\n\t\tInfoDialogComponent,\r\n\t\tInfoLoadingComponent,\r\n\t\tInfoMainComponent,\r\n\t\tInfoModalComponent,\r\n\t\tInfoPagebarComponent,\r\n\t\tInfoSidebarComponent,\r\n\t\tInfoTopbarComponent,\r\n\t\tInfoTopMenuComponent,\r\n\t],\r\n\tschemas: [\r\n\t\tCUSTOM_ELEMENTS_SCHEMA\r\n\t],\r\n\tentryComponents: [\r\n\t\tInfoDialogComponent,\r\n\t\tAtalhoModalComponent,\r\n\t\tRefreshSessionTimeModalComponent\r\n\t]\r\n})\r\nexport class InfoLibraryModule { }"]}