info-library 2.10.84 → 2.10.85

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.
Files changed (68) hide show
  1. package/bundles/info-library.umd.js +1 -1
  2. package/bundles/info-library.umd.min.js +1 -1
  3. package/bundles/info-library.umd.min.js.map +1 -1
  4. package/esm2015/controls/alert/alert.component.js +1 -1
  5. package/esm2015/controls/autocomplete/autocomplete.component.js +1 -1
  6. package/esm2015/controls/big-checkbox/big-checkbox.component.js +1 -1
  7. package/esm2015/controls/card/card.component.js +1 -1
  8. package/esm2015/controls/card-menu/card-menu.component.js +1 -1
  9. package/esm2015/controls/checkbox/checkbox.component.js +1 -1
  10. package/esm2015/controls/chips/chips.component.js +1 -1
  11. package/esm2015/controls/date/date.component.js +1 -1
  12. package/esm2015/controls/date-month/date-month.component.js +1 -1
  13. package/esm2015/controls/editor/editor.component.js +1 -1
  14. package/esm2015/controls/grid/grid.component.js +1 -1
  15. package/esm2015/controls/input/input.component.js +1 -1
  16. package/esm2015/controls/input-list/input-list.component.js +1 -1
  17. package/esm2015/controls/list-checkbox/list-checkbox.component.js +1 -1
  18. package/esm2015/controls/message/message.component.js +1 -1
  19. package/esm2015/controls/multi-select/multi-select.component.js +1 -1
  20. package/esm2015/controls/paginator/paginator.component.js +1 -1
  21. package/esm2015/controls/select/select.component.js +1 -1
  22. package/esm2015/controls/timeline/timeline.component.js +1 -1
  23. package/esm2015/directives/mask.directive.js +1 -1
  24. package/esm2015/directives/unmask.directive.js +1 -1
  25. package/esm2015/enum/dialog-buttons.enum.js +1 -1
  26. package/esm2015/enum/index.js +1 -1
  27. package/esm2015/enum/modal-action.enum.js +1 -1
  28. package/esm2015/enum/page-action.enum.js +1 -1
  29. package/esm2015/global-config.js +1 -1
  30. package/esm2015/info-library.js +1 -1
  31. package/esm2015/info-library.module.js +1 -1
  32. package/esm2015/layouts/dialog/dialog.component.js +1 -1
  33. package/esm2015/layouts/loading/loading.component.js +1 -1
  34. package/esm2015/layouts/main/main.component.js +1 -1
  35. package/esm2015/layouts/modal/modal.component.js +1 -1
  36. package/esm2015/layouts/pagebar/pagebar.component.js +1 -1
  37. package/esm2015/layouts/sidebar/sidebar.component.js +1 -1
  38. package/esm2015/layouts/topbar/topbar.component.js +2 -2
  39. package/esm2015/layouts/topmenu/topmenu.component.js +1 -1
  40. package/esm2015/model/app-config.model.js +1 -1
  41. package/esm2015/model/data-access.model.js +1 -1
  42. package/esm2015/model/dialog-result.model.js +1 -1
  43. package/esm2015/model/dialog.model.js +1 -1
  44. package/esm2015/model/form-prop.model.js +1 -1
  45. package/esm2015/model/grid-button.model.js +1 -1
  46. package/esm2015/model/index.js +1 -1
  47. package/esm2015/model/last-search.model.js +1 -1
  48. package/esm2015/model/login.model.js +1 -1
  49. package/esm2015/model/method-grid-button.model.js +1 -1
  50. package/esm2015/model/notification.model.js +1 -1
  51. package/esm2015/model/pagebar-buttons.model.js +1 -1
  52. package/esm2015/model/permission.model.js +1 -1
  53. package/esm2015/model/platform.model.js +1 -1
  54. package/esm2015/model/session.model.js +1 -1
  55. package/esm2015/pipe/index.js +1 -1
  56. package/esm2015/pipe/mask.pipe.js +1 -1
  57. package/esm2015/pipe/translate.pipe.js +1 -1
  58. package/esm2015/public_api.js +1 -1
  59. package/esm2015/service/authentication.service.js +1 -1
  60. package/esm2015/service/configuration.service.js +1 -1
  61. package/esm2015/service/data.service.js +1 -1
  62. package/esm2015/service/index.js +1 -1
  63. package/esm2015/service/theme.service.js +1 -1
  64. package/esm2015/service/translate.service.js +1 -1
  65. package/esm2015/utils/utilities.js +1 -1
  66. package/fesm2015/info-library.js +1 -1
  67. package/info-library.metadata.json +1 -1
  68. package/package.json +1 -1
@@ -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/utils/utilities.ts","../../../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","__values","o","s","m","i","SuppressedError","Utilities","getGuid","replace","r","Math","random","toString","getGuidEmpty","isGuid","match","base64ToArrayBuffer","base64","binaryString","window","atob","binaryLen","bytes","Uint8Array","ascii","charCodeAt","openOrDownload","blob","fileURL","URL","createObjectURL","indexOf","open","elementA","document","createElement","href","download","appendChild","click","removeChild","removerAcentos","val","String","normalize","str","getFormatos","Id","Nome","MimeType","Extensao","getFormatosExcel","getStatus","getStatusCompleto","Selecionado","getStatusProcessamento","getFormatoIdiomas","getGeneros","getTiposEvidencia","getOrdens","validarEmail","form","control","pattern","split","some","email","test","trim","controls","setErrors","invalid","setLocalStorage","criptografar","getLocalStorage","descriptografar","isIE","userAgent","navigator","retornaTexto","texto","div","innerHTML","innerText","textContent","CryptoJS.AES","encrypt","decrypt","CryptoJS.enc","Utf8","InfoDataService","_apiController","_http","_router","_utilities","getToken","token","navigateByUrl","getHeaderToken","HttpHeaders","getAPIUrl","controller","toLowerCase","getNoToken","param","_this","get","pipe","InfoDataAccessModel","catchError","errorHandling","headers","getById","id","postNoToken","post","delete","undefined","alert","deleteByModel","httpOptions","request","formData","FormData","append","redirect","status","location","of","HttpClient","Router","InfoAuthenticationService","_sessao","_dataService","_modal","_title","_sessionActive","getSessao","getPlatform","canActivate","activatedRouteSnapshot","routerStateSnapshot","isLogged","logout","setTimeout","refreshSessionTime","definePaginaAtiva","getPermission","hasPermission","paramMap","error","switchMap","res","permissao","params","RegExp","p","toPromise","_a","clearInterval","_sessionTimeInterval","TempoInatividade","tempoSessao","Date","valueOf","setInterval","tempoRestante","round","parseInt","isNaN","showMessage","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","ChaveFuncionalidade","Acesso","validaSessao","ret","Observable","observer","complete","forEach","item","filter","JSON","stringify","keys","includes","aux","substring","tituloMenu","parametrosUrl","slice","PaginaAtiva","Icone","Titulo","Title","subTitulo","parseFloat","toPascalCase","Icon","setTitle","retorno","urlParts","error_description","w1","w2","toUpperCase","InfoSessionModel","MatDialog","_ref","time","ngOnInit","interval","ativo","close","Component","template","MatDialogRef","InfoThemeService","_overlay","_plataform","_session","setTheme","find","unificarTopbar","getContainerElement","classList","themeClassesToRemove","remove","removeAttribute","add","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","themesClassToRemove","themesClassToRemove_1","themesClassToRemove_1_1","themeToRemove","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","cssFile","type","rel","head","cssClient","InfoAlertComponent","onClose","selector","Input","InfoAutoCompleteComponent","_dataAcess","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","floor","valueChanges","debounceTime","distinctUntilChanged","options","filterValue","option","parameters","charAt","reduce","b","assign","onBlur","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","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","parent","apidownload","methoddownload","backurl","newurl","newlabel","editurl","viewurl","templateurl","paged","size","autorefresh","enabledcols","enablednew","enablededit","enableddelete","enabledview","enabledcancelsearch","enableddetail","enabledclassicons","enabledclickaccess","enabledclickevent","enabledexpand","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","colunasPadraoHeaders","colunasType","colunasWidth","colunasTranslate","colunasHtml","colunasItensExpandidos","currentUrl","chaveStorage","identificador","limitcharacters","parentIdUrlChange","parentIdUrlValue","_cols","setColumns","clearTimeout","callTimeout","snapshot","addClass","setPagebarTitle","formModel","formSearch","toArray","addControl","paginator","hideLoad","ngOnDestroy","colunasOcultas_1","dadosStorage","findIndex","Identificador","Colunas","Exibir","registro","html","column","header","dados","parts","headerInfo","setItensExpandidos","row","j","_b","navigate","openCustomModal","openModal","getSearch","getPaged","getAll","getByParentId","getDataReturn","Index","Size","dataInicial","dataFinal","dataInicio","dataFim","refreshPaginator","parentIdUrl","refresh","fillIcons","changePage","cancelSearch","search","detail","mostrarMais","linha","coluna","access","edit","view","observers","customizeTable","Chave","InfoGridModalComponent","icone","Tooltip","Principal","index_1","element","element_1","info","back","keydownEvents","detectChanges","arquivoId","Conteudo","Blob","msSaveOrOpenBlob","eventButton","ActivatedRoute","ChangeDetectorRef","InfoLastSearchModel","Renderer2","ElementRef","ContentChildren","NgModel","NgForm","colunas","colunasGrid","GridAtual","colunasGeral","novaColuna","save","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","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","toLocaleString","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","querySelector","addEventListener","editor","editorToolbar","saveSelection","SecurityContext","HTML","DomSanitizer","InfoMultiSelectComponent","selectedValues","InfoChipsComponent","separatorKeysCodes","ENTER","values","modelValues","InfoMainComponent","opened","version","enabledia","_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","cSession","UsuarioId","Login","Email","Perfil","Empresa","UltimoAcesso","Master","Clone","DataMovimentacao","OcultarNomeCliente","MFA","Versao","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","infoia","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 = 'tk';\r\n SessionKey: string = 'ss';\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\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\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, inner;\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 if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\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\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 } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n 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 getGuidEmpty() : string {\r\n return '00000000-0000-0000-0000-000000000000';\r\n }\r\n\r\n 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 base64ToArrayBuffer(base64): any {\r\n var binaryString = window.atob(base64);\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 return bytes;\r\n }\r\n\r\n openOrDownload(title, blob) {\r\n let fileURL = URL.createObjectURL(blob);\r\n \r\n if (title.indexOf(\"pdf\") > -1)\r\n window.open(fileURL, title);\r\n else {\r\n let elementA: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;\r\n elementA.href = fileURL;\r\n elementA.download = title;\r\n document.body.appendChild(elementA);\r\n elementA.click(); \r\n document.body.removeChild(elementA);\r\n }\r\n }\r\n\r\n removerAcentos(val: string) : string {\r\n if (val == null)\r\n return '';\r\n var normalizeFunction = String.prototype.normalize ? (str) => str.normalize('NFD') : (str) => str;\r\n return normalizeFunction(val).replace(/[\\u0300-\\u036f]/g, \"\")\r\n }\r\n\r\n getFormatos(): any[] {\r\n return [ { Id: \"EXCEL\", Nome: \"Excel\", MimeType: \"application/vnd.ms-excel\", Extensao: \"xls\" },\r\n { Id: \"PDF\", Nome: \"PDF\", MimeType: \"application/pdf\", Extensao: \"pdf\" } ];\r\n }\r\n\r\n getFormatosExcel(): any[] {\r\n return [ { Id: 'PP', Nome: 'Excel Português com Separador Decimal [.]' },\r\n { Id: 'PV', Nome: 'Excel Português com Separador Decimal [,]' },\r\n { Id: 'IP', Nome: 'Excel Inglês com Separador Decimal [.]' },\r\n { Id: 'IV', Nome: 'Excel Inglês com Separador Decimal [,]' } ];\r\n }\r\n\r\n getStatus(): any[] {\r\n return [ { Id: \"A\", Nome: \"Ativo\" },\r\n { Id: \"P\", Nome: \"Pendente\" } ];\r\n }\r\n\r\n getStatusCompleto(): any[] {\r\n return [ { Id: \"C\", Nome: \"Cadastrado\", Selecionado: true },\r\n { Id: \"F\", Nome: \"Feito\", Selecionado: false },\r\n { Id: \"O\", Nome: \"Conferido\", Selecionado: true },\r\n { Id: \"R\", Nome: \"Rejeitado\", Selecionado: false },\r\n { Id: \"I\", Nome: \"Inativo\", Selecionado: false } ];\r\n }\r\n\r\n getStatusProcessamento(): any[] {\r\n return [ { Id: \"A\", Nome: \"AguardandoProcessamento\" },\r\n { Id: \"E\", Nome: \"EmProcessamento\" },\r\n { Id: \"P\", Nome: \"Processado\" },\r\n { Id: \"I\", Nome: \"Inativo\" },\r\n { Id: \"Z\", Nome: \"Erro\" } ];\r\n }\r\n\r\n getFormatoIdiomas(): any[] {\r\n return [ { Id: \"en\", Nome: \"English\" },\r\n { Id: \"pt-BR\", Nome: \"Português\" } ];\r\n }\r\n\r\n getGeneros(): any[] {\r\n return [ { Id: 'M', Nome: 'Masculino' },\r\n { Id: 'F', Nome: 'Feminino' } ];\r\n }\r\n\r\n getTiposEvidencia(): any[] {\r\n return [ { Id: 1, Nome: 'Telefone'},\r\n { Id: 2, Nome: 'Email'},\r\n {Id: 3, Nome: 'Documento'} ];\r\n }\r\n\r\n getOrdens(): any[] {\r\n return [ {Id: \"nome-asc\", Nome: \"NomeCrescente\"},\r\n {Id: \"nome-desc\", Nome: \"NomeDecrescente\"},\r\n {Id: \"valor-asc\", Nome: \"ValorCrescente\"},\r\n {Id: \"valor-desc\", Nome: \"ValorDecrescente\"} ];\r\n }\r\n\r\n validarEmail(form, value, control) {\r\n if (!value)\r\n return;\r\n \r\n let pattern = /^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$/;\r\n let emails: string[] = value.split(';');\r\n let invalido = emails.some(email => email && !pattern.test(email.trim()));\r\n\r\n if (invalido)\r\n form.form.controls[control].setErrors( { 'invalid': true } );\r\n }\r\n\r\n setLocalStorage(key: string, value: any) {\r\n localStorage.setItem(key, this.criptografar(value));\r\n }\r\n\r\n getLocalStorage(key: string): any {\r\n var data = this.descriptografar(localStorage.getItem(key));\r\n if (data == null || data == '') return null;\r\n return data;\r\n }\r\n\r\n isIE() {\r\n var userAgent = navigator.userAgent;\r\n return userAgent.indexOf(\"MSIE \") > -1 || userAgent.indexOf(\"Trident/\") > -1;\r\n }\r\n\r\n retornaTexto(texto) {\r\n var div = document.createElement(\"div\")\r\n div.innerHTML = texto;\r\n return div.innerText || div.textContent;\r\n }\r\n\r\n criptografar(texto) {\r\n try {\r\n return CryptoJS.AES.encrypt(texto, \"GKxLtQg2at\").toString();\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n \r\n descriptografar(texto) {\r\n try {\r\n return CryptoJS.AES.decrypt(texto, \"GKxLtQg2at\").toString(CryptoJS.enc.Utf8);\r\n } catch (e) {\r\n return null;\r\n }\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\nimport { Utilities } from '../utils/utilities';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoDataService {\r\n\r\n private token: string;\r\n\r\n constructor(@Inject(APICONTROLLER_CONFIG) private _apiController: any, \r\n private _http: HttpClient, \r\n private _router: Router, \r\n private _plataforma: InfoPlatformModel, \r\n private _utilities: Utilities) { }\r\n\r\n public getToken(): string {\r\n this.token = this._utilities.getLocalStorage(this._plataforma.TokenKey);\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\nimport { Title } from '@angular/platform-browser';\r\nimport { InfoTranslateService } from '../service/translate.service';\r\nimport { Utilities } from '../utils/utilities';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoAuthenticationService implements CanActivate {\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 private _utilities: Utilities, \r\n private _translate: InfoTranslateService, \r\n private _title: Title) { }\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 (this._utilities.getLocalStorage(this._plataforma.TokenKey) != 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 this._utilities.setLocalStorage(this._plataforma.TokenKey, 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 this._utilities.setLocalStorage(this._plataforma.TokenKey, 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 this._utilities.setLocalStorage(this._plataforma.TokenKey, 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 if (this.isLogged()) {\r\n this._http.post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/Logout', null, { headers: this._dataService.getHeaderToken() })\r\n .subscribe(() => {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); }); \r\n });\r\n }\r\n else {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); }); \r\n }\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 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 this._utilities.setLocalStorage(this._plataforma.SessionKey, JSON.stringify(this._sessao));\r\n }\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 }\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') && !key.includes('cols')) \r\n 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 let parametrosUrl: string[] = url.split('/').slice(2);\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 let subTitulo = \"\";\r\n for (var i = 0; i < parametrosUrl.length; i++) {\r\n if (!this.isGuid(parametrosUrl[i]) && isNaN(parseFloat(parametrosUrl[i])))\r\n subTitulo += \" - \" + this._translate.translate(this.toPascalCase(parametrosUrl[i]));\r\n }\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 this._title.setTitle(\"Plataforma - \" + this._translate.translate(item[0].Title) + subTitulo);\r\n }\r\n\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 private toPascalCase(value: string): string{\r\n return value.replace(/(^\\w|-\\w)/g, (w1, w2, i) => i == 0 ? w1.toUpperCase() : w1[1].toUpperCase());\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\r\n document.body.removeAttribute('class');\r\n\r\n if(!this._plataform.ModoPrime){\r\n document.body.classList.add(theme);\r\n _overlay.add(theme);\r\n }\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 let _overlay = this._overlay.getContainerElement().classList;\r\n let themesClassToRemove = Array.from(_overlay).filter(item => item.includes('-theme'));\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 if (themesClassToRemove && themesClassToRemove.length > 0) {\r\n for (let themeToRemove of themesClassToRemove) {\r\n _overlay.remove(themeToRemove);\r\n document.body.classList.remove(themeToRemove);\r\n }\r\n }\r\n }\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, Inject } 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 { MAT_DIALOG_DATA, MatDialog, MatDialogRef } 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() enabledcols = true;\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 @Input() enabledexpand = 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 colunasPadraoHeaders = [];\r\n colunasType = [];\r\n colunasWidth = [];\r\n colunasTranslate = [];\r\n colunasHtml = [];\r\n colunasItensExpandidos = [];\r\n currentUrl: string = null;\r\n url: string = null;\r\n chaveStorage: string = 'cols';\r\n identificador: string = null;\r\n limitcharacters: number = 250;\r\n callTimeout: any;\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 clearTimeout(this.callTimeout);\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.identificador = this.api + '_' + this.method;\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 }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.callTimeout);\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\r\n let colunasOcultas = [];\r\n if (localStorage.getItem(this.chaveStorage) != null){\r\n let dadosStorage = JSON.parse(localStorage.getItem(this.chaveStorage));\r\n\r\n if (dadosStorage.findIndex(c => c.Identificador == this.identificador) > -1){\r\n colunasOcultas = dadosStorage.find(c => c.Identificador == this.identificador).Colunas;\r\n\r\n if (colunasOcultas.length > 0)\r\n colunasOcultas = colunasOcultas.filter(c => !c.Exibir).map(c => c.Nome);\r\n }\r\n }\r\n\r\n this.colunasItens = [];\r\n this.colunasHeaders = [];\r\n this.colunasPadraoHeaders = [];\r\n this.colunasType = [];\r\n this.colunasWidth = [];\r\n this.colunasTranslate = [];\r\n this.colunasHtml = [];\r\n \r\n this.cols.split(',').forEach(registro => {\r\n\r\n let translate: boolean = registro.indexOf('#') == -1;\r\n let html: boolean = registro.indexOf('@') == -1;\r\n registro = registro.replace(/#/g, '').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 if (colunasOcultas.indexOf(header) < 0) {\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 this.colunasHtml.push(html);\r\n }\r\n\r\n this.colunasPadraoHeaders.push(header);\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 setItensExpandidos() {\r\n this.colunasItensExpandidos = [];\r\n for (let i = 0; i < this.data?.length; i++) {\r\n let row = [];\r\n for (let j = 0; j < this.colunasItens?.length; j++) {\r\n row.push(false);\r\n }\r\n this.colunasItensExpandidos.push(row);\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 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 clearTimeout(this.callTimeout);\r\n this.callTimeout = setTimeout(() => { this.getData(); }, this.autorefresh * 1000);\r\n }\r\n \r\n this.fillIcons();\r\n this.setItensExpandidos();\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 mostrarMais(linha, coluna) {\r\n this.colunasItensExpandidos[linha][coluna] = !this.colunasItensExpandidos[linha][coluna] \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 customizeTable(){\r\n this._prop.set(InfoPageAction.Edit, { \r\n Identificador: this.identificador, \r\n Colunas: this.colunasPadraoHeaders, \r\n Chave: this.chaveStorage \r\n });\r\n\r\n this._prop.modalAction = InfoModalAction.None;\r\n let ref = this.modal.open(InfoGridModalComponent, {\r\n data: this._prop,\r\n disableClose: true,\r\n width: '500px'\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.setColumns();\r\n this.getData();\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 this._prop.modalAction = InfoModalAction.None;\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}\r\n\r\n@Component({\r\n templateUrl: 'grid.modal.html',\r\n providers: [InfoFormPropModel]\r\n})\r\nexport class InfoGridModalComponent {\r\n\r\n identificador: string;\r\n chaveStorage: string;\r\n colunas: any = [];\r\n dadosStorage: any = null;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public _prop: InfoFormPropModel, private _ref: MatDialogRef<InfoGridModalComponent>, private _modal: MatDialog){\r\n }\r\n\r\n ngOnInit(){\r\n this.identificador = this._prop.data.Identificador;\r\n this.chaveStorage = this._prop.data.Chave;\r\n\r\n let colunasGrid = this._prop.data.Colunas.map(c => { return { Nome: c, Exibir: true, GridAtual: true }; });\r\n\r\n if (localStorage.getItem(this.chaveStorage) == null)\r\n localStorage.setItem(this.chaveStorage, JSON.stringify([]));\r\n\r\n this.dadosStorage = JSON.parse(localStorage.getItem(this.chaveStorage));\r\n\r\n if (this.dadosStorage.findIndex(c => c.Identificador == this.identificador) < 0)\r\n this.dadosStorage.push({ Identificador: this.identificador, Colunas: colunasGrid });\r\n\r\n let colunasGeral = this.dadosStorage.find(c => c.Identificador == this.identificador).Colunas;\r\n \r\n //Adiciona possíveis novas colunas\r\n colunasGrid.filter(g => colunasGeral.map(c => c.Nome).indexOf(g.Nome) < 0).forEach(novaColuna => {\r\n colunasGeral.push(novaColuna);\r\n });\r\n\r\n //Exibe apenas as colunas presentes no grid atual\r\n this.colunas = colunasGeral.map(c => ({ ...c, GridAtual: colunasGrid.findIndex(g => g.Nome == c.Nome) > -1 }));\r\n }\r\n\r\n save(){\r\n this.dadosStorage.find(c => c.Identificador == this.identificador).Colunas = this.colunas;\r\n localStorage.setItem(this.chaveStorage, JSON.stringify(this.dadosStorage));\r\n \r\n this._prop.modalAction = InfoModalAction.Save;\r\n this._ref.close(this._prop);\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.toLocaleString('pt-BR') + ' - ' + currentEnd.toLocaleString('pt-BR') + ' de ' + this.total.toLocaleString('pt-BR');\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\nimport { Utilities } from \"../../utils/utilities\";\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 @Input() enabledia: boolean = false;\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 private _utilities: Utilities) { }\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._platform.Themes = this.themes;\r\n this._platform.ShortcutApi = this.shortcutapi;\r\n\r\n if (this._utilities.getLocalStorage(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 var cSession = this._utilities.getLocalStorage(this._platform.SessionKey);\r\n if (cSession != null)\r\n Object.assign(this._session, JSON.parse(cSession));\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\nimport { Utilities } from '../../utils/utilities';\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 @Input() enabledia: 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 infoia: 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, \r\n private _dataService: InfoDataService, \r\n private _themeService: InfoThemeService, \r\n private _router: Router, private _dialog: InfoDialogModal, \r\n public _session: InfoSessionModel, \r\n public _platform: InfoPlatformModel, \r\n private _modal: MatDialog,\r\n private _renderer: Renderer2, \r\n private _element: ElementRef, \r\n private _utilities: Utilities) { }\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 this._utilities.setLocalStorage(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 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.infoia = achtiveMenu == 'infoia';\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.infoia = 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\nimport { Utilities } from './utils/utilities';\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, InfoGridModalComponent } 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\tInfoGridModalComponent,\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\tInfoGridModalComponent,\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 providers: [\r\n Utilities\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/utils/utilities.ts","../../../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","__values","o","s","m","i","SuppressedError","Utilities","getGuid","replace","r","Math","random","toString","getGuidEmpty","isGuid","match","base64ToArrayBuffer","base64","binaryString","window","atob","binaryLen","bytes","Uint8Array","ascii","charCodeAt","openOrDownload","blob","fileURL","URL","createObjectURL","indexOf","open","elementA","document","createElement","href","download","appendChild","click","removeChild","removerAcentos","val","String","normalize","str","getFormatos","Id","Nome","MimeType","Extensao","getFormatosExcel","getStatus","getStatusCompleto","Selecionado","getStatusProcessamento","getFormatoIdiomas","getGeneros","getTiposEvidencia","getOrdens","validarEmail","form","control","pattern","split","some","email","test","trim","controls","setErrors","invalid","setLocalStorage","criptografar","getLocalStorage","descriptografar","isIE","userAgent","navigator","retornaTexto","texto","div","innerHTML","innerText","textContent","CryptoJS.AES","encrypt","decrypt","CryptoJS.enc","Utf8","InfoDataService","_apiController","_http","_router","_utilities","getToken","token","navigateByUrl","getHeaderToken","HttpHeaders","getAPIUrl","controller","toLowerCase","getNoToken","param","_this","get","pipe","InfoDataAccessModel","catchError","errorHandling","headers","getById","id","postNoToken","post","delete","undefined","alert","deleteByModel","httpOptions","request","formData","FormData","append","redirect","status","location","of","HttpClient","Router","InfoAuthenticationService","_sessao","_dataService","_modal","_title","_sessionActive","getSessao","getPlatform","canActivate","activatedRouteSnapshot","routerStateSnapshot","isLogged","logout","setTimeout","refreshSessionTime","definePaginaAtiva","getPermission","hasPermission","paramMap","error","switchMap","res","permissao","params","RegExp","p","toPromise","_a","clearInterval","_sessionTimeInterval","TempoInatividade","tempoSessao","Date","valueOf","setInterval","tempoRestante","round","parseInt","isNaN","showMessage","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","ChaveFuncionalidade","Acesso","validaSessao","ret","Observable","observer","complete","forEach","item","filter","JSON","stringify","keys","includes","aux","substring","tituloMenu","parametrosUrl","slice","PaginaAtiva","Icone","Titulo","Title","subTitulo","parseFloat","toPascalCase","Icon","setTitle","retorno","urlParts","error_description","w1","w2","toUpperCase","InfoSessionModel","MatDialog","_ref","time","ngOnInit","interval","ativo","close","Component","template","MatDialogRef","InfoThemeService","_overlay","_plataform","_session","setTheme","find","unificarTopbar","getContainerElement","classList","themeClassesToRemove","remove","removeAttribute","add","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","themesClassToRemove","themesClassToRemove_1","themesClassToRemove_1_1","themeToRemove","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","cssFile","type","rel","head","cssClient","InfoAlertComponent","onClose","selector","Input","InfoAutoCompleteComponent","_dataAcess","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","floor","valueChanges","debounceTime","distinctUntilChanged","options","filterValue","option","parameters","charAt","reduce","b","assign","onBlur","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","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","parent","apidownload","methoddownload","backurl","newurl","newlabel","editurl","viewurl","templateurl","paged","size","autorefresh","enabledcols","enablednew","enablededit","enableddelete","enabledview","enabledcancelsearch","enableddetail","enabledclassicons","enabledclickaccess","enabledclickevent","enabledexpand","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","colunasPadraoHeaders","colunasType","colunasWidth","colunasTranslate","colunasHtml","colunasItensExpandidos","currentUrl","chaveStorage","identificador","limitcharacters","parentIdUrlChange","parentIdUrlValue","_cols","setColumns","clearTimeout","callTimeout","snapshot","addClass","setPagebarTitle","formModel","formSearch","toArray","addControl","paginator","hideLoad","ngOnDestroy","colunasOcultas_1","dadosStorage","findIndex","Identificador","Colunas","Exibir","registro","html","column","header","dados","parts","headerInfo","setItensExpandidos","row","j","_b","navigate","openCustomModal","openModal","getSearch","getPaged","getAll","getByParentId","getDataReturn","Index","Size","dataInicial","dataFinal","dataInicio","dataFim","refreshPaginator","parentIdUrl","refresh","fillIcons","changePage","cancelSearch","search","detail","mostrarMais","linha","coluna","access","edit","view","observers","customizeTable","Chave","InfoGridModalComponent","icone","Tooltip","Principal","index_1","element","element_1","info","back","keydownEvents","detectChanges","arquivoId","Conteudo","Blob","msSaveOrOpenBlob","eventButton","ActivatedRoute","ChangeDetectorRef","InfoLastSearchModel","Renderer2","ElementRef","ContentChildren","NgModel","NgForm","colunas","colunasGrid","GridAtual","colunasGeral","novaColuna","save","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","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","toLocaleString","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","querySelector","addEventListener","editor","editorToolbar","saveSelection","SecurityContext","HTML","DomSanitizer","InfoMultiSelectComponent","selectedValues","InfoChipsComponent","separatorKeysCodes","ENTER","values","modelValues","InfoMainComponent","opened","version","enabledia","_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","cSession","UsuarioId","Login","Email","Perfil","Empresa","UltimoAcesso","Master","Clone","DataMovimentacao","OcultarNomeCliente","MFA","Versao","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","infoia","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 = 'tk';\r\n SessionKey: string = 'ss';\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\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\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, inner;\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 if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\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\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 } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\n\r\n@Injectable()\r\nexport class Utilities {\r\n 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 getGuidEmpty() : string {\r\n return '00000000-0000-0000-0000-000000000000';\r\n }\r\n\r\n 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 base64ToArrayBuffer(base64): any {\r\n var binaryString = window.atob(base64);\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 return bytes;\r\n }\r\n\r\n openOrDownload(title, blob) {\r\n let fileURL = URL.createObjectURL(blob);\r\n \r\n if (title.indexOf(\"pdf\") > -1)\r\n window.open(fileURL, title);\r\n else {\r\n let elementA: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;\r\n elementA.href = fileURL;\r\n elementA.download = title;\r\n document.body.appendChild(elementA);\r\n elementA.click(); \r\n document.body.removeChild(elementA);\r\n }\r\n }\r\n\r\n removerAcentos(val: string) : string {\r\n if (val == null)\r\n return '';\r\n var normalizeFunction = String.prototype.normalize ? (str) => str.normalize('NFD') : (str) => str;\r\n return normalizeFunction(val).replace(/[\\u0300-\\u036f]/g, \"\")\r\n }\r\n\r\n getFormatos(): any[] {\r\n return [ { Id: \"EXCEL\", Nome: \"Excel\", MimeType: \"application/vnd.ms-excel\", Extensao: \"xls\" },\r\n { Id: \"PDF\", Nome: \"PDF\", MimeType: \"application/pdf\", Extensao: \"pdf\" } ];\r\n }\r\n\r\n getFormatosExcel(): any[] {\r\n return [ { Id: 'PP', Nome: 'Excel Português com Separador Decimal [.]' },\r\n { Id: 'PV', Nome: 'Excel Português com Separador Decimal [,]' },\r\n { Id: 'IP', Nome: 'Excel Inglês com Separador Decimal [.]' },\r\n { Id: 'IV', Nome: 'Excel Inglês com Separador Decimal [,]' } ];\r\n }\r\n\r\n getStatus(): any[] {\r\n return [ { Id: \"A\", Nome: \"Ativo\" },\r\n { Id: \"P\", Nome: \"Pendente\" } ];\r\n }\r\n\r\n getStatusCompleto(): any[] {\r\n return [ { Id: \"C\", Nome: \"Cadastrado\", Selecionado: true },\r\n { Id: \"F\", Nome: \"Feito\", Selecionado: false },\r\n { Id: \"O\", Nome: \"Conferido\", Selecionado: true },\r\n { Id: \"R\", Nome: \"Rejeitado\", Selecionado: false },\r\n { Id: \"I\", Nome: \"Inativo\", Selecionado: false } ];\r\n }\r\n\r\n getStatusProcessamento(): any[] {\r\n return [ { Id: \"A\", Nome: \"AguardandoProcessamento\" },\r\n { Id: \"E\", Nome: \"EmProcessamento\" },\r\n { Id: \"P\", Nome: \"Processado\" },\r\n { Id: \"I\", Nome: \"Inativo\" },\r\n { Id: \"Z\", Nome: \"Erro\" } ];\r\n }\r\n\r\n getFormatoIdiomas(): any[] {\r\n return [ { Id: \"en\", Nome: \"English\" },\r\n { Id: \"pt-BR\", Nome: \"Português\" } ];\r\n }\r\n\r\n getGeneros(): any[] {\r\n return [ { Id: 'M', Nome: 'Masculino' },\r\n { Id: 'F', Nome: 'Feminino' } ];\r\n }\r\n\r\n getTiposEvidencia(): any[] {\r\n return [ { Id: 1, Nome: 'Telefone'},\r\n { Id: 2, Nome: 'Email'},\r\n {Id: 3, Nome: 'Documento'} ];\r\n }\r\n\r\n getOrdens(): any[] {\r\n return [ {Id: \"nome-asc\", Nome: \"NomeCrescente\"},\r\n {Id: \"nome-desc\", Nome: \"NomeDecrescente\"},\r\n {Id: \"valor-asc\", Nome: \"ValorCrescente\"},\r\n {Id: \"valor-desc\", Nome: \"ValorDecrescente\"} ];\r\n }\r\n\r\n validarEmail(form, value, control) {\r\n if (!value)\r\n return;\r\n \r\n let pattern = /^([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5})$/;\r\n let emails: string[] = value.split(';');\r\n let invalido = emails.some(email => email && !pattern.test(email.trim()));\r\n\r\n if (invalido)\r\n form.form.controls[control].setErrors( { 'invalid': true } );\r\n }\r\n\r\n setLocalStorage(key: string, value: any) {\r\n localStorage.setItem(key, this.criptografar(value));\r\n }\r\n\r\n getLocalStorage(key: string): any {\r\n var data = this.descriptografar(localStorage.getItem(key));\r\n if (data == null || data == '') return null;\r\n return data;\r\n }\r\n\r\n isIE() {\r\n var userAgent = navigator.userAgent;\r\n return userAgent.indexOf(\"MSIE \") > -1 || userAgent.indexOf(\"Trident/\") > -1;\r\n }\r\n\r\n retornaTexto(texto) {\r\n var div = document.createElement(\"div\")\r\n div.innerHTML = texto;\r\n return div.innerText || div.textContent;\r\n }\r\n\r\n criptografar(texto) {\r\n try {\r\n return CryptoJS.AES.encrypt(texto, \"GKxLtQg2at\").toString();\r\n } catch (e) {\r\n return null;\r\n }\r\n }\r\n \r\n descriptografar(texto) {\r\n try {\r\n return CryptoJS.AES.decrypt(texto, \"GKxLtQg2at\").toString(CryptoJS.enc.Utf8);\r\n } catch (e) {\r\n return null;\r\n }\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\nimport { Utilities } from '../utils/utilities';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoDataService {\r\n\r\n private token: string;\r\n\r\n constructor(@Inject(APICONTROLLER_CONFIG) private _apiController: any, \r\n private _http: HttpClient, \r\n private _router: Router, \r\n private _plataforma: InfoPlatformModel, \r\n private _utilities: Utilities) { }\r\n\r\n public getToken(): string {\r\n this.token = this._utilities.getLocalStorage(this._plataforma.TokenKey);\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\nimport { Title } from '@angular/platform-browser';\r\nimport { InfoTranslateService } from '../service/translate.service';\r\nimport { Utilities } from '../utils/utilities';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoAuthenticationService implements CanActivate {\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 private _utilities: Utilities, \r\n private _translate: InfoTranslateService, \r\n private _title: Title) { }\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 (this._utilities.getLocalStorage(this._plataforma.TokenKey) != 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 this._utilities.setLocalStorage(this._plataforma.TokenKey, 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 this._utilities.setLocalStorage(this._plataforma.TokenKey, 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 this._utilities.setLocalStorage(this._plataforma.TokenKey, 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 if (this.isLogged()) {\r\n this._http.post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/Logout', null, { headers: this._dataService.getHeaderToken() })\r\n .subscribe(() => {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); }); \r\n });\r\n }\r\n else {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); }); \r\n }\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 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 this._utilities.setLocalStorage(this._plataforma.SessionKey, JSON.stringify(this._sessao));\r\n }\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 }\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') && !key.includes('cols')) \r\n 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 let parametrosUrl: string[] = url.split('/').slice(2);\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 let subTitulo = \"\";\r\n for (var i = 0; i < parametrosUrl.length; i++) {\r\n if (!this.isGuid(parametrosUrl[i]) && isNaN(parseFloat(parametrosUrl[i])))\r\n subTitulo += \" - \" + this._translate.translate(this.toPascalCase(parametrosUrl[i]));\r\n }\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 this._title.setTitle(\"Plataforma - \" + this._translate.translate(item[0].Title) + subTitulo);\r\n }\r\n\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 private toPascalCase(value: string): string{\r\n return value.replace(/(^\\w|-\\w)/g, (w1, w2, i) => i == 0 ? w1.toUpperCase() : w1[1].toUpperCase());\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\r\n document.body.removeAttribute('class');\r\n\r\n if(!this._plataform.ModoPrime){\r\n document.body.classList.add(theme);\r\n _overlay.add(theme);\r\n }\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 let _overlay = this._overlay.getContainerElement().classList;\r\n let themesClassToRemove = Array.from(_overlay).filter(item => item.includes('-theme'));\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 if (themesClassToRemove && themesClassToRemove.length > 0) {\r\n for (let themeToRemove of themesClassToRemove) {\r\n _overlay.remove(themeToRemove);\r\n document.body.classList.remove(themeToRemove);\r\n }\r\n }\r\n }\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, Inject } 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 { MAT_DIALOG_DATA, MatDialog, MatDialogRef } 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() enabledcols = true;\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 @Input() enabledexpand = 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 colunasPadraoHeaders = [];\r\n colunasType = [];\r\n colunasWidth = [];\r\n colunasTranslate = [];\r\n colunasHtml = [];\r\n colunasItensExpandidos = [];\r\n currentUrl: string = null;\r\n url: string = null;\r\n chaveStorage: string = 'cols';\r\n identificador: string = null;\r\n limitcharacters: number = 250;\r\n callTimeout: any;\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 clearTimeout(this.callTimeout);\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.identificador = this.api + '_' + this.method;\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 }\r\n\r\n ngOnDestroy() {\r\n clearTimeout(this.callTimeout);\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\r\n let colunasOcultas = [];\r\n if (localStorage.getItem(this.chaveStorage) != null){\r\n let dadosStorage = JSON.parse(localStorage.getItem(this.chaveStorage));\r\n\r\n if (dadosStorage.findIndex(c => c.Identificador == this.identificador) > -1){\r\n colunasOcultas = dadosStorage.find(c => c.Identificador == this.identificador).Colunas;\r\n\r\n if (colunasOcultas.length > 0)\r\n colunasOcultas = colunasOcultas.filter(c => !c.Exibir).map(c => c.Nome);\r\n }\r\n }\r\n\r\n this.colunasItens = [];\r\n this.colunasHeaders = [];\r\n this.colunasPadraoHeaders = [];\r\n this.colunasType = [];\r\n this.colunasWidth = [];\r\n this.colunasTranslate = [];\r\n this.colunasHtml = [];\r\n \r\n this.cols.split(',').forEach(registro => {\r\n\r\n let translate: boolean = registro.indexOf('#') == -1;\r\n let html: boolean = registro.indexOf('@') == -1;\r\n registro = registro.replace(/#/g, '').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 if (colunasOcultas.indexOf(header) < 0) {\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 this.colunasHtml.push(html);\r\n }\r\n\r\n this.colunasPadraoHeaders.push(header);\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 setItensExpandidos() {\r\n this.colunasItensExpandidos = [];\r\n for (let i = 0; i < this.data?.length; i++) {\r\n let row = [];\r\n for (let j = 0; j < this.colunasItens?.length; j++) {\r\n row.push(false);\r\n }\r\n this.colunasItensExpandidos.push(row);\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 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 clearTimeout(this.callTimeout);\r\n this.callTimeout = setTimeout(() => { this.getData(); }, this.autorefresh * 1000);\r\n }\r\n \r\n this.fillIcons();\r\n this.setItensExpandidos();\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 mostrarMais(linha, coluna) {\r\n this.colunasItensExpandidos[linha][coluna] = !this.colunasItensExpandidos[linha][coluna] \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 customizeTable(){\r\n this._prop.set(InfoPageAction.Edit, { \r\n Identificador: this.identificador, \r\n Colunas: this.colunasPadraoHeaders, \r\n Chave: this.chaveStorage \r\n });\r\n\r\n this._prop.modalAction = InfoModalAction.None;\r\n let ref = this.modal.open(InfoGridModalComponent, {\r\n data: this._prop,\r\n disableClose: true,\r\n width: '500px'\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.setColumns();\r\n this.getData();\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 this._prop.modalAction = InfoModalAction.None;\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}\r\n\r\n@Component({\r\n templateUrl: 'grid.modal.html',\r\n providers: [InfoFormPropModel]\r\n})\r\nexport class InfoGridModalComponent {\r\n\r\n identificador: string;\r\n chaveStorage: string;\r\n colunas: any = [];\r\n dadosStorage: any = null;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public _prop: InfoFormPropModel, private _ref: MatDialogRef<InfoGridModalComponent>, private _modal: MatDialog){\r\n }\r\n\r\n ngOnInit(){\r\n this.identificador = this._prop.data.Identificador;\r\n this.chaveStorage = this._prop.data.Chave;\r\n\r\n let colunasGrid = this._prop.data.Colunas.map(c => { return { Nome: c, Exibir: true, GridAtual: true }; });\r\n\r\n if (localStorage.getItem(this.chaveStorage) == null)\r\n localStorage.setItem(this.chaveStorage, JSON.stringify([]));\r\n\r\n this.dadosStorage = JSON.parse(localStorage.getItem(this.chaveStorage));\r\n\r\n if (this.dadosStorage.findIndex(c => c.Identificador == this.identificador) < 0)\r\n this.dadosStorage.push({ Identificador: this.identificador, Colunas: colunasGrid });\r\n\r\n let colunasGeral = this.dadosStorage.find(c => c.Identificador == this.identificador).Colunas;\r\n \r\n //Adiciona possíveis novas colunas\r\n colunasGrid.filter(g => colunasGeral.map(c => c.Nome).indexOf(g.Nome) < 0).forEach(novaColuna => {\r\n colunasGeral.push(novaColuna);\r\n });\r\n\r\n //Exibe apenas as colunas presentes no grid atual\r\n this.colunas = colunasGeral.map(c => ({ ...c, GridAtual: colunasGrid.findIndex(g => g.Nome == c.Nome) > -1 }));\r\n }\r\n\r\n save(){\r\n this.dadosStorage.find(c => c.Identificador == this.identificador).Colunas = this.colunas;\r\n localStorage.setItem(this.chaveStorage, JSON.stringify(this.dadosStorage));\r\n \r\n this._prop.modalAction = InfoModalAction.Save;\r\n this._ref.close(this._prop);\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.toLocaleString('pt-BR') + ' - ' + currentEnd.toLocaleString('pt-BR') + ' de ' + this.total.toLocaleString('pt-BR');\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\nimport { Utilities } from \"../../utils/utilities\";\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 @Input() enabledia: boolean = false;\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 private _utilities: Utilities) { }\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._platform.Themes = this.themes;\r\n this._platform.ShortcutApi = this.shortcutapi;\r\n\r\n if (this._utilities.getLocalStorage(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 var cSession = this._utilities.getLocalStorage(this._platform.SessionKey);\r\n if (cSession != null)\r\n Object.assign(this._session, JSON.parse(cSession));\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\nimport { Utilities } from '../../utils/utilities';\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 @Input() enabledia: 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 infoia: 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, \r\n private _dataService: InfoDataService, \r\n private _themeService: InfoThemeService, \r\n private _router: Router, private _dialog: InfoDialogModal, \r\n public _session: InfoSessionModel, \r\n public _platform: InfoPlatformModel, \r\n private _modal: MatDialog,\r\n private _renderer: Renderer2, \r\n private _element: ElementRef, \r\n private _utilities: Utilities) { }\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 this._utilities.setLocalStorage(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 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.infoia = achtiveMenu == 'infoia';\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.infoia = 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\nimport { Utilities } from './utils/utilities';\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, InfoGridModalComponent } 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\tInfoGridModalComponent,\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\tInfoGridModalComponent,\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 providers: [\r\n Utilities\r\n\t]\r\n})\r\nexport class InfoLibraryModule { }"]}