info-library 2.10.71 → 2.10.72
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/info-library.umd.js +7 -144
- package/bundles/info-library.umd.js.map +1 -1
- package/bundles/info-library.umd.min.js +1 -1
- package/bundles/info-library.umd.min.js.map +1 -1
- package/esm2015/controls/grid/grid.component.js +1 -1
- package/esm2015/controls/paginator/paginator.component.js +2 -2
- package/esm2015/layouts/main/main.component.js +1 -1
- package/fesm2015/info-library.js +3 -3
- package/fesm2015/info-library.js.map +1 -1
- package/info-library.metadata.json +1 -1
- 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/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","InfoDataService","_apiController","_http","_router","getToken","token","navigateByUrl","getHeaderToken","HttpHeaders","getAPIUrl","controller","toString","replace","toLowerCase","getNoToken","param","_this","get","pipe","r","InfoDataAccessModel","catchError","errorHandling","headers","getById","id","postNoToken","post","delete","undefined","alert","deleteByModel","httpOptions","request","formData","FormData","append","redirect","status","document","location","href","of","HttpClient","Router","InfoAuthenticationService","_sessao","_dataService","_modal","_keySessao","_sessionActive","getSessao","getPlatform","canActivate","activatedRouteSnapshot","routerStateSnapshot","isLogged","logout","setTimeout","refreshSessionTime","definePaginaAtiva","getPermission","hasPermission","indexOf","paramMap","error","switchMap","res","permissao","params","RegExp","p","toPromise","_a","clearInterval","_sessionTimeInterval","TempoInatividade","tempoSessao","Date","valueOf","setInterval","tempoRestante","Math","round","parseInt","isNaN","showMessage","open","RefreshSessionTimeModalComponent","disableClose","afterClosed","subscribe","login","usuario","senha","reCaptchaToken","codigo2FA","removeSessao","Usuario","Senha","ReCaptchaToken","Codigo2FA","Token","InfoLoginModel","trocarEmpresa","empresaId","EmpresaId","clonar","reload","getPermissions","logAtividade","setTrocaSenha","setRecuperarSenha","setResetarSenha","getLoginResources","keyFunction","urlGenerica","getUrlGenerica","some","URL","ChaveFuncionalidade","Acesso","validaSessao","ret","Observable","observer","complete","forEach","item","filter","JSON","stringify","keys","includes","aux","substring","split","tituloMenu","PaginaAtiva","Icone","Titulo","Title","Icon","retorno","urlParts","parseFloat","isGuid","error_description","match","InfoSessionModel","MatDialog","_ref","time","ngOnInit","interval","ativo","close","Component","template","MatDialogRef","InfoThemeService","_overlay","_plataform","_session","setTheme","find","unificarTopbar","getContainerElement","classList","themeClassesToRemove","remove","removeAttribute","add","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","themesClassToRemove","themesClassToRemove_1","themesClassToRemove_1_1","themeToRemove","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","cssFile","createElement","type","rel","head","appendChild","cssClient","InfoAlertComponent","onClose","selector","Input","InfoAutoCompleteComponent","_dataAcess","control","FormControl","placeholder","required","selectfirst","disablednoregisters","getdataonchange","getdataonchangetime","maxlist","startwith","minchar","onselecteditem","EventEmitter","selectedValue","initialized","_loading","_params","_disabled","_data","setDisabledState","loading","getData","a","disable","enable","writeValue","Id","floor","random","valueChanges","debounceTime","distinctUntilChanged","options","filterValue","Nome","option","slice","parameters","charAt","toUpperCase","reduce","b","assign","onBlur","trim","first","onFocus","setValue","displayFn","indexSmall","obj","onChange","emit","registerOnChange","fn","registerOnTouched","onTouched","isDisabled","disabled","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","Output","InfoBigCheckboxComponent","preload","enabledcheckall","labelselectall","labelsearch","max","submessage","_paramsmodel","paramsmodel","loadByParamModel","load","paramModel","getModel","getFilteredData","d","existData","Descricao","Selecionado","selectAll","removeItems","splice","InfoCardComponent","onclick","onCardClick","InfoMenuCardComponent","menu","cols","loadinit","menuRows","col","colClass","permission","numberItensRow","ceil","InfoCheckboxComponent","min","checkboxValue","true","false","onChangeValue","customType","Number","modelValue","PT_BR_DATE_FORMATS","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","InfoDateComponent","minDate","maxDate","datefilter","dateclass","ngAfterViewInit","placeholderChar","createAutoCorrectedDatePipe","modelClean","keepCharPositions","dateMask","createTextMaskInputElement","inputElement","input","nativeElement","onInputDate","update","dateValue","moment","isBefore","isAfter","setMinutes","getMinutes","getTimezoneOffset","getFullYear","getMonth","getDate","onKeyPress","keyCode","MAT_DATE_LOCALE","useValue","DateAdapter","useClass","MomentDateAdapter","deps","MAT_DATE_FORMATS","MAT_MOMENT_DATE_ADAPTER_OPTIONS","useUtc","ViewChild","static","PT_BR_DATE_MONTH_FORMATS","InfoDateMonthComponent","changeonlyonmonth","chosenYearHandler","year","chosenMonthHandler","datepicker","month","InfoDialogModal","dialog","InfoDialogModel","InfoDialogComponent","YesOrNo","Confirm","Custom","Processing","ref","onclickCancel","InfoDialogResult","onclickOk","onclickAux","decorators","MAT_DIALOG_DATA","InfoGridComponent","_dialog","_platform","_prop","_dataAccessService","_activatedRoute","_authenticationService","_changeDetectorRef","_lastSearch","_renderer","_element","pagetitle","prefixtitle","pagebarbuttons","fullarea","form","parent","apidownload","methoddownload","backurl","newurl","newlabel","editurl","viewurl","templateurl","paged","size","autorefresh","enablednew","enablededit","enableddelete","enabledview","enabledcancelsearch","enableddetail","enabledclassicons","enabledclickaccess","enabledclickevent","searchopened","searchonlyonebutton","disablesearchlast","statictitle","disabledcol","accessicon","loadoninit","searchmodel","onbeforesearch","onloadcomplete","onclosemodal","onnew","onedit","onview","ondelete","customdelete","dynamiccols","buttons","searchbuttons","showmessageerror","defaultnewobject","resultTitle","searchModelReset","showPagebar","hasPermissionNew","hasPermissionEdit","hasPermissionDelete","tableHeight","pagebarTitle","icons","colunasItens","colunasHeaders","colunasType","colunasWidth","colunasTranslate","currentUrl","parentIdUrlChange","parentIdUrlValue","_cols","setColumns","snapshot","addClass","setPagebarTitle","formModel","formSearch","toArray","addControl","paginator","hideLoad","registro","column","header","dados","parts","headerInfo","navigate","openCustomModal","openModal","getSearch","getPaged","getAll","getByParentId","getDataReturn","Index","Size","dataInicial","dataFinal","dataInicio","dataFim","refreshPaginator","parentIdUrl","refresh","fillIcons","changePage","cancelSearch","search","detail","access","edit","view","observers","icone","Tooltip","Principal","index_1","element","element_1","info","back","keydownEvents","detectChanges","download","arquivoId","binaryString","window","atob","Conteudo","binaryLen","bytes","Uint8Array","ascii","charCodeAt","blob","Blob","navigator","msSaveOrOpenBlob","fileURL","createObjectURL","elementA","click","removeChild","eventButton","ActivatedRoute","ChangeDetectorRef","InfoLastSearchModel","Renderer2","ElementRef","ContentChildren","NgModel","NgForm","InfoInputComponent","rows","tabindex","iconPrefix","iconSuffix","onblur","maskOptions","align","allowNegative","decimal","precision","prefix","suffix","thousands","customMask","passwordMode","methodIsmask","toLocaleLowerCase","ismask","startsWith","InfoInputListComponent","percent","hiddenDe","novoValor","De","Ate","Valor","Excluir","ngOnChanges","ordernar","remover","findIndex","sort","InfoListCheckboxComponent","filterlabel","selectedlabel","onelist","filterList","filterSelected","disabledValue","valor","selecionados","todos","marcarFiltrados","marcar","ids","marcarTodos","InfoMessageComponent","color","outline","event","preventDefault","InfoPaginatorComponent","show","change","_total","indexActive","numberPages","pages","totalDescription","x","setDescription","goto","previous","currentInit","currentEnd","InfoSelectComponent","_dataAcessService","blank","blankItem","notranslate","translatValue","InfoTimelineComponent","showdate","alignLeft","alignCenter","alignRight","alignBetween","host","[class.timeline]","[class.show-date]","HostBinding","InfoEditorComponent","_sanitizer","enabledhtmlmode","sanitize","focused","editorConfig","editable","spellcheck","height","minHeight","maxHeight","minWidth","enableToolbar","showToolbar","defaultParagraphSeparator","toolbarPosition","fonts","class","getGuid","querySelector","addEventListener","editor","editorToolbar","saveSelection","SecurityContext","HTML","DomSanitizer","InfoMultiSelectComponent","selectedValues","InfoChipsComponent","separatorKeysCodes","ENTER","values","modelValues","InfoMainComponent","opened","version","_themes","languages","profileurl","loginurl","menuapi","menumethod","activemenubyurl","loggeduserapi","loggedusermethod","notificationapi","notificationgetmethod","notificationpostmethod","notificationverifymethod","notificationverifyenabled","fastsearchform","fastsearchformwidth","fastsearchtitle","setthemeonchangecompany","shortcutapi","ongetnotification","onverifynotification","themes","getLoggedUser","onChangeTopBarState","onChangeSideBarState","topbar","openSidebar","UsuarioId","Login","Email","Perfil","Empresa","UltimoAcesso","Master","Clone","DataMovimentacao","OcultarNomeCliente","MFA","Versao","Chave","onGetNotificationsTopBar","onVerifyNotificationsTopBar","InfoSidebarComponent","_authentication","onchangestate","openSubmenu","menuAtivo","monitorarUrl","toggle","menuItem","Enabled","Active","resetLastSearch","ativarMenu","events","NavigationStart","itemMenu","Routing","toggleSubmenu","changeSidebar","toggleSidebar","InfoTopbarComponent","_translateService","modalRef","prodution","notifications","InfoNotificationModel","empresa","tema","idioma","notificacao","calendario","getNotifications","setCompany","company","setAttribute","removeItem","err","setLanguage","language","toggleMode","openFastSearch","achtiveMenu","verifyNotifications","VerifyCount","setNotificationStatus","read","Leitura","Exclusao","InfoTopMenuComponent","enabled","mode","InfoModalComponent","prop","modaltitle","showcloseicon","loadingblock","labelclose","labelcancel","labelsubmit","onsave","onsuccess","updateSize","ctrlKey","valid","submit","InfoPagebarComponent","margintop","transparent","atalhoId","podeCriarAtalho","exibirAcessos","GuardsCheckStart","NavigationEnd","getAtalho","_pageTitle","goBack","toggleAtalho","openModalAtalho","Url","AtalhoModalComponent","InfoMaskDirective","renderer","_onTouched","_onChange","changes","setupMask","maskInputElement","normalizedValue","setProperty","onInput","lastValue","tagName","getElementsByTagName","maskType","emailMask","maskConfig","Directive","(input)","(blur)","InfoUnmaskDirective","elementRef","inputChange","newValue","NgControl","HostListener","NgModule","imports","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","MatCardModule","MatIconModule","MatInputModule","MatFormFieldModule","MatListModule","MatSelectModule","MatCheckboxModule","MatRadioModule","MatButtonModule","MatDatepickerModule","MatMomentDateModule","MatDialogModule","MatProgressBarModule","MatAutocompleteModule","MatTooltipModule","RouterModule","CurrencyMaskModule","AngularEditorModule","MatChipsModule","declarations","InfoLoadingComponent","exports","schemas","CUSTOM_ELEMENTS_SCHEMA","entryComponents"],"mappings":"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AYl2B,KAAA,CAAC,mBC8JlB,kCA1GCm2B,EAAAA,SAAQn2B,KAAA,CAAC,CACTo2B,QAAS,CACRC,EAAAA,aACAC,EAAAA,iBACAC,EAAAA,YACAC,EAAAA,oBACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,eACAC,EAAAA,mBACAC,EAAAA,cACAC,EAAAA,gBACAC,EAAAA,kBACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,oBACAC,EAAAA,oBACAC,EAAAA,gBACAC,EAAAA,qBACAC,EAAAA,sBACAC,EAAAA,iBACAC,EAAAA,aACAC,EAAAA,mBACAC,EAAAA,oBACAC,EAAAA,gBAEDC,aAAc,CACbz3B,GACAM,GAEAi0B,GACAmB,GAEAzlB,GACAI,GACAoE,GACAqB,GACAG,GACAU,GACAgB,GACAyC,GACAsB,GACA6J,GACAoB,GACAa,GACAc,GACAK,GACAc,GACAM,GACAU,GACA2B,GACAE,GAEAxR,GACA4c,GACA/K,GACA+F,GACAc,GACAhE,GACAmB,GACA4B,GACA+B,GACAjrB,IAEDsuB,QAAS,CACR33B,GACAM,GAEA2P,GACAI,GACAoE,GACAqB,GACAG,GACAU,GACAgB,GACAyC,GACAsB,GACA6J,GACAoB,GACAa,GACAc,GACAK,GACAc,GACAM,GACAU,GACA2B,GACAE,GAEAxR,GACA4c,GACA/K,GACA+F,GACAc,GACAhE,GACAmB,GACA4B,IAEDqF,QAAS,CACRC,EAAAA,wBAEDC,gBAAiB,CAChBhd,GACAwZ,GACAjrB","sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const DICTIONARIES_CONFIG = new InjectionToken<any>('DICTIONARIES_CONFIG');\r\nexport const APICONTROLLER_CONFIG = new InjectionToken<any>('APICONTROLLER_CONFIG');","export class InfoAppConfigModel {\r\n production: boolean = false;\r\n webapiUrl: string = '';\r\n processingUrl: string = '';\r\n theme: string = '';\r\n dictionary: string = '';\r\n ux: Number = 2;\r\n style: string = '';\r\n topMenu: boolean = false;\r\n enabledPrime: boolean = false;\r\n}","export class InfoDataAccessModel {\r\n \r\n success: boolean;\r\n messages: string[] = [];\r\n name: string = null;\r\n description: string = null;\r\n data: any;\r\n total: number = 0;\r\n parentId: number = null;\r\n referenceGuid: string = null;\r\n external = false;\r\n\r\n constructor(data: any, success?: boolean, messages?: string[]) {\r\n\r\n if (data != null) {\r\n if (data.Name != null && data.Name != \"\")\r\n this.name = data.Name\r\n\r\n if (data.Description != null && data.Description != \"\")\r\n this.description = data.Description;\r\n\r\n if (data.Total != null)\r\n this.total = data.Total;\r\n \r\n if (data.Success != null)\r\n success = data.Success;\r\n\r\n if (data.Messages)\r\n messages = data.Messages;\r\n\r\n if (data.ParentId != null)\r\n this.parentId = data.ParentId;\r\n\r\n if (data.ReferenceGuid != null)\r\n this.referenceGuid = data.ReferenceGuid;\r\n \r\n if (data.External != null)\r\n this.external = data.External;\r\n\r\n this.data = data.Data;\r\n }\r\n \r\n this.success = success == null ? true : success;\r\n this.messages = messages;\r\n\r\n if (this.messages == null || this.messages == [])\r\n this.messages = new Array();\r\n }\r\n}","import { InfoDialogButtons } from \"../enum/dialog-buttons.enum\";\r\n\r\nexport class InfoDialogResult {\r\n data?: any = null;\r\n button: InfoDialogButtons;\r\n\r\n constructor(button: InfoDialogButtons);\r\n constructor(button: InfoDialogButtons, data?: any) {\r\n this.button = button;\r\n this.data = data;\r\n }\r\n}","export class InfoDialogModel {\r\n\r\n yesOrNo: boolean = false\r\n title: string\r\n message: string = ''\r\n width: number = 450;\r\n\r\n labelOk: string = 'Ok'\r\n labelCancel: string = 'Cancelar'\r\n labelAux: string = null\r\n\r\n colorOk: string = ''\r\n colorCancel: string = ''\r\n colorAux: string = ''\r\n\r\n processingMode: boolean = false;\r\n\r\n disableButtonCancel: boolean = false;\r\n}","export enum InfoPageAction {\r\n None = -1,\r\n\r\n View = 0,\r\n New = 1,\r\n Edit = 2,\r\n Delete = 3,\r\n Search = 4,\r\n}","export enum InfoModalAction {\r\n None,\r\n Ok,\r\n Yes,\r\n No,\r\n Cancel,\r\n Save,\r\n Special,\r\n Aux\r\n}","import { InfoPageAction } from \"../enum/page-action.enum\";\r\nimport { InfoModalAction } from \"../enum/modal-action.enum\";\r\n\r\nexport class InfoFormPropModel {\r\n\r\n title: string;\r\n readonly: boolean;\r\n data: any;\r\n pageAction: InfoPageAction;\r\n modalAction: InfoModalAction = InfoModalAction.None;\r\n modalComponent: any = null;\r\n api: any = null;\r\n\r\n set(pageAction: InfoPageAction, data: any) {\r\n\r\n this.data = data;\r\n this.readonly = pageAction == InfoPageAction.View;\r\n this.pageAction = pageAction;\r\n\r\n switch (pageAction) {\r\n\r\n case InfoPageAction.New:\r\n this.title = 'Novo';\r\n break;\r\n\r\n case InfoPageAction.Search:\r\n this.title = 'Pesquisar';\r\n break;\r\n\r\n case InfoPageAction.View:\r\n this.title = 'Visualizar';\r\n break;\r\n\r\n case InfoPageAction.Edit:\r\n this.title = 'Editar';\r\n break;\r\n\r\n case InfoPageAction.Delete:\r\n this.title = 'Remover';\r\n break;\r\n\r\n default:\r\n this.title = '';\r\n break;\r\n }\r\n }\r\n}","export class InfoGridButtonModel {\r\n \r\n label: string;\r\n passId: boolean;\r\n icon: string;\r\n navigateTo: string;\r\n modalComponent: any = null;\r\n widthModalComponent: Number = 500;\r\n api: any = null;\r\n method: string = null;\r\n showOnlyClass: string = null;\r\n disabledField: string = null;\r\n confirm: boolean;\r\n\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string, confirm: boolean);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function = null, widthModalComponent: Number = null, api: any = null, method: string = null, disabledField: string = null, confirm: boolean = true) {\r\n this.label = label;\r\n this.passId = passId;\r\n this.icon = icon;\r\n this.navigateTo = navigateTo;\r\n \r\n this.modalComponent = modalComponent;\r\n this.widthModalComponent = widthModalComponent;\r\n\r\n this.api = api;\r\n this.method = method;\r\n this.disabledField = disabledField;\r\n this.confirm = confirm;\r\n }\r\n}","export class InfoMethodGridButtonModel {\r\n \r\n label: string;\r\n icon: string;\r\n method: () => any = null;\r\n\r\n constructor(label: string, icon: string, method: () => any)\r\n {\r\n this.label = label;\r\n this.icon = icon;\r\n this.method = method;\r\n }\r\n}","export class InfoLastSearchModel {\r\n url: string = '';\r\n model: any = null;\r\n index: number = 0;\r\n enabledSearch: boolean = false;\r\n}","export class InfoLoginModel {\r\n\r\n success: boolean = false;\r\n messages: string;\r\n data: any;\r\n\r\n constructor(success: boolean, messages: string, data?: any) {\r\n this.success = success;\r\n this.messages = messages;\r\n this.data = data;\r\n }\r\n}","export class InfoPagebarButtonModel {\r\n label: string = '';\r\n url: string = '';\r\n icon: string = '';\r\n modal: any = null;\r\n modalwidth: number = 700;\r\n\r\n constructor(label: string, url: string);\r\n constructor(label: string, url: string, icon: string);\r\n constructor(label: string, url: string, icon: string, modal: any, modalwidth: number);\r\n constructor(label: string, url: string, icon: string = 'chevron_right', modal: any = null, modalwidth: number = 700){\r\n this.label = label;\r\n this.url = url;\r\n this.icon = icon;\r\n this.modal = modal;\r\n this.modalwidth = modalwidth;\r\n }\r\n}","export class InfoPermissionModel {\r\n Acesso: boolean;\r\n URL: string;\r\n ChaveFuncionalidade: string;\r\n}","import { InfoAppConfigModel } from \"./app-config.model\";\r\n\r\nexport class InfoPlatformModel {\r\n\r\n TokenKey: string = 'token';\r\n SessionKey: string = 'sessao';\r\n \r\n ConfigIsNull: boolean = true;\r\n Themes: any = [];\r\n Config: InfoAppConfigModel = new InfoAppConfigModel();\r\n\r\n PaginaAtiva: any;\r\n UnificarTopbar: boolean = true;\r\n MenuMin: boolean = false;\r\n ModoPrime: boolean = false;\r\n PaginaLimpa: boolean = false;\r\n\r\n Menu: any = [];\r\n\r\n ShortcutApi: any = null;\r\n\r\n public setConfig(config: InfoAppConfigModel) {\r\n this.Config = config;\r\n this.ConfigIsNull = false;\r\n }\r\n}","import { InfoPermissionModel } from \"./permission.model\";\r\n\r\nexport class InfoSessionModel {\r\n UsuarioId: number;\r\n Usuario: string;\r\n Login: string;\r\n Email: string;\r\n Perfil: string;\r\n EmpresaId: number;\r\n TemaId: number;\r\n Empresa: string;\r\n UltimoAcesso: Date;\r\n Master: boolean;\r\n Versao: string;\r\n Clone: boolean;\r\n DataMovimentacao: Date;\r\n OcultarNomeCliente: boolean;\r\n Permissoes: InfoPermissionModel[] = [];\r\n Empresas: any[] = [];\r\n Parametros: any[] = null;\r\n MFA: boolean;\r\n TempoInatividade: number;\r\n}","export class InfoNotificationModel {\r\n Count: number = 0;\r\n Itens: InfoNotificationItemModel[] = [];\r\n}\r\n\r\nexport class InfoNotificationItemModel {\r\n Id: number;\r\n Icon: string;\r\n Description: string;\r\n Url: string;\r\n Date: string;\r\n Viewed: boolean;\r\n}","export enum InfoDialogButtons {\r\n Ok,\r\n Cancel,\r\n Yes,\r\n No,\r\n Aux\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { DICTIONARIES_CONFIG } from \"../global-config\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoTranslateService {\r\n private _currentLang: string;\r\n private _key: string = 'currentLang';\r\n\r\n public get currentLang() {\r\n return this._currentLang;\r\n }\r\n\r\n constructor(@Inject(DICTIONARIES_CONFIG) private _translations: any, private _plataforma: InfoPlatformModel) {\r\n \r\n let lang = localStorage.getItem(this._key);\r\n if (lang == null)\r\n this._currentLang = 'pt-br';\r\n else this._currentLang = lang;\r\n }\r\n\r\n public set(lang: string): void {\r\n this._currentLang = lang;\r\n localStorage.setItem(this._key, lang);\r\n }\r\n\r\n public translate(key: string): string {\r\n let translation = key;\r\n\r\n if (this._translations[this.currentLang] && this._translations[this.currentLang].Values && this._translations[this.currentLang].Values[key]) {\r\n translation = (this._translations[this.currentLang].Values[this._plataforma.Config.dictionary] || {})[key] || this._translations[this.currentLang].Values[key];\r\n if (typeof translation != 'string')\r\n translation = key;\r\n }\r\n\r\n return translation;\r\n }\r\n\r\n public getCalendar(): any {\r\n if (this._translations[this.currentLang] && this._translations[this.currentLang].Calendar) {\r\n return this._translations[this.currentLang].Calendar;\r\n }\r\n }\r\n\r\n public instant(key: string) {\r\n return this.translate(key);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { InfoTranslateService } from '../service/translate.service';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n pure: false\r\n})\r\nexport class InfoTranslatePipe implements PipeTransform {\r\n\r\n constructor(private _translate: InfoTranslateService) { }\r\n\r\n transform(value: string, args?: any): any {\r\n if (!value) \r\n return;\r\n\r\n if (args === false)\r\n return value;\r\n\r\n return this._translate.instant(value);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport emailMask from 'text-mask-addons/dist/emailMask';\r\nimport { conformToMask } from \"text-mask-core/dist/textMaskCore\";\r\n\r\n@Pipe({\r\n name: 'mask',\r\n pure: false\r\n})\r\nexport class InfoMaskPipe implements PipeTransform {\r\n\r\n constructor( ) { }\r\n\r\n transform(value: string, args?: any): any {\r\n if (!value) return;\r\n\r\n let mask = [];\r\n\r\n if (args == 'phone')\r\n mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]; \r\n else if (args == 'cel')\r\n mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n else if (args == 'cep')\r\n mask = [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/];\r\n else if (args == 'cpf')\r\n mask = [/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n else if (args == 'cnpj')\r\n mask = [/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'/',/\\d/,/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n else \r\n mask = Array.from(args).map(c => c == '0' ? /\\d/ : c);\r\n \r\n return conformToMask(value, mask, {guide: false}).conformedValue; \r\n }\r\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { InfoDataAccessModel } from '../model/data-access.model';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Observable, of, ObservableInput } from 'rxjs';\r\nimport { APICONTROLLER_CONFIG } from '../global-config';\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoDataService {\r\n\r\n private _key: string = 'token';\r\n private token: string;\r\n\r\n constructor(@Inject(APICONTROLLER_CONFIG) private _apiController: any, private _http: HttpClient, private _router: Router, private _plataforma: InfoPlatformModel) { }\r\n\r\n public getToken(): string {\r\n this.token = localStorage.getItem(this._key);\r\n\r\n if (this.token == null) {\r\n this._router.navigateByUrl('');\r\n return '';\r\n\r\n } else return 'Bearer ' + this.token;\r\n }\r\n\r\n public getHeaderToken(): HttpHeaders {\r\n return new HttpHeaders().set('Authorization', this.getToken());\r\n }\r\n\r\n public getAPIUrl(controller: any) {\r\n let api = '';\r\n\r\n\t\tif (typeof(controller) == 'number')\r\n\t\t\tapi = this._apiController[controller].toString();\r\n\r\n else api = controller == null ? '' : controller.toString();\r\n \r\n\t\treturn this._plataforma.Config.webapiUrl + (api.replace('_', '/') + '/').toLowerCase();\r\n }\r\n\r\n public getNoToken(controller: any): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))))\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public get(controller: any): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n \r\n return this._http\r\n .get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public getById(controller: any, id: number): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .get(this.getAPIUrl(controller) + id.toString(), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public postNoToken(controller: any, model: any): Observable<InfoDataAccessModel>;\r\n public postNoToken(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public postNoToken(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .post(this.getAPIUrl(controller) + method.toLowerCase(), model)\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public post(controller: any, model: any): Observable<InfoDataAccessModel>;\r\n public post(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public post(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .post(this.getAPIUrl(controller) + (method == null ? '' : method), model, { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e, false))\r\n );\r\n }\r\n\r\n public delete(controller: any, id: any): Observable<InfoDataAccessModel>\r\n public delete(controller: any, id: any, method?: string): Observable<InfoDataAccessModel>;\r\n public delete(controller: any, id: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n if (id == undefined || id == null)\r\n alert('Id não informado');\r\n\r\n return this._http\r\n .delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + \"?id=\" + id.toString(), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public deleteByModel(controller: any, model: any): Observable<InfoDataAccessModel>\r\n public deleteByModel(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public deleteByModel(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n let httpOptions = {\r\n headers: this.getHeaderToken(),\r\n body: model\r\n }\r\n\r\n return this._http\r\n .delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()), httpOptions)\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public request(controller: any, model: any[], method?: string): Observable<InfoDataAccessModel>\r\n public request(controller: any, model: any[], method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public request(controller: any, model: any[], method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n\r\n let formData = new FormData();\r\n for (let index = 0; index < model.length; index++)\r\n formData.append(model[index].name, model[index]);\r\n\r\n return this._http\r\n .request('POST', this.getAPIUrl(controller) + (method == null ? '' : method) + (param == null ? '' : ('?' + param)), { headers: this.getHeaderToken(), body: formData })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse, redirect: boolean = true): ObservableInput<InfoDataAccessModel> {\r\n if (e.status == 401) \r\n document.location.href = '/#/login';\r\n else if (redirect) \r\n document.location.href = '/#/500';\r\n\r\n let messages: string[] = new Array(e.message);\r\n return of(new InfoDataAccessModel(null, false, messages));\r\n }\r\n}","import { Component, Injectable } from '@angular/core';\r\nimport { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, ObservableInput, of } from 'rxjs';\r\nimport { map, catchError, switchMap } from 'rxjs/operators';\r\nimport { InfoSessionModel } from '../model/session.model';\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoLoginModel } from '../model/login.model';\r\nimport { InfoDataService } from '../service/data.service';\r\nimport { InfoFormPropModel } from '../model/form-prop.model';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoModalAction } from '../enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoAuthenticationService implements CanActivate {\r\n private _key: string = 'token';\r\n private _keySessao: string = 'sessao';\r\n private _sessionTimeInterval;\r\n private _sessionActive: boolean = true;\r\n\r\n constructor(private _router: Router, \r\n private _http: HttpClient, \r\n private _sessao: InfoSessionModel, \r\n private _plataforma: InfoPlatformModel,\r\n private _dataService: InfoDataService,\r\n private _modal: MatDialog) { }\r\n\r\n getSessao(): InfoSessionModel{\r\n return this._sessao;\r\n }\r\n\r\n getPlatform(): InfoPlatformModel {\r\n return this._plataforma;\r\n }\r\n\r\n canActivate(activatedRouteSnapshot: ActivatedRouteSnapshot, routerStateSnapshot: RouterStateSnapshot): Observable<boolean> | boolean {\r\n \r\n if (!this.isLogged() || !this._sessionActive) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n const url = activatedRouteSnapshot.data['URL'] || routerStateSnapshot.url;\r\n\r\n setTimeout(() => {\r\n this.refreshSessionTime(); \r\n }, 1000);\r\n\r\n this.definePaginaAtiva(url);\r\n\r\n return this.getPermission(url, true)\r\n .pipe(\r\n map(() => {\r\n if (url == '/')\r\n return true;\r\n\r\n if (!this.hasPermission(url))\r\n this._router.navigateByUrl('permission');\r\n\r\n if (url.indexOf('novo') > -1 && !this.hasPermission(url, 'new'))\r\n this._router.navigateByUrl('permission');\r\n\r\n if (url.indexOf('visualizar') < -1 && activatedRouteSnapshot.paramMap.get('id') != null && !this.hasPermission(url, 'edit'))\r\n this._router.navigateByUrl('permission');\r\n\r\n return true;\r\n }, \r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n })\r\n )).pipe(\r\n switchMap(async res => {\r\n const permissao = activatedRouteSnapshot.data['Permissao'];\r\n\r\n if (!permissao)\r\n return true;\r\n\r\n var params = (permissao[2] || '').replace(RegExp(/\\{(.*?)\\}/, 'g'), (_, p) => activatedRouteSnapshot.params[p]);\r\n\r\n var r = await this._dataService.get(permissao[0], permissao[1], params).toPromise();\r\n if (!r.success || r.data != true)\r\n this._router.navigateByUrl('permission');\r\n\r\n return true;\r\n })\r\n );\r\n }\r\n\r\n isLogged(): boolean {\r\n return (localStorage.getItem(this._key) != null);\r\n }\r\n\r\n\trefreshSessionTime() {\r\n if (!this._sessionActive)\r\n return;\r\n\r\n clearInterval(this._sessionTimeInterval);\r\n\r\n if (this._sessao.TempoInatividade == null || this._sessao.TempoInatividade <= 0)\r\n return;\r\n \r\n let tempoSessao = this._sessao.TempoInatividade;\r\n localStorage.setItem('ms', new Date().valueOf().toString());\r\n \r\n this._sessionTimeInterval = setInterval(() => {\r\n\r\n if (tempoSessao > 0) {\r\n tempoSessao--;\r\n return;\r\n }\r\n \r\n let tempoRestante = Math.round(this._sessao.TempoInatividade - ((new Date().valueOf() - parseInt(localStorage.getItem('ms'))) / 1000));\r\n\r\n if (!isNaN(tempoRestante) && tempoRestante > 0){\r\n tempoSessao = tempoRestante;\r\n return;\r\n }\r\n \r\n clearInterval(this._sessionTimeInterval);\r\n this._sessionActive = false;\r\n\r\n if (isNaN(tempoRestante))\r\n this.logout();\r\n \r\n else this.showMessage();\r\n }, 1000);\r\n\t}\r\n\r\n showMessage(){\r\n let ref = this._modal.open(RefreshSessionTimeModalComponent, {\r\n data: null,\r\n disableClose: true,\r\n width: '500px'\r\n });\r\n\r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n\r\n if (r != null && (r.modalAction == InfoModalAction.Yes || (this._sessao.TempoInatividade - ((new Date().valueOf() - parseInt(localStorage.getItem('ms'))) / 1000)) > 0)){\r\n this._sessionActive = true;\r\n this.refreshSessionTime();\r\n }\r\n\r\n else this.logout();\r\n });\r\n }\r\n\r\n login(usuario: string, senha: string, reCaptchaToken: string = null, codigo2FA: string = null): Observable<any> {\r\n this.removeSessao();\r\n\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/autenticar', { Usuario: usuario, Senha: senha, ReCaptchaToken: reCaptchaToken, Codigo2FA: codigo2FA })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data.Token);\r\n \r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n trocarEmpresa(usuario: string, empresaId: number): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/trocarempresa', { EmpresaId: empresaId }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n clonar(usuario: string): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/clonar', { Usuario: usuario }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n logout() {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); });\r\n }\r\n\r\n getPermissions(url: string, logAtividade: boolean = false): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/getpermissao?url=' + url + '&logatividade=' + logAtividade.toString(), { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setTrocaSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/TrocarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setRecuperarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/RecuperarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setResetarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/ResetarSenha', model)\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n getLoginResources(): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/app/GetLoginResources')\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n hasPermission(url: string, keyFunction: string = 'view'): boolean {\r\n\r\n if (url == '/' && keyFunction == 'view')\r\n return true;\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n return this._sessao.Permissoes.some(s => s.URL == urlGenerica && s.ChaveFuncionalidade == keyFunction && s.Acesso);\r\n }\r\n\r\n getPermission(url: string, logAtividade: boolean = false): Observable<boolean> {\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n let contemUrl = this._sessao.Permissoes.some(s => s.URL == urlGenerica);\r\n if (contemUrl) {\r\n if (logAtividade) {\r\n return this.validaSessao(url).pipe(map(ret => {\r\n if (!ret.success)\r\n this.logout();\r\n \r\n return true;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n } else {\r\n return new Observable(function (observer) {\r\n observer.next(true);\r\n observer.complete();\r\n });\r\n }\r\n } else {\r\n return this.getPermissions(urlGenerica, logAtividade).pipe(map(ret => {\r\n let permissao = true;\r\n if (ret.success) {\r\n if (ret.data == null) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n ret.data.forEach(item => {\r\n if (this._sessao.Permissoes.filter(s => s.URL == item.URL && s.ChaveFuncionalidade == item.ChaveFuncionalidade).length == 0)\r\n this._sessao.Permissoes.push(item);\r\n });\r\n\r\n ret.data.some(s => s.URL == urlGenerica)\r\n\r\n localStorage.setItem(this._keySessao, JSON.stringify(this._sessao));\r\n }\r\n\r\n return permissao;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n }\r\n }\r\n\r\n validaSessao(url: string): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/validasessao?url=' + url, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r === true, '', r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n removeSessao() {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('Dashboard')) delete localStorage[key];\r\n });\r\n }\r\n\r\n definePaginaAtiva(url) {\r\n\r\n if (this._plataforma.Menu == null || url == null) {\r\n this._plataforma.PaginaAtiva = null;\r\n return;\r\n }\r\n\r\n let aux: string[] = url.substring(1).replace(/-/g, '').toLowerCase().split('/');\r\n let tituloMenu: string = aux.length > 0 ? aux[0].toString() : url;\r\n\r\n if (tituloMenu.indexOf('ashboard') > -1)\r\n this._plataforma.PaginaAtiva = { Icone: 'widgets', Titulo: 'Dashboard' };\r\n\r\n else {\r\n let item: any = this._plataforma.Menu.filter(m => m.Title.toLowerCase().indexOf(tituloMenu) > -1);\r\n\r\n if (item != null && item.length > 0)\r\n this._plataforma.PaginaAtiva = { Icone: item[0].Icon, Titulo: item[0].Title };\r\n else this._plataforma.PaginaAtiva = { Icone: 'security', Titulo: 'Plataforma' };\r\n }\r\n }\r\n\r\n getUrlGenerica(url: string): string {\r\n let retorno = \"\";\r\n let urlParts: string[] = url.split('/');\r\n for (var i = 0; i < urlParts.length; i++) {\r\n if (!isNaN(parseFloat(urlParts[i])) || this.isGuid(urlParts[i]) || urlParts[i].toLowerCase() == 'novo')\r\n break;\r\n else\r\n retorno += '/' + urlParts[i];\r\n }\r\n return retorno.substring(1);\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse): ObservableInput<InfoLoginModel> {\r\n if (e.status == 401) \r\n this.logout();\r\n\r\n else if (e.status == 500)\r\n this._router.navigateByUrl('500');\r\n\r\n else if (e.error != null && e.error.error_description != null)\r\n return of(new InfoLoginModel(false, e.error.error_description));\r\n\r\n else return of(new InfoLoginModel(false, 'Houve um problema e não foi possível conectar'));\r\n }\r\n\r\n private isGuid(value) : boolean {\r\n return (value || '').match('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') !== null;\r\n }\r\n}\r\n\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"Inatividade\" (onsave)=\"ativo(true)\" labelsubmit=\"Sim\" labelcancel=\"({{ time }}) {{ 'Nao' | translate }}\">\r\n <label style=\"font-size:130%\">{{ 'VoceAindaEstaUtilizandoPlataforma' | translate }}</label>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class RefreshSessionTimeModalComponent {\r\n time = 15;\r\n interval;\r\n\r\n\tconstructor(private _ref: MatDialogRef<RefreshSessionTimeModalComponent>) { }\r\n\r\n ngOnInit() {\r\n clearInterval(this.interval);\r\n \r\n this.interval = setInterval(() => {\r\n if (this.time > 0)\r\n this.time--;\r\n else {\r\n this.ativo(false);\r\n clearInterval(this.interval);\r\n }\r\n }, 1000);\r\n }\r\n \r\n ativo(ativo: boolean) {\r\n this._ref.close({ modalAction: ativo ? InfoModalAction.Yes : InfoModalAction.No });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoSessionModel } from '../model/session.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoThemeService {\r\n\r\n constructor(public _overlay: OverlayContainer, public _plataform: InfoPlatformModel, public _session: InfoSessionModel) { }\r\n\r\n public setTheme(theme) {\r\n // console.log('info-theme.setTheme', theme);\r\n\r\n if (this._plataform.Themes != null){\r\n let item = this._plataform.Themes.find(t => t.name == theme);\r\n this._plataform.UnificarTopbar = item == null ? false : item.unificarTopbar;\r\n }\r\n\r\n let _overlay = this._overlay.getContainerElement().classList;\r\n let themeClassesToRemove: any = Array.from(_overlay).filter((item: string) => item.includes('-theme'));\r\n \r\n if (themeClassesToRemove && themeClassesToRemove.length > 0)\r\n _overlay.remove(themeClassesToRemove);\r\n\r\n _overlay.remove('alternative-layout');\r\n\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 } from \"@angular/core\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { InfoFormPropModel } from \"../../model/form-prop.model\";\r\nimport { InfoPaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { InfoDialogModal } from \"../../layouts/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { InfoAuthenticationService } from \"../../service/authentication.service\";\r\nimport { InfoTranslateService } from \"../../service/translate.service\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\nimport { InfoModalAction } from \"../../enum/modal-action.enum\";\r\nimport { InfoPageAction } from \"../../enum/page-action.enum\";\r\nimport { InfoPagebarButtonModel } from \"../../model/pagebar-buttons.model\";\r\nimport { InfoGridButtonModel } from \"../../model/grid-button.model\";\r\nimport { InfoLastSearchModel } from \"../../model/last-search.model\";\r\nimport { InfoMethodGridButtonModel } from \"../../model/method-grid-button.model\";\r\nimport { NgModel, NgForm } from '@angular/forms';\r\nimport { QueryList } from '@angular/core';\r\nimport { InfoPlatformModel } from \"../../model/platform.model\";\r\n\r\n@Component({\r\n selector: 'info-grid',\r\n templateUrl: 'grid.component.html',\r\n styleUrls: ['grid.component.scss'],\r\n providers: [InfoFormPropModel]\r\n})\r\nexport class InfoGridComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() pagetitle = '';\r\n @Input() prefixtitle = '';\r\n @Input() description = '';\r\n @Input() pagebarbuttons: InfoPagebarButtonModel[] = [];\r\n @Input() fullarea = false;\r\n\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n @Input() form: any = null;\r\n @Input() width: number = 800;\r\n @Input() parent: any = null;\r\n @Input() apidownload: any = null;\r\n @Input() methoddownload: string = null;\r\n\r\n @Input() backurl = '';\r\n @Input() newurl = '';\r\n @Input() newlabel = 'Novo';\r\n @Input() editurl = '';\r\n @Input() viewurl = '';\r\n @Input() templateurl = '';\r\n\r\n @Input() paged = false;\r\n @Input() size = 15;\r\n @Input() autorefresh = 0;\r\n\r\n @Input() enablednew = true;\r\n @Input() enablededit = true;\r\n @Input() enableddelete = true;\r\n @Input() enabledview = true;\r\n @Input() enabledcancelsearch = true;\r\n @Input() enableddetail = false;\r\n @Input() enabledclassicons = true;\r\n @Input() enabledclickaccess = false;\r\n @Input() enabledclickevent = false;\r\n\r\n @Input() searchopened = false;\r\n @Input() searchonlyonebutton = false;\r\n @Input() disablesearchlast = false;\r\n @Input() statictitle = false;\r\n @Input() disabledcol = '';\r\n @Input() accessicon = 'arrow_forward';\r\n\r\n @Input() loadoninit = true;\r\n @Input() data: any[];\r\n @Input() searchmodel: any = null;\r\n\r\n @Output() onbeforesearch = new EventEmitter();\r\n @Output() onloadcomplete = new EventEmitter();\r\n @Output() onclosemodal = new EventEmitter();\r\n @Output() onnew = new EventEmitter();\r\n @Output() onedit = new EventEmitter();\r\n @Output() onview = new EventEmitter();\r\n @Output() ondelete = new EventEmitter();\r\n @Output() customdelete = new EventEmitter();\r\n\r\n @Input() dynamiccols: string = null;\r\n @Input() buttons: InfoGridButtonModel[] = [];\r\n @Input() searchbuttons: InfoMethodGridButtonModel[] = [];\r\n\r\n @Input() showmessageerror = false;\r\n @Input() defaultnewobject: any = null;\r\n \r\n @ContentChildren(NgModel) formModel: QueryList<NgModel>;\r\n @ViewChild(NgForm, { static: false }) formSearch: NgForm;\r\n \r\n messages: String[] = [];\r\n resultTitle = '';\r\n enabledSearch = false;\r\n searchModelReset: any = null;\r\n\r\n showPagebar = false;\r\n hasPermissionNew = false;\r\n hasPermissionEdit = false;\r\n hasPermissionDelete = false;\r\n\r\n tableHeight = 0;\r\n loading = false;\r\n pagebarTitle = '';\r\n icons: any[] = [];\r\n colunasItens = [];\r\n colunasHeaders = [];\r\n colunasType = [];\r\n colunasWidth = [];\r\n colunasTranslate = [];\r\n currentUrl: string = null;\r\n url: string = null;\r\n\r\n @ViewChild('paginator', { static: false }) paginator: InfoPaginatorComponent;\r\n @Output() parentIdUrlChange = new EventEmitter();\r\n\r\n parentIdUrlValue: number = null;\r\n @Input()\r\n get parentIdUrl() {\r\n return this.parentIdUrlValue;\r\n }\r\n\r\n set parentIdUrl(value) {\r\n this.parentIdUrlValue = value;\r\n this.parentIdUrlChange.emit(this.parentIdUrlValue);\r\n }\r\n\r\n _cols: string = '';\r\n @Input()\r\n get cols() {\r\n return this._cols;\r\n }\r\n\r\n set cols(value) {\r\n this._cols = value;\r\n this.setColumns();\r\n }\r\n\r\n constructor(private _dialog: InfoDialogModal, \r\n public _platform: InfoPlatformModel,\r\n public modal: MatDialog, \r\n private _prop: InfoFormPropModel, \r\n private _dataAccessService: InfoDataService, \r\n private _router: Router,\r\n private _activatedRoute: ActivatedRoute,\r\n private _authenticationService: InfoAuthenticationService, \r\n private _changeDetectorRef: ChangeDetectorRef, \r\n private _translate: InfoTranslateService, \r\n private _lastSearch: InfoLastSearchModel,\r\n private _renderer: Renderer2, \r\n private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this.url = (this._activatedRoute.snapshot.data['URL'] || this._router.url).toLowerCase();\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.setPagebarTitle();\r\n\r\n if (this.searchmodel != null) {\r\n if (this.method == null)\r\n this.method = 'Search';\r\n\r\n this.searchModelReset = Object.assign({}, this.searchmodel);\r\n }\r\n\r\n else if (this.parent != null && (this.method == null || this.method == ''))\r\n this.method = 'GetByParentId';\r\n\r\n if (!this.disablesearchlast && this._authenticationService.getUrlGenerica(this._lastSearch.url) == this._authenticationService.getUrlGenerica(this.url)) {\r\n this.enabledSearch = this._lastSearch.enabledSearch;\r\n \r\n if (this.searchmodel != null && this._lastSearch.model != null)\r\n Object.assign(this.searchmodel, this._lastSearch.model);\r\n }\r\n\r\n if (this.searchopened)\r\n this.enabledSearch = true;\r\n\r\n if (this.autorefresh > 0)\r\n this.currentUrl = location.href;\r\n\r\n this._prop.api = this.api;\r\n this._prop.modalComponent = this.form;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.showPagebar = this.pagetitle != '' || this.prefixtitle != '';\r\n \r\n if (!this.fullarea && this._platform.Config.ux <= 2)\r\n this.fullarea = this.showPagebar;\r\n\r\n if (this.searchmodel && this.formModel.length > 0 && this.formSearch)\r\n this.formModel.toArray().forEach(model => this.formSearch.addControl(model));\r\n\r\n if (!this.disablesearchlast && this.paged && this._authenticationService.getUrlGenerica(this._lastSearch.url) == this._authenticationService.getUrlGenerica(this.url))\r\n this.paginator.index = this._lastSearch.index;\r\n\r\n if (this.dynamiccols == null) {\r\n this.setColumns();\r\n this.getPermission();\r\n\r\n if (this.loadoninit)\r\n this.getData();\r\n\r\n else this.hideLoad();\r\n }\r\n\r\n else this._dataAccessService\r\n .get(this.api, this.dynamiccols)\r\n .subscribe(r => {\r\n this.cols = r.data;\r\n this.setColumns();\r\n this.getPermission();\r\n\r\n if (this.loadoninit)\r\n this.getData();\r\n\r\n else this.hideLoad();\r\n });\r\n\r\n if (this.enabledclickevent)\r\n this.enabledclickaccess = true;\r\n }\r\n\r\n setColumns() {\r\n\r\n if (this.cols == '')\r\n alert('Nenhuma coluna informada');\r\n\r\n if (this.cols != '') {\r\n this.colunasItens = [];\r\n this.colunasHeaders = [];\r\n this.colunasType = [];\r\n this.colunasWidth = [];\r\n this.colunasTranslate = [];\r\n \r\n this.cols.split(',').forEach(registro => {\r\n\r\n let translate: boolean = registro.indexOf('#') == -1;\r\n registro = registro.replace(/#/g, '');\r\n\r\n let column: string = registro;\r\n let header: string = registro;\r\n let type: string = '';\r\n let width: string = '';\r\n\r\n if (header.indexOf(':') > -1) {\r\n let dados = registro.split(':');\r\n column = dados[0];\r\n header = dados[1];\r\n }\r\n\r\n if (header.indexOf('=') > -1) {\r\n let parts = header.split('=');\r\n\r\n if (column == header)\r\n column = parts[0];\r\n\r\n header = parts[0];\r\n type = parts[1];\r\n }\r\n\r\n let aux = type == '' ? header : type;\r\n if (aux.indexOf('*') > -1) {\r\n let headerInfo = aux.split('*');\r\n\r\n if (type == '') {\r\n if (column == header)\r\n column = headerInfo[0];\r\n\r\n header = headerInfo[0];\r\n\r\n } else type = headerInfo[0];\r\n\r\n width = headerInfo[1];\r\n\r\n if (width.indexOf('%') < 0 && width.indexOf('px') < 0)\r\n width += 'px';\r\n }\r\n\r\n this.colunasItens.push(column);\r\n this.colunasHeaders.push(header);\r\n this.colunasType.push(type == '' ? 'label' : type);\r\n this.colunasWidth.push(width);\r\n this.colunasTranslate.push(translate);\r\n });\r\n\r\n if (this.colunasItens.length == 1 && this.colunasWidth.length == 1)\r\n this.colunasWidth[0] = '100%';\r\n }\r\n }\r\n\r\n setPagebarTitle() {\r\n let aux = '';\r\n\r\n if (this.prefixtitle != '')\r\n aux = this._translate.translate(this.prefixtitle);\r\n\r\n if (this.resultTitle != '')\r\n aux += (this.prefixtitle != '' ? ' / ' : '') + this._translate.translate(this.resultTitle);\r\n\r\n if (this.pagetitle != '')\r\n aux += (this.resultTitle != '' || this.prefixtitle != '' ? ' / ' : '') + this._translate.translate(this.pagetitle);\r\n\r\n this.pagebarTitle = aux;\r\n }\r\n\r\n navigateTo(url: string, passId: boolean, id?: string) {\r\n\r\n if (passId) {\r\n if (url.indexOf(\":id\") > -1)\r\n this._router.navigateByUrl(url.replace(':id', id));\r\n else this._router.navigate([url, id]);\r\n }\r\n\r\n else this._router.navigateByUrl(url);\r\n }\r\n\r\n openCustomModal(modalComponent: any, width: Number, model: any = null) {\r\n\r\n this._prop.set(InfoPageAction.None, model);\r\n this.openModal(modalComponent, width);\r\n }\r\n\r\n getData() {\r\n this.messages = [];\r\n\r\n if (this.api == null || this.api == '') {\r\n this.hideLoad();\r\n return;\r\n \r\n } else if (this.searchmodel != null)\r\n this.getSearch();\r\n\r\n else if (this.paged)\r\n this.getPaged();\r\n\r\n else if (this.parent == null)\r\n this.getAll();\r\n\r\n else this.getByParentId();\r\n }\r\n\r\n getAll(): any {\r\n\r\n if (this.searchmodel == null)\r\n this._dataAccessService\r\n .get(this.api, this.method)\r\n .subscribe(r => this.getDataReturn(r));\r\n\r\n else this._dataAccessService\r\n .post(this.api, this.searchmodel, this.method)\r\n .subscribe(r => this.getDataReturn(r));\r\n }\r\n\r\n getPaged(): any {\r\n\r\n let params = this.parent == null ? \"\" : \"id=\" + this.parent + \"&\";\r\n params += 'index=' + this.paginator.index + '&size=' + this.size;\r\n\r\n this._dataAccessService\r\n .get(this.api, this.method, params)\r\n .subscribe(r => this.getDataReturn(r, true));\r\n }\r\n\r\n getSearch(): any {\r\n this.onbeforesearch.emit();\r\n\r\n this.messages = [];\r\n if (this.paged) {\r\n this.searchmodel.Index = this.paginator.index;\r\n this.searchmodel.Size = this.size;\r\n }\r\n\r\n var dataInicial = this.searchmodel[\"DataInicial\"];\r\n var dataFinal = this.searchmodel[\"DataFinal\"];\r\n if (dataInicial != null && dataFinal != null && new Date(dataInicial) > new Date(dataFinal)) {\r\n this.messages.push('DataInicialMaiorFinal');\r\n this.hideLoad();\r\n return;\r\n }\r\n\r\n var dataInicio = this.searchmodel[\"DataInicio\"];\r\n var dataFim = this.searchmodel[\"DataFim\"];\r\n if (dataInicio != null && dataFim != null && new Date(dataInicio) > new Date(dataFim)) {\r\n this.messages.push('DataInicioMaiorFim');\r\n this.hideLoad();\r\n return;\r\n }\r\n\r\n this._dataAccessService\r\n .post(this.api, this.searchmodel, this.method)\r\n .subscribe(r => this.getDataReturn(r, this.paged));\r\n }\r\n\r\n getByParentId(): any {\r\n this._dataAccessService\r\n .get(this.api, this.method, 'id=' + this.parent)\r\n .subscribe(r => this.getDataReturn(r, false));\r\n }\r\n\r\n getDataReturn(result: any, refreshPaginator: boolean = false) {\r\n \r\n if (!this.disablesearchlast) {\r\n this._lastSearch.url = this._authenticationService.getUrlGenerica(this.url);\r\n this._lastSearch.enabledSearch = this.enabledSearch;\r\n this._lastSearch.model = Object.assign({}, this.searchmodel);\r\n\r\n if (this.paged)\r\n this._lastSearch.index = this.paginator.index;\r\n }\r\n\r\n if (result.success) {\r\n this.data = result.data;\r\n\r\n if (!this.statictitle && result.name != null)\r\n this.resultTitle = this._translate.translate(result.name);\r\n\r\n if (result.description != null)\r\n this.description = result.description;\r\n\r\n if (result.parentId != null)\r\n this.parentIdUrl = result.parentId;\r\n\r\n if (refreshPaginator)\r\n this.paginator.refresh(result.total);\r\n\r\n if (this.autorefresh > 0 && this.currentUrl == location.href)\r\n setTimeout(() => { this.getData(); }, this.autorefresh * 1000);\r\n\r\n this.fillIcons();\r\n\r\n } else {\r\n this.data = [];\r\n if(this.showmessageerror) this.messages = result.messages;\r\n } \r\n\r\n this.hideLoad();\r\n this.onloadcomplete.emit();\r\n }\r\n\r\n changePage(index: number) {\r\n this.loading = true;\r\n this.paginator.index = index;\r\n\r\n if (this.searchmodel != null)\r\n this.getSearch();\r\n\r\n else this.getPaged();\r\n }\r\n\r\n cancelSearch() {\r\n Object.assign(this.searchmodel, this.searchModelReset);\r\n\r\n if (!this.searchopened)\r\n this.enabledSearch = false;\r\n\r\n this.search();\r\n }\r\n\r\n search() {\r\n this.loading = true;\r\n \r\n if (this.paged)\r\n this.paginator.index = 0;\r\n\r\n this.getData();\r\n }\r\n\r\n add() {\r\n\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.New, this.defaultnewobject);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.newurl == null || this.newurl == '')\r\n this.newurl = this.url;\r\n\r\n this.newurl += '/novo';\r\n this.newurl = this.newurl.replace('//', '/');\r\n\r\n this._router.navigateByUrl(this.newurl);\r\n }\r\n\r\n this.onnew.emit();\r\n }\r\n\r\n detail(model: any): void {\r\n this._prop.set(InfoPageAction.Search, model);\r\n this.openModal();\r\n }\r\n\r\n access(model: any): void {\r\n if (this.enabledclickaccess){\r\n if (this.enabledclickevent)\r\n this.onview.emit(model);\r\n \r\n else this.edit(model);\r\n }\r\n }\r\n\r\n view(model: any): void {\r\n\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.View, model);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.viewurl == null || this.viewurl == '')\r\n this.viewurl = this.url;\r\n \r\n this.viewurl += '/' + model.Id + (this.enabledclickaccess ? '' : '/visualizar');\r\n this.viewurl = this.viewurl.replace('//', '/');\r\n\r\n this._router.navigateByUrl(this.viewurl);\r\n }\r\n\r\n this.onview.emit(model);\r\n }\r\n\r\n edit(model: any): void {\r\n if (this.hasPermissionEdit) {\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.Edit, model);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.editurl == null || this.editurl == '')\r\n this.editurl = this.url;\r\n\r\n this.editurl = this.editurl.replace('//', '/');\r\n\r\n this._router.navigate([this.editurl, model.Id]);\r\n }\r\n\r\n this.onedit.emit(model);\r\n } else {\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.View, model);\r\n this.openModal();\r\n \r\n } else {\r\n if (this.viewurl == null || this.viewurl == '')\r\n this.viewurl = this.url;\r\n \r\n this.viewurl += '/' + model.Id + (this.enabledclickaccess ? '' : '/visualizar');\r\n this.viewurl = this.viewurl.replace('//', '/');\r\n \r\n this._router.navigateByUrl(this.viewurl);\r\n }\r\n \r\n this.onview.emit(model);\r\n }\r\n }\r\n\r\n delete(model: any) {\r\n if(this.customdelete.observers.length > 0) {\r\n this.customdelete.emit(model);\r\n return;\r\n }\r\n\r\n this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {\r\n if (r.button == InfoDialogButtons.Yes) {\r\n this.loading = true;\r\n\r\n this._dataAccessService.delete(this.api, model.Id).subscribe(d => {\r\n this.ondelete.emit(d);\r\n\r\n if (d.success)\r\n this.getData();\r\n else {\r\n this.hideLoad();\r\n if (this.showmessageerror) this.messages = d.messages;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n fillIcons() {\r\n this.icons = [];\r\n\r\n if (this.data == null)\r\n return;\r\n\r\n this.data.forEach(ret => {\r\n\r\n let item = ret['Icon'];\r\n if (item == null)\r\n return;\r\n\r\n if (item.indexOf('|') > -1) {\r\n let retorno = item\r\n .split('|')\r\n .map(icone => {\r\n\r\n if (icone.indexOf(':') > -1) {\r\n let dados = icone.split(':');\r\n return { Name: item, Icon: dados[0], Tooltip: dados[1], Principal: true };\r\n\r\n } else return { Name: item, Icon: icone, Tooltip: '', Principal: true };\r\n\r\n }).filter(a => a.Icon != null && a.Icon != '');\r\n\r\n let index = 0;\r\n retorno.forEach(element => {\r\n if (this.icons.find(a => a.Name == element.Name && a.Icon == element.Icon) == null){\r\n element.Principal = index == 0;\r\n this.icons.push(element);\r\n }\r\n\r\n index++;\r\n });\r\n } else {\r\n let element: any = [];\r\n\r\n if (item.indexOf(':') > -1) {\r\n let dados = item.split(':');\r\n element = { Name: item, Icon: dados[0], Tooltip: dados[1], Principal: true };\r\n\r\n } else element = { Name: item, Icon: item, Tooltip: \"\", Principal: true };\r\n\r\n if (this.icons.find(a => a.Name == element.Name) == null)\r\n this.icons.push(element);\r\n }\r\n });\r\n }\r\n\r\n info(value) {\r\n this._dialog.alert(value);\r\n }\r\n\r\n back() {\r\n this.navigateTo(this.backurl + (this.parentIdUrl == null ? \"\" : \"/\" + this.parentIdUrl), false);\r\n }\r\n\r\n openModal(modalComponent: any = this.form, width: Number = this.width) {\r\n\r\n let ref = this.modal.open(modalComponent, {\r\n data: this._prop,\r\n disableClose: true,\r\n width: width + 'px'\r\n });\r\n\r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n if (r == null)\r\n return;\r\n\r\n if (r.modalAction == InfoModalAction.Save)\r\n this.getData();\r\n\r\n this.onclosemodal.emit(r);\r\n });\r\n\r\n ref.keydownEvents().subscribe((r) => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n ref.close();\r\n });\r\n }\r\n\r\n hideLoad() {\r\n this.setPagebarTitle();\r\n this.loading = false;\r\n }\r\n\r\n getPermission() {\r\n this.hasPermissionNew = this._authenticationService.hasPermission(this.url, 'new');\r\n this.hasPermissionEdit = this._authenticationService.hasPermission(this.url, 'edit');\r\n this.hasPermissionDelete = this._authenticationService.hasPermission(this.url, 'remove');\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n download(arquivoId: any) {\r\n if (this.apidownload == null)\r\n alert('API Download está null');\r\n\r\n this.loading = true;\r\n this._dataAccessService.get(this.apidownload, (this.methoddownload != null ? this.methoddownload : 'Get'), \"id=\" + arquivoId).subscribe(r => {\r\n this.messages = r.messages;\r\n\r\n if (r.success && r.data != null) {\r\n var binaryString = window.atob(r.data.Conteudo);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n\r\n var blob = new Blob([bytes]);\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, r.data.Nome);\r\n } else {\r\n let fileURL = URL.createObjectURL(blob);\r\n let elementA: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;\r\n elementA.href = fileURL;\r\n elementA.download = r.data.Nome;\r\n document.body.appendChild(elementA);\r\n elementA.click(); \r\n document.body.removeChild(elementA);\r\n }\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n eventButton(model: any, api: any, method: string, confirm: boolean = true) {\r\n if (confirm) {\r\n this._dialog\r\n .YesOrNo('MensagemConfirmar')\r\n .subscribe(ret => {\r\n if (ret.button == InfoDialogButtons.Yes) {\r\n this.loading = true;\r\n this._dataAccessService.post(api, model, method).subscribe(r => {\r\n if (r.success)\r\n this.getData();\r\n else if(this.showmessageerror)\r\n this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n });\r\n } else {\r\n this.loading = true;\r\n this._dataAccessService.post(api, model, method).subscribe(r => {\r\n if (r.success)\r\n this.getData();\r\n else if(this.showmessageerror)\r\n this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n}","import { Component, forwardRef, Input, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-input',\r\n styleUrls: [ 'input.component.scss' ],\r\n templateUrl: 'input.component.html',\r\n providers:[\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoInputComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() readonly: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() maxlength: any;\r\n @Input() type: string = 'text';\r\n @Input() rows: number = 1;\r\n @Input() tabindex: number = 0;\r\n @Input() iconPrefix: string = '';\r\n @Input() iconSuffix: string = '';\r\n @Input() min: number = -99999999999999.999999999;\r\n @Input() max: number = 99999999999999.999999999;\r\n @Input() step: number = null;\r\n\r\n @Output() onblur = new EventEmitter();\r\n \r\n maskOptions: any = {\r\n align: 'right',\r\n allowNegative: true,\r\n decimal: ',',\r\n precision: 2,\r\n prefix: '',\r\n suffix: '',\r\n thousands: '.'\r\n };\r\n \r\n value: string = '';\r\n customMask: string = null;\r\n onChange: any;\r\n onTouched: any;\r\n passwordMode: boolean = false;\r\n\r\n ngOnInit() { \r\n this.passwordMode = this.type.toLocaleLowerCase() == 'password';\r\n }\r\n\r\n private methodIsmask: string = null;\r\n @Input()\r\n get ismask(){\r\n return this.methodIsmask;\r\n }\r\n\r\n set ismask(value){\r\n this.methodIsmask = value;\r\n\r\n if (this.methodIsmask != null) {\r\n this.methodIsmask = this.methodIsmask.toLowerCase();\r\n \r\n if (this.methodIsmask == 'int')\r\n this.maskOptions.precision = 0;\r\n\r\n else if (this.methodIsmask[0] == 'n' && (this.methodIsmask.length == 2 || this.methodIsmask.length == 3))\r\n this.maskOptions.precision = parseInt(this.methodIsmask.replace('n', ''));\r\n\r\n else this.customMask = this.methodIsmask;\r\n }\r\n }\r\n\r\n onBlur() {\r\n if (this.type == 'number' || (this.ismask != null && this.ismask.startsWith(\"n\"))) {\r\n if (this.min != null)\r\n this.value = this.min > Number(this.value) ? null : this.value;\r\n\r\n if (this.max != null)\r\n this.value = this.max < Number(this.value) ? null : this.value;\r\n\r\n this.onChangeValue();\r\n }\r\n\r\n if (this.onblur != null)\r\n this.onblur.emit(this.value);\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.value);\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n this.value = modelValue;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}","import { Component, Input, OnChanges } from \"@angular/core\";\r\nimport { InfoDialogModal } from \"../../layouts/dialog/dialog.component\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\n\r\n@Component({\r\n selector: 'info-input-list',\r\n templateUrl: 'input-list.component.html',\r\n styleUrls: ['input-list.component.scss']\r\n})\r\nexport class InfoInputListComponent implements OnChanges {\r\n \r\n @Input() model: any = []\r\n @Input() readonly: boolean = false\r\n @Input() percent: boolean = false\r\n @Input() hiddenDe: boolean = false\r\n @Input() disabled: boolean = false\r\n\r\n mask: string = \"n2\";\r\n @Input() \r\n get ismask() {\r\n return this.mask;\r\n }\r\n\r\n set ismask(value) {\r\n this.mask = (value == null ? this.mask : value);\r\n }\r\n\r\n messages: string[] = [];\r\n novoValor = { De: null, Ate: null, Valor: null, Excluir: false };\r\n\r\n constructor(private _dialog: InfoDialogModal) { }\r\n\r\n ngOnChanges() {\r\n if (this.model == null)\r\n this.model = [];\r\n\r\n for (var i = 0; i < this.model.length; i++)\r\n this.model[i].Excluir = false;\r\n }\r\n\r\n getModel(): any[]{\r\n if (!this.model || this.model == null)\r\n return [];\r\n\r\n return this.model.filter(m => !m.Excluir);\r\n }\r\n\r\n add() {\r\n this.messages = [];\r\n\r\n if (this.hiddenDe && this.novoValor.Ate == null)\r\n this.messages.push('InformeUmValorDe');\r\n\r\n if (!this.hiddenDe && this.novoValor.De == null && this.novoValor.Ate == null)\r\n this.messages.push('InformeUmValorDeOuAte');\r\n\r\n if (!this.hiddenDe && this.novoValor.Ate < this.novoValor.De)\r\n this.messages.push('ValorAteMenorQueDe');\r\n\r\n if (this.novoValor.Valor == null)\r\n this.messages.push('InformeValor');\r\n\r\n if (this.messages.length > 0){\r\n\r\n \r\n\r\n return;\r\n }\r\n\r\n this.model.push({ De: this.novoValor.De, Ate: this.novoValor.Ate, Valor: this.novoValor.Valor, Excluir: false });\r\n this.novoValor = { De: null, Ate: null, Valor: null, Excluir: false };\r\n\r\n this.ordernar();\r\n }\r\n\r\n remover(item: any){\r\n\r\n this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {\r\n if (r.button == InfoDialogButtons.No)\r\n return;\r\n\r\n item.Excluir = true;\r\n this.model.splice(this.model.findIndex(m => m == item), 1);\r\n this.ordernar();\r\n });\r\n }\r\n\r\n ordernar(){\r\n\r\n this.model = this.model.sort((a, b) => { \r\n if (this.hiddenDe ? (a.Ate < b.Ate) : (a.De < b.De))\r\n return -1;\r\n\r\n else if (this.hiddenDe ? (a.Ate > b.Ate) : (a.De > b.De))\r\n return 1;\r\n\r\n else return 0;\r\n });\r\n }\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { InfoTranslateService } from \"../../service/translate.service\";\r\n\r\n@Component({\r\n selector: 'info-list-checkbox',\r\n templateUrl: 'list-checkbox.component.html',\r\n styles: ['ul.checkbox-list { height: 270px; overflow-y: auto }']\r\n})\r\nexport class InfoListCheckboxComponent implements OnInit {\r\n\r\n @Input() filterlabel: string = 'Filtrar';\r\n @Input() filterdescription: string;\r\n\r\n @Input() selectedlabel: string = 'Filtrar';\r\n @Input() selecteddescription: string;\r\n\r\n @Input() model: any[] = [];\r\n @Input() max: number = 0;\r\n @Input() onelist: boolean = false;\r\n\r\n private disabledValue: any;\r\n @Input()\r\n get disabled() {\r\n return this.disabledValue;\r\n }\r\n\r\n set disabled(value) {\r\n this.disabledValue = value;\r\n }\r\n\r\n filterList: string = '';\r\n filterSelected: string = ''; \r\n message: string = \"\";\r\n\r\n constructor(private _translate: InfoTranslateService) { }\r\n\r\n ngOnInit() {\r\n if (this.max != null && this.max > 0)\r\n this.message = this._translate.translate('MensagemTopRegistro').replace('{0}', this.max.toString());\r\n }\r\n \r\n getModel(valor: string, selecionados: boolean = false, todos = false): any[] {\r\n if (todos || this.max == null || this.max == 0)\r\n return this.model.filter(r => (selecionados ? r.Selecionado : r.Selecionado == r.Selecionado) && r.Descricao.toLowerCase().indexOf(valor.toLowerCase()) > -1);\r\n else \r\n return this.model.filter(r => (selecionados ? r.Selecionado : r.Selecionado == r.Selecionado) && r.Descricao.toLowerCase().indexOf(valor.toLowerCase()) > -1).slice(0, this.max);\r\n }\r\n\r\n marcarFiltrados(valor: string, marcar: boolean, selecionados: boolean = false) {\r\n let ids: any[] = this.getModel(valor, selecionados, true).map(r => r.Id);\r\n\r\n this.model.forEach((item, index) => {\r\n if (ids.indexOf(item.Id) > -1)\r\n item.Selecionado = marcar; \r\n });\r\n }\r\n\r\n marcarTodos(marcar: boolean) {\r\n this.model.forEach(item => item.Selecionado = marcar);\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-message',\r\n templateUrl: 'message.component.html',\r\n styleUrls: ['message.component.scss']\r\n})\r\n\r\nexport class InfoMessageComponent {\r\n\r\n @Input() color: string = 'info';\r\n @Input() outline: boolean = true;\r\n @Input() close: boolean = false;\r\n @Input() min: boolean = false;\r\n\r\n delete(event: any, message: any) {\r\n event.preventDefault();\r\n message.remove();\r\n }\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-paginator',\r\n templateUrl: 'paginator.component.html',\r\n styleUrls: ['paginator.component.scss']\r\n})\r\n\r\nexport class InfoPaginatorComponent {\r\n\r\n @Input() size = 5;\r\n @Input() min = false;\r\n @Input() show = false;\r\n @Output() index = 0;\r\n @Output() change = new EventEmitter<number>();\r\n\r\n _total = 0;\r\n @Input()\r\n get total(){\r\n return this._total;\r\n }\r\n\r\n set total(value){\r\n this._total = value;\r\n this.initialize();\r\n }\r\n\r\n onChange: any;\r\n indexActive = 0;\r\n numberPages = 1;\r\n pages = [];\r\n totalDescription = '';\r\n\r\n refresh(total: number) {\r\n this.total = total;\r\n }\r\n\r\n initialize() {\r\n this.pages = [];\r\n this.indexActive = this.index;\r\n this.numberPages = Math.ceil(this.total / this.size);\r\n \r\n if (this.total > this.size) {\r\n let i = (this.index > 2) ? (this.index - 2) : 0;\r\n let x = this.numberPages;\r\n\r\n if ((this.index + 2) < this.numberPages){\r\n \r\n let aux = 3;\r\n if (this.index < 2)\r\n aux = (5 - this.index);\r\n\r\n x = (this.index + aux);\r\n }\r\n else if ((this.index - 2) > 0)\r\n i = this.index - (5 - (this.numberPages - this.index));\r\n \r\n if (i < 0)\r\n i = 0;\r\n\r\n if (x > this.numberPages)\r\n x = this.numberPages;\r\n \r\n for (i; i < x; i++)\r\n this.pages.push(i);\r\n\r\n } else {\r\n this.pages.push(0);\r\n }\r\n \r\n this.setDescription();\r\n this.show = true;\r\n }\r\n\r\n goto(index: number) {\r\n \r\n if (this.index == index)\r\n return;\r\n\r\n this.index = index;\r\n this.change.emit(this.index);\r\n }\r\n\r\n next() {\r\n this.goto(this.index + 1);\r\n }\r\n\r\n previous() {\r\n this.goto(this.index - 1);\r\n }\r\n\r\n setDescription(){\r\n let currentInit = (this.size * this.index) + 1;\r\n let currentEnd = this.size * (this.index + 1);\r\n\r\n if (currentEnd > this.total)\r\n currentEnd = this.total;\r\n\r\n if (currentInit == null || currentEnd == null) return;\r\n\r\n this.totalDescription = currentInit + ' - ' + currentEnd + ' de ' + this.total;\r\n }\r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\n\r\n@Component({\r\n selector: 'info-select',\r\n templateUrl: 'select.component.html',\r\n styleUrls: ['select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoSelectComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoSelectComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required: any = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() blank = false;\r\n @Input() blankItem: any = null;\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n @Input() notranslate: any = null;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n selectedValue: any = null;\r\n translatValue: boolean = true;\r\n onChange: any;\r\n onTouched: any;\r\n\r\n private initialized = false;\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData();\r\n }\r\n \r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n \r\n if (this.selectfirst && this.data != null && this.data.length > 0 && !this.data.some(d => d.Id == this.selectedValue))\r\n this.writeValue(this.data[0].Id);\r\n \r\n if (this.disablednoregisters)\r\n this.setDisabledState((this.data == null || this.data.length == 0));\r\n }\r\n\r\n constructor(private _dataAcessService: InfoDataService) { }\r\n\r\n ngOnInit() {\r\n this.name += this.placeholder.replace(/ /g, '');\r\n this.blank = (this.required !== '' && this.required !== 'true' && this.required !== true);\r\n\r\n if (this.blankItem == null)\r\n this.blankItem = { Id: null, Nome: '' };\r\n \r\n this.getData();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.selectedValue = value;\r\n this.onChangeValue();\r\n }\r\n\r\n getData() {\r\n this.initialized = true;\r\n \r\n if (this.api == null || (this.params != null && this.params.toLowerCase().indexOf('undefined') > -1))\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n this._dataAcessService.get(this.api, this.method, this.params).subscribe(r => {\r\n if (r.success) {\r\n this.data = r.data;\r\n if (this.selectedValue) this.onChangeValue();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.selectedValue);\r\n\r\n if (this.onselecteditem != null)\r\n this.onselecteditem.emit(this.data == null ? null : this.data.find(r => r.Id == this.selectedValue));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;\r\n }\r\n}","import { Component, OnInit, Input, HostBinding } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-timeline',\r\n templateUrl: './timeline.component.html',\r\n styleUrls: ['./timeline.component.scss'],\r\n host: {\r\n '[class.timeline]': 'true',\r\n '[class.show-date]': 'true'\r\n }\r\n})\r\nexport class InfoTimelineComponent implements OnInit {\r\n @Input() showdate: boolean = true;\r\n @Input() align: string = 'between';\r\n @Input() style: any = '';\r\n @Input() label: string = '';\r\n @Input() data: any[] = [];\r\n\r\n @HostBinding('class.align-left') alignLeft: boolean = false;\r\n @HostBinding('class.align-center') alignCenter: boolean = false;\r\n @HostBinding('class.align-right') alignRight: boolean = false;\r\n @HostBinding('class.align-between') alignBetween: boolean = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n this.alignLeft = (this.align === 'left');\r\n this.alignCenter = (this.align === 'center');\r\n this.alignRight = (this.align === 'right');\r\n this.alignBetween = (this.align === 'between');\r\n }\r\n}","import { Component, forwardRef, Input, SecurityContext, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { AngularEditorComponent, AngularEditorConfig, AngularEditorService } from '@kolkov/angular-editor';\r\n \r\n@Component({\r\n selector: 'info-editor',\r\n templateUrl: './editor.component.html',\r\n styleUrls: ['./editor.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoEditorComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoEditorComponent implements ControlValueAccessor {\r\n\r\n @ViewChild('editor') editor: AngularEditorComponent;\r\n\r\n @Input() required: boolean = false;\r\n @Input() enabledhtmlmode: boolean = false;\r\n @Input() sanitize: boolean = true;\r\n\r\n @Input()\r\n get disabled() { return !(this.editorConfig || {}).editable; }\r\n set disabled(value) { this.editorConfig.editable = !value; }\r\n\r\n @Input()\r\n get height() { return (this.editorConfig || {}).height; }\r\n set height(value) { this.editorConfig.height = value || 'auto'; }\r\n\r\n @Input()\r\n get minheight() { return (this.editorConfig || {}).minHeight; }\r\n set minheight(value) { this.editorConfig.minHeight = value || '0'; }\r\n\r\n @Input()\r\n get maxheight() { return (this.editorConfig || {}).maxHeight; }\r\n set maxheight(value) { this.editorConfig.maxHeight = value || 'auto'; }\r\n\r\n @Input()\r\n get width() { return (this.editorConfig || {}).width; }\r\n set width(value) { this.editorConfig.width = value || 'auto'; }\r\n\r\n @Input()\r\n get minwidth() { return (this.editorConfig || {}).minWidth; }\r\n set minwidth(value) { this.editorConfig.minWidth = value || '0'; }\r\n\r\n value: any = '';\r\n \r\n onChange: any;\r\n onTouched: any;\r\n focused = false;\r\n id = null;\r\n\r\n editorConfig: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: 'auto',\r\n minHeight: '0',\r\n maxHeight: 'auto',\r\n width: 'auto',\r\n minWidth: '0',\r\n translate: 'yes',\r\n enableToolbar: true,\r\n showToolbar: true,\r\n defaultParagraphSeparator: '',\r\n toolbarPosition: 'top',\r\n sanitize: false,\r\n fonts: [\r\n {class: 'arial', name: 'Arial'},\r\n {class: 'times-new-roman', name: 'Times New Roman'},\r\n {class: 'calibri', name: 'Calibri'},\r\n {class: 'comic-sans-ms', name: 'Comic Sans MS'}\r\n ],\r\n };\r\n\r\n constructor(private _sanitizer: DomSanitizer) {}\r\n\r\n ngOnInit() {\r\n this.id = `editor-${this.getGuid()}`;\r\n }\r\n\r\n ngAfterViewInit() {\r\n var _this = this;\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('focus', () => _this.focused = true);\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('blur', () => _this.focused = false);\r\n document.querySelector(`#${this.id} .angular-editor-textarea`).addEventListener('mouseout', () => _this.editor.editorToolbar['editorService'].saveSelection());\r\n }\r\n\r\n private getGuid() : string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : ( r & 0x3 | 0x8 );\r\n return v.toString(16);\r\n });\r\n }\r\n\r\n onChangeValue() {\r\n if (this.sanitize)\r\n this.value = this._sanitizer.sanitize(SecurityContext.HTML, this.value);\r\n if (this.onChange != null)\r\n this.onChange(this.value);\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n this.value = this.sanitize ? this._sanitizer.sanitize(SecurityContext.HTML, modelValue) : modelValue;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n \r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\n\r\n@Component({\r\n selector: 'info-multi-select',\r\n templateUrl: 'multi-select.component.html',\r\n styleUrls: ['multi-select.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoMultiSelectComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoMultiSelectComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required: any = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n selectedValues: any[] = [];\r\n onChange: any;\r\n onTouched: any;\r\n\r\n private initialized = false;\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData();\r\n }\r\n \r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n \r\n if (this.selectfirst && this.data != null && this.data.length > 0 && !this.data.some(d => this.selectedValues?.indexOf(d.Id) > -1))\r\n this.writeValue([this.data[0].Id]);\r\n \r\n if (this.disablednoregisters)\r\n this.setDisabledState((this.data == null || this.data.length == 0));\r\n }\r\n\r\n constructor(private _dataAcessService: InfoDataService) { }\r\n\r\n ngOnInit() {\r\n this.name += this.placeholder.replace(/ /g, '');\r\n this.getData();\r\n }\r\n\r\n writeValue(value: any): void {\r\n this.selectedValues = value;\r\n this.onChangeValue();\r\n }\r\n\r\n getData() {\r\n this.initialized = true;\r\n \r\n if (this.api == null || (this.params != null && this.params.toLowerCase().indexOf('undefined') > -1))\r\n return;\r\n\r\n this.loading = true;\r\n this.data = [];\r\n \r\n this._dataAcessService.get(this.api, this.method, this.params).subscribe(r => {\r\n if (r.success) {\r\n this.data = r.data;\r\n if ((this.selectedValues || []).length > 0) this.onChangeValue();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.selectedValues);\r\n\r\n if (this.onselecteditem != null)\r\n this.onselecteditem.emit(this.data == null ? null : this.data.filter(r => this.selectedValues?.indexOf(r.Id) > -1));\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = this.disablednoregisters && (this.data == null || this.data.length == 0) ? true : isDisabled;\r\n }\r\n}","import { ENTER } from '@angular/cdk/keycodes';\r\nimport { Component, forwardRef, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-chips',\r\n templateUrl: 'chips.component.html',\r\n providers:[\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoChipsComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoChipsComponent implements ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() readonly: boolean = false;\r\n readonly separatorKeysCodes: number[] = [ENTER];\r\n\r\n @Output() onblur = new EventEmitter();\r\n \r\n values: string[] = [];\r\n onChange: any;\r\n onTouched: any;\r\n\r\n add(event): void {\r\n const input = event.input;\r\n const value = event.value;\r\n\r\n if ((value || '').trim()) this.values.push(value.trim());\r\n if (input) input.value = '';\r\n \r\n this.writeValue(this.values);\r\n }\r\n \r\n remove(index): void {\r\n if (index >= 0) this.values.splice(index, 1);\r\n this.writeValue(this.values);\r\n }\r\n \r\n\r\n onBlur() {\r\n this.onblur.emit(this.values);\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.values);\r\n }\r\n\r\n writeValue(modelValues: any): void {\r\n this.values = modelValues;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { InfoPlatformModel } from \"../../model/platform.model\";\r\nimport { InfoSessionModel } from \"../../model/session.model\";\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoTopbarComponent } from \"../topbar/topbar.component\";\r\n\r\n@Component({\r\n selector: 'info-main',\r\n templateUrl: 'main.component.html',\r\n styleUrls: ['main.component.scss']\r\n})\r\nexport class InfoMainComponent implements OnInit {\r\n\r\n @Input() opened: boolean = false;\r\n @Input() version: string = null;\r\n @Input() messages: any[] = [];\r\n private _themes: any = [];\r\n\r\n @Input() get themes() { return this._themes; }\r\n set themes(value) {\r\n this._themes = value;\r\n this._platform.Themes = this.themes;\r\n\r\n if (this._session.TemaId > 0 && this.setthemeonchangecompany)\r\n this._themeService.setThemeByLoggedCompany();\r\n }\r\n\r\n @Input() languages: any = [];\r\n @Input() profileurl: string = '';\r\n @Input() loginurl: string = 'login';\r\n\r\n @Input() menuapi: any = null;\r\n @Input() menumethod: string = 'GetMenu';\r\n @Input() activemenubyurl: boolean = false;\r\n\r\n @Input() loggeduserapi: any = null;\r\n @Input() loggedusermethod: string = 'GetLoggedUser';\r\n\r\n @Input() notificationapi: any = null;\r\n @Input() notificationgetmethod: string = 'Get';\r\n @Input() notificationpostmethod: string = 'PostNotification';\r\n @Input() notificationverifymethod: string = 'Verify';\r\n @Input() notificationverifyenabled: boolean = true;\r\n \r\n @Input() fastsearchform: any = null;\r\n @Input() fastsearchformwidth: number = 1200;\r\n @Input() fastsearchtitle: string = 'PesquisaRapidaCarteira';\r\n \r\n @Input() setthemeonchangecompany: boolean = false;\r\n\r\n @Input() shortcutapi: any = null;\r\n\r\n @Output() ongetnotification = new EventEmitter();\r\n @Output() onverifynotification = new EventEmitter();\r\n\r\n @ViewChild('topbar') topbar: InfoTopbarComponent;\r\n\r\n constructor(public _platform: InfoPlatformModel, \r\n private _session: InfoSessionModel, \r\n private _router: Router, \r\n private _dataAccessService: InfoDataService, \r\n private _themeService: InfoThemeService,\r\n private _renderer: Renderer2,\r\n private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n //console.log('info-library.main.ngOnInit');\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n\r\n this._platform.Themes = this.themes;\r\n this._platform.ShortcutApi = this.shortcutapi;\r\n\r\n if (localStorage.getItem(this._platform.TokenKey) == null)\r\n this._router.navigateByUrl(this.loginurl);\r\n\r\n else this.getLoggedUser();\r\n\r\n if (document.body.classList.length > 0){\r\n let theme = document.body.classList[0];\r\n \r\n if (document.body.classList[0].indexOf('-theme') < 0 && this._platform.Config.theme != null)\r\n theme = '_' + this._platform.Config.theme + '-theme';\r\n \r\n this._themeService.setTheme(theme);\r\n }\r\n }\r\n\r\n onChangeTopBarState() {\r\n this.opened = !this.opened;\r\n }\r\n\r\n onChangeSideBarState(){\r\n this.topbar.openSidebar();\r\n }\r\n\r\n getLoggedUser() {\r\n if (localStorage.getItem(this._platform.SessionKey) != null)\r\n Object.assign(this._session, JSON.parse(localStorage.getItem(this._platform.SessionKey)));\r\n\r\n if (this._session.UsuarioId != null || this.loggeduserapi == null)\r\n return;\r\n\r\n this._dataAccessService.get(this.loggeduserapi, this.loggedusermethod).subscribe(r => {\r\n if (r.success) {\r\n this._session.UsuarioId = r.data.UsuarioId;\r\n this._session.Usuario = r.data.Usuario;\r\n this._session.Login = r.data.Login;\r\n this._session.Email = r.data.Email;\r\n this._session.Perfil = r.data.Perfil;\r\n this._session.EmpresaId = r.data.EmpresaId;\r\n this._session.TemaId = r.data.TemaId;\r\n this._session.Empresa = r.data.Empresa;\r\n this._session.UltimoAcesso = r.data.UltimoAcesso;\r\n this._session.Master = r.data.Master;\r\n this._session.Clone = r.data.Clone;\r\n this._session.DataMovimentacao = r.data.DataMovimentacao;\r\n this._session.OcultarNomeCliente = r.data.OcultarNomeCliente;\r\n this._session.Empresas = r.data.Empresas;\r\n this._session.Parametros = r.data.Parametros;\r\n this._session.MFA = r.data.MFA;\r\n this._session.TempoInatividade = r.data.TempoInatividade;\r\n this._session.Versao = r.data.Versao;\r\n this.version = r.data.Versao;\r\n\r\n if (this._session.Parametros.some(p => p.Chave == 'DisclaimerGeral'))\r\n this.messages.push(this._session.Parametros.find(p => p.Chave == 'DisclaimerGeral').Valor);\r\n\r\n if (this._session.TemaId != null)\r\n this._themeService.setThemeByLoggedCompany();\r\n }\r\n });\r\n }\r\n\r\n onGetNotificationsTopBar(event) {\r\n this.ongetnotification.emit(event);\r\n }\r\n\r\n onVerifyNotificationsTopBar(event) {\r\n this.onverifynotification.emit(event);\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoLastSearchModel } from '../../model/last-search.model';\r\nimport { InfoSessionModel } from '../../model/session.model';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class InfoSidebarComponent implements OnInit {\r\n\r\n @Input() api: any = null;\r\n @Input() method: string = 'GetMenu';\r\n @Input() activemenubyurl: boolean = false;\r\n @Output() onchangestate = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n menu: any = [];\r\n openSubmenu: string = '';\r\n menuAtivo: string = 'Dashboard';\r\n\r\n constructor(private _dataAcessService: InfoDataService, private _authentication: InfoAuthenticationService, \r\n private _themeService: InfoThemeService, public _session: InfoSessionModel, public _platform: InfoPlatformModel,\r\n private _lastSearch: InfoLastSearchModel, private _router: Router, private _renderer: Renderer2, private _element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n if (!this._authentication.isLogged() || this.api == null)\r\n return;\r\n\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.loading = true;\r\n\r\n this._dataAcessService\r\n .get(this.api, this.method)\r\n .subscribe(r => {\r\n if (r.success){\r\n this.menu = r.data;\r\n this._platform.Menu = r.data;\r\n this._authentication.definePaginaAtiva(this._router.url);\r\n\r\n this.monitorarUrl();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n toggle(e: Event, menuItem: any) {\r\n\r\n e.preventDefault();\r\n\r\n if (!menuItem.Enabled)\r\n return;\r\n\r\n if (!menuItem.Active)\r\n for (let i = 0; i < this.menu.length; i++)\r\n this.menu[i].Active = false;\r\n\r\n menuItem.Active = !menuItem.Active;\r\n }\r\n\r\n access(menu: string){\r\n this.menuAtivo = menu;\r\n this.openSubmenu = '';\r\n \r\n this.resetLastSearch();\r\n }\r\n\r\n monitorarUrl(){\r\n if (this.activemenubyurl){\r\n this.ativarMenu(this._router.url);\r\n\r\n this._router.events.subscribe(e => {\r\n if (e instanceof NavigationStart)\r\n this.ativarMenu(e.url);\r\n });\r\n }\r\n }\r\n\r\n ativarMenu(url: string){\r\n let itemMenu = this.menu.find(m => m.Routing == url);\r\n\r\n if (itemMenu != null)\r\n this.menuAtivo = itemMenu.Title;\r\n }\r\n\r\n toggleSubmenu(menu) {\r\n this.openSubmenu = this.openSubmenu == menu ? '' : menu;\r\n }\r\n\r\n resetLastSearch(){\r\n this._lastSearch.model = null;\r\n this._lastSearch.url = '';\r\n }\r\n\r\n changeSidebar() {\r\n this.onchangestate.emit();\r\n }\r\n\r\n toggleSidebar(){\r\n this._themeService.setMenuMin();\r\n }\r\n}","import { Component, OnInit, Input, Output, EventEmitter, Renderer2, ElementRef } from '@angular/core';\r\nimport { InfoDialogModal } from '../dialog/dialog.component';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { InfoDialogButtons } from '../../enum';\r\nimport { InfoTranslateService } from '../../service/translate.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoNotificationModel } from '../../model/notification.model';\r\nimport { InfoSessionModel } from '../../model/session.model'; \r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\n\r\n@Component({\r\n selector: 'info-topbar',\r\n templateUrl: './topbar.component.html',\r\n styleUrls: ['./topbar.component.scss']\r\n})\r\nexport class InfoTopbarComponent implements OnInit {\r\n @Input() opened: boolean = false;\r\n @Input() languages: any = [];\r\n @Input() themes: any = [];\r\n @Input() notificationapi: any = null;\r\n @Input() notificationgetmethod: string = 'Get';\r\n @Input() notificationpostmethod: string = 'PostNotification';\r\n @Input() notificationverifymethod: string = 'Verify';\r\n @Input() notificationverifyenabled: boolean = true;\r\n @Input() fastsearchform: any = null;\r\n @Input() fastsearchformwidth: number = 1200;\r\n @Input() fastsearchtitle: string = 'PesquisaRapidaCarteira';\r\n @Input() profileurl: string = '';\r\n @Input() setthemeonchangecompany: boolean = false;\r\n @Output() onchangestate = new EventEmitter();\r\n @Output() ongetnotification = new EventEmitter();\r\n @Output() onverifynotification = new EventEmitter();\r\n\r\n modalRef: any = null;\r\n loading: boolean = false;\r\n prodution: boolean = false;\r\n notifications: InfoNotificationModel = new InfoNotificationModel();\r\n\r\n topMenu: any = {\r\n empresa: false,\r\n tema: false,\r\n idioma: false,\r\n notificacao: false,\r\n calendario: false\r\n };\r\n\r\n constructor(private _translateService: InfoTranslateService, \r\n public _authenticationService: InfoAuthenticationService, private _dataService: InfoDataService, \r\n private _themeService: InfoThemeService, private _router: Router, private _dialog: InfoDialogModal, \r\n public _session: InfoSessionModel, public _platform: InfoPlatformModel, private _modal: MatDialog,\r\n private _renderer: Renderer2, private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n \r\n this.prodution = this._platform.Config.production;\r\n this.getNotifications();\r\n }\r\n\r\n setCompany(company) {\r\n this._authenticationService.trocarEmpresa(this._session.Login, company.Id).subscribe(res => {\r\n if (res.success) {\r\n\r\n document.body.setAttribute('loading', 'true');\r\n \r\n this._session.Permissoes = [];\r\n this._session.EmpresaId = company.Id;\r\n this._session.Empresa = company.Nome;\r\n this._session.TemaId = company.TemaId;\r\n this._themeService.setThemeByLoggedCompany();\r\n\r\n localStorage.removeItem(\"Dashboard\");\r\n localStorage.setItem(this._platform.SessionKey, JSON.stringify(this._session));\r\n this._router.navigateByUrl('').then(r => location.reload());\r\n \r\n } else this._authenticationService.logout();\r\n }, err => this._authenticationService.logout());\r\n }\r\n\r\n setLanguage(language: string) {\r\n this._translateService.set(language);\r\n }\r\n\r\n setTheme(theme) {\r\n //console.log('topbar.setTheme', theme);\r\n this._themeService.setTheme(theme);\r\n }\r\n\r\n toggleMode(){\r\n this._themeService.setModePrime();\r\n }\r\n\r\n openFastSearch() {\r\n this.close();\r\n\r\n if (this.modalRef != null) \r\n return;\r\n\r\n this.modalRef = this._modal.open(this.fastsearchform, {\r\n disableClose: true,\r\n width: this.fastsearchformwidth + 'px'\r\n });\r\n\r\n this.modalRef.keydownEvents().subscribe(r => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n this.modalRef.close();\r\n });\r\n\r\n this.modalRef.afterClosed().subscribe(r => { this.modalRef = null });\r\n }\r\n\r\n open(achtiveMenu) {\r\n this.topMenu.empresa = achtiveMenu == 'empresa';\r\n this.topMenu.tema = achtiveMenu == 'tema';\r\n this.topMenu.idioma = achtiveMenu == 'idioma';\r\n this.topMenu.notificacao = achtiveMenu == 'notificacao';\r\n this.topMenu.calendario = achtiveMenu == 'calendario';\r\n }\r\n\r\n close() {\r\n this.topMenu.empresa = false;\r\n this.topMenu.tema = false;\r\n this.topMenu.idioma = false;\r\n this.topMenu.notificacao = false;\r\n this.topMenu.calendario = false;\r\n }\r\n\r\n openSidebar() {\r\n this.opened = !this.opened;\r\n this.onchangestate.emit();\r\n }\r\n\r\n getNotifications() {\r\n if (!this._authenticationService.isLogged() || this.notificationapi == null)\r\n return;\r\n\r\n this._dataService.get(this.notificationapi, this.notificationgetmethod, null).subscribe(r => {\r\n if (r.success) {\r\n this.notifications.Count = r.data.Count;\r\n this.notifications.Itens = r.data.Itens;\r\n\r\n if (this.notificationverifyenabled)\r\n this.verifyNotifications();\r\n\r\n this.ongetnotification.emit(this.notifications);\r\n }\r\n });\r\n }\r\n\r\n verifyNotifications() {\r\n if (!this._authenticationService.isLogged() || this.notificationapi == null)\r\n return;\r\n\r\n this._dataService.get(this.notificationapi, this.notificationverifymethod).subscribe(r => {\r\n if (r.data == -1)\r\n this.logout();\r\n\r\n else if (this.notifications.Count == r.data)\r\n setTimeout(() => { this.verifyNotifications(); }, 15000);\r\n\r\n else this.getNotifications();\r\n\r\n this.onverifynotification.emit({...this.notifications, VerifyCount: r.data});\r\n });\r\n }\r\n\r\n setNotificationStatus(read, access, remove) {\r\n if (this.notifications.Count == 0) return;\r\n\r\n this._dataService.post(this.notificationapi, { Id: '00000000-0000-0000-0000-000000000000', Acesso: access, Leitura: read, Exclusao: remove }, this.notificationpostmethod)\r\n .subscribe(r => this.notifications.Count = 0);\r\n }\r\n\r\n navigate(url: string) {\r\n this._router.navigate([url.replace('/#', '')]);\r\n }\r\n\r\n logout() {\r\n this._dialog.YesOrNo('DesejaRealmenteSair').subscribe(r => {\r\n if (r.button == InfoDialogButtons.Yes)\r\n this._authenticationService.logout();\r\n });\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoLastSearchModel } from '../../model/last-search.model';\r\nimport { InfoSessionModel } from '../../model/session.model';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-topmenu',\r\n templateUrl: './topmenu.component.html',\r\n styleUrls: ['./topmenu.component.scss']\r\n})\r\nexport class InfoTopMenuComponent implements OnInit {\r\n \r\n @Input() api: any = null;\r\n @Input() method: string = 'GetMenu';\r\n @Output() onchangestate = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n menu: any = [];\r\n openSubmenu: string = '';\r\n menuAtivo: string = 'Dashboard';\r\n\r\n constructor(private _dataAcessService: InfoDataService, private _authentication: InfoAuthenticationService, \r\n private _lastSearch: InfoLastSearchModel, private _router: Router, \r\n public _session: InfoSessionModel, public _platform: InfoPlatformModel,\r\n private _renderer: Renderer2, private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n if (!this._authentication.isLogged() || this.api == null)\r\n return;\r\n\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.loading = true;\r\n\r\n this._dataAcessService\r\n .get(this.api, this.method)\r\n .subscribe(r => {\r\n if (r.success){\r\n this.menu = r.data;\r\n this._platform.Menu = r.data;\r\n this._authentication.definePaginaAtiva(this._router.url);\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n toggle(e: Event, menuItem: any) {\r\n\r\n e.preventDefault();\r\n\r\n if (!menuItem.Enabled)\r\n return;\r\n\r\n if (!menuItem.Active)\r\n for (let i = 0; i < this.menu.length; i++)\r\n this.menu[i].Active = false;\r\n\r\n menuItem.Active = !menuItem.Active;\r\n }\r\n\r\n access(menu: string){\r\n this.menuAtivo = menu;\r\n this.openSubmenu = '';\r\n \r\n this.resetLastSearch();\r\n }\r\n\r\n toggleSubmenu(menu) {\r\n this.openSubmenu = this.openSubmenu == menu ? '' : menu;\r\n }\r\n\r\n resetLastSearch(){\r\n this._lastSearch.model = null;\r\n this._lastSearch.url = '';\r\n }\r\n\r\n changeSidebar() {\r\n this.onchangestate.emit();\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'info-loading',\r\n template: `\r\n <section class=\"loading-bar\">\r\n <mat-progress-bar [color]=\"color\" [mode]=\"mode\" *ngIf=\"enabled\" >\r\n </mat-progress-bar>\r\n </section>\r\n `,\r\n styles: [`\r\n .loading-bar { height: 1px; }\r\n .loading-bar .mat-progress-bar { height: 1px; margin: 0; }\r\n `]\r\n})\r\nexport class InfoLoadingComponent{\r\n\r\n @Input() enabled: boolean = false;\r\n @Input() mode: string = 'indeterminate';\r\n @Input() color: string = 'primary';\r\n\r\n}","import { Component, Input, Output, EventEmitter, forwardRef, Inject } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoFormPropModel } from '../../model/form-prop.model';\r\nimport { InfoModalAction } from '../../enum/modal-action.enum';\r\n\r\n@Component({\r\n selector: 'info-modal',\r\n templateUrl: './modal.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoModalComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoModalComponent implements ControlValueAccessor {\r\n\r\n @Input() modaltitle: string = '';\r\n @Input() showcloseicon: boolean = false;\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n @Input() readonly: boolean = null;\r\n @Input() loading: boolean = false;\r\n @Input() loadingblock: boolean = true;\r\n @Input() form: any = null;\r\n @Input() labelclose: string = 'Fechar';\r\n @Input() labelcancel: string = 'Cancelar';\r\n @Input() labelsubmit: string = 'Salvar';\r\n @Input() messages: String[] = [];\r\n @Input() width: number = null;\r\n\r\n @Output() onsave = new EventEmitter();\r\n @Output() onsuccess = new EventEmitter();\r\n\r\n model: any;\r\n onChange: any;\r\n onTouched: any;\r\n\r\n constructor(private _dataAccessService: InfoDataService, @Inject(MAT_DIALOG_DATA) public prop: InfoFormPropModel, private _ref: MatDialogRef<any>) { }\r\n\r\n ngOnInit() {\r\n\r\n if (this.modaltitle == '' && this.prop != null && this.prop.title != null)\r\n this.modaltitle = this.prop.title;\r\n\r\n if (this.api == null && this.prop != null && this.prop.api != null)\r\n this.api = this.prop.api;\r\n\r\n if (this.width != null)\r\n this._ref.updateSize(this.width.toString().replace('px', '') + 'px');\r\n\r\n if (this.readonly == null && this.prop != null && this.prop.readonly != null)\r\n this.readonly = this.prop.readonly;\r\n\r\n this._ref.keydownEvents().subscribe((r) => {\r\n if (r.ctrlKey && r.key == \"Enter\" && !(this.loading || (this.form != null && !this.form.form.valid)) && this.labelsubmit != '' && !this.readonly)\r\n this.submit();\r\n });\r\n }\r\n\r\n submit() {\r\n if (this.onsave.observers.length > 0) {\r\n this.onsave.next();\r\n return;\r\n }\r\n\r\n this.messages = [];\r\n \r\n if (this.api == null || this.api.toString() == '')\r\n this.messages.push('API não informado');\r\n\r\n var dataInicial = this.model[\"DataInicial\"];\r\n var dataFinal = this.model[\"DataFinal\"];\r\n if (dataInicial != null && dataFinal != null && new Date(dataInicial) > new Date(dataFinal)) {\r\n this.messages.push('DataInicialMaiorFinal');\r\n return;\r\n }\r\n\r\n var dataInicio = this.model[\"DataInicio\"];\r\n var dataFim = this.model[\"DataFim\"];\r\n if (dataInicio != null && dataFim != null && new Date(dataInicio) > new Date(dataFim)) {\r\n this.messages.push('DataInicioMaiorFim');\r\n return;\r\n }\r\n\r\n if (this.messages.length > 0)\r\n return;\r\n\r\n this.loading = true;\r\n\r\n this._dataAccessService\r\n .post(this.api, this.model, this.method)\r\n .subscribe(r => {\r\n\r\n if (r.success) {\r\n this.prop.modalAction = InfoModalAction.Save;\r\n this.prop.data = this.model;\r\n this._ref.close(this.prop);\r\n\r\n if (this.onsuccess.observers.length > 0)\r\n this.onsuccess.next();\r\n }\r\n\r\n else this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n close() {\r\n this.messages = [];\r\n this.loading = false;\r\n this._ref.close(this.prop);\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.model = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void { }\r\n}\r\n","import { Component, Input, Inject, ElementRef, Renderer2 } from '@angular/core';\r\nimport { Router, NavigationStart, GuardsCheckStart, NavigationEnd } from '@angular/router';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoTranslateService } from '../../service/translate.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { InfoFormPropModel } from '../../model/form-prop.model';\r\nimport { InfoPageAction } from '../../enum/page-action.enum';\r\nimport { InfoModalAction } from '../../enum/modal-action.enum';\r\n\r\n@Component({\r\n\tselector: 'info-pagebar',\r\n\ttemplateUrl: './pagebar.component.html',\r\n\tstyleUrls: ['./pagebar.component.scss']\r\n})\r\nexport class InfoPagebarComponent {\r\n\r\n\t@Input() margintop = 0;\r\n\t@Input() icon: string;\r\n\t@Input() description: string;\r\n\t@Input() backurl: string = null;\r\n\t@Input() access: any = [];\r\n\t@Input() transparent: boolean = false;\r\n\r\n\tprivate _pageTitle: string;\r\n\tget pagetitle(){\r\n\t\treturn this._pageTitle;\r\n\t}\r\n\r\n\t@Input('pagetitle') set pagetitle(value: string){ \r\n\t\tthis._pageTitle = value.replace(/\\(/g, '<small>(').replace(/\\)/g, ')</small>');\r\n\t}\r\n\r\n\tloading = false;\r\n\tatalhoId: any = null;\r\n\tpodeCriarAtalho = false;\r\n\texibirAcessos = false;\r\n\r\n\tconstructor(private _router: Router,\r\n\t\t\t\tprivate _modal: MatDialog,\r\n\t\t\t\tprivate _dataService: InfoDataService,\r\n\t\t\t\tprivate _translate: InfoTranslateService,\r\n\t\t\t\tpublic _platform: InfoPlatformModel,\r\n\t\t\t\tprivate _renderer: Renderer2, private _element: ElementRef) { \r\n\t\t_router.events.subscribe(e => {\r\n if (e instanceof NavigationStart || e instanceof GuardsCheckStart)\r\n\t\t\t\tsetTimeout(() => this.loading = true, 0);\r\n\t\t\t\r\n\t\t\telse setTimeout(() => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (e instanceof NavigationEnd) {\r\n\t\t\t\t\tthis.podeCriarAtalho = !!this._platform.ShortcutApi && this._router.url != '/';\r\n\t\t\t\t\tthis.getAtalho();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n });\r\n\t}\r\n\r\n\tngOnInit(){\r\n\t\tthis._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n\t}\r\n\r\n\tgoBack(){\r\n\t\tthis._router.navigateByUrl(this.backurl);\r\n\t}\r\n\r\n\tgetAtalho() {\r\n\t\tif (!this.podeCriarAtalho)\r\n\t\t\treturn;\r\n\t\tthis.loading = true;\r\n\t\tthis._dataService.get(this._platform.ShortcutApi, 'GetByUrl', 'url='+this._router.url).subscribe(r => {\r\n\t\t\tthis.loading = false;\r\n\t\t\tif (r.success) this.atalhoId = (r.data || {}).Id;\r\n\t\t});\r\n\t}\r\n\r\n\ttoggleAtalho() {\r\n\t\tif (this.atalhoId) {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis._dataService.delete(this._platform.ShortcutApi, this.atalhoId).subscribe(r => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (r.success) this.atalhoId = null;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis.openModalAtalho().subscribe((r: InfoFormPropModel) => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (r && r.modalAction == InfoModalAction.Save) this.getAtalho();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate openModalAtalho() {\r\n\t\tvar prop = new InfoFormPropModel();\r\n\t\tprop.api = this._platform.ShortcutApi;\r\n\t\tprop.set(InfoPageAction.New, { \r\n\t\t\tId: this.atalhoId,\r\n\t\t\tUrl: this._router.url,\r\n\t\t\tTitulo: `${this._translate.translate(this._platform.PaginaAtiva.Titulo)} / ${this._translate.translate(this.pagetitle)}`\r\n\t\t});\r\n\r\n\t\tlet ref = this._modal.open(AtalhoModalComponent, {\r\n data: prop,\r\n\t\t\tdisableClose: true,\r\n\t\t\twidth: '400px'\r\n\t\t});\r\n\t\t\r\n\t\tref.keydownEvents().subscribe((r) => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n ref.close();\r\n });\r\n\r\n return ref.afterClosed();\r\n\t}\r\n}\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"CriarAcessoRapido\" [form]=\"formModal\" [(ngModel)]=\"model\">\r\n\t\t\t<form autocomplete=\"off\" #formModal=\"ngForm\">\r\n\t\t\t\t<div class=\"row\"> \r\n\t\t\t\t\t<info-input class=\"col-md-12\" [(ngModel)]=\"model.Titulo\" placeholder=\"Titulo\" name=\"Titulo\" required></info-input>\r\n\t\t\t\t</div>\r\n\t\t\t</form>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class AtalhoModalComponent {\r\n\tmodel: any = {};\r\n\tconstructor(@Inject(MAT_DIALOG_DATA) public prop: InfoFormPropModel) {\r\n\t\tthis.model = Object.assign({}, prop.data);\r\n\t\tthis.model.Id = this.model.Id || '00000000-0000-0000-0000-000000000000';\r\n\t}\r\n}","import { Directive, ElementRef, Renderer2, Input, forwardRef, Inject, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'\r\nimport { createTextMaskInputElement } from 'text-mask-core/dist/textMaskCore'\r\nimport emailMask from 'text-mask-addons/dist/emailMask';\r\nimport createAutoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe';\r\n\r\n@Directive({\r\n host: {\r\n '(input)': 'onInput($event.target.value)',\r\n '(blur)': '_onTouched()'\r\n },\r\n selector: '[setmask]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoMaskDirective),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoMaskDirective implements ControlValueAccessor, OnChanges {\r\n private maskInputElement: any\r\n private inputElement: HTMLInputElement\r\n\r\n private lastValue: any\r\n private mask: any\r\n\r\n @Input('setmask') maskType: any\r\n\r\n _onTouched = () => { }\r\n _onChange = (_: any) => { }\r\n\r\n constructor(@Inject(Renderer2) private renderer: Renderer2, @Inject(ElementRef) private element: ElementRef) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setupMask(true);\r\n\r\n if (this.maskInputElement !== undefined)\r\n this.maskInputElement.update(this.inputElement.value)\r\n }\r\n\r\n writeValue(value: any) {\r\n this.setupMask()\r\n\r\n const normalizedValue = value == null ? '' : value\r\n this.renderer.setProperty(this.inputElement, 'value', normalizedValue)\r\n\r\n if (this.maskInputElement !== undefined) {\r\n this.maskInputElement.update(value)\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: any) => any): void { this._onChange = fn }\r\n\r\n registerOnTouched(fn: () => any): void { this._onTouched = fn }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.renderer.setProperty(this.element.nativeElement, 'disabled', isDisabled)\r\n }\r\n\r\n onInput(value) {\r\n this.setupMask()\r\n\r\n if (this.maskInputElement !== undefined) {\r\n this.maskInputElement.update(value)\r\n\r\n value = this.inputElement.value\r\n\r\n if (this.lastValue !== value) {\r\n this.lastValue = value\r\n this._onChange(value)\r\n }\r\n }\r\n }\r\n\r\n private setupMask(create = false) {\r\n if (!this.inputElement) {\r\n if (this.element.nativeElement.tagName === 'INPUT')\r\n this.inputElement = this.element.nativeElement;\r\n\r\n else this.inputElement = this.element.nativeElement.getElementsByTagName('INPUT')[0];\r\n }\r\n\r\n if (this.inputElement && create) {\r\n\r\n let pipe = undefined;\r\n\r\n if (this.maskType == 'email')\r\n this.mask = emailMask;\r\n \r\n else if (this.maskType == 'phone')\r\n this.mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n \r\n else if (this.maskType == 'cel')\r\n this.mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n\r\n else if (this.maskType == 'cep')\r\n this.mask = [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/];\r\n \r\n else if (this.maskType == 'date') {\r\n pipe = createAutoCorrectedDatePipe('dd/mm/yyyy');\r\n this.mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'datemonth') {\r\n pipe = createAutoCorrectedDatePipe('mm/yyyy');\r\n this.mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'time') {\r\n pipe = createAutoCorrectedDatePipe('HH:MM');\r\n this.mask = [/\\d/, /\\d/, ':', /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'cpf')\r\n this.mask = [/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n\r\n else if (this.maskType == 'cnpj')\r\n this.mask = [/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'/',/\\d/,/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n\r\n else this.mask = [];\r\n\r\n let maskConfig = {\r\n mask: this.mask,\r\n guide: true,\r\n placeholderChar: '_',\r\n pipe: pipe,\r\n modelClean: true,\r\n keepCharPositions: false,\r\n };\r\n\r\n this.maskInputElement = createTextMaskInputElement(\r\n Object.assign({ inputElement: this.inputElement }, maskConfig)\r\n )\r\n }\r\n\r\n }\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[unmask]'\r\n})\r\nexport class InfoUnmaskDirective {\r\n\r\n constructor(private elementRef: ElementRef, private model: NgControl) { }\r\n\r\n @HostListener('input') inputChange() {\r\n const newValue = this.elementRef.nativeElement.value.replace(/\\D/g, '')\r\n this.model.control.setValue(newValue);\r\n }\r\n}","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\r\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\n\r\nimport { InfoTranslatePipe } from './pipe/translate.pipe';\r\nimport { InfoMaskPipe } from './pipe/mask.pipe';\r\nimport { InfoMaskDirective } from './directives/mask.directive';\r\nimport { InfoUnmaskDirective } from './directives/unmask.directive';\r\n\r\n// Controls\r\nimport { InfoAlertComponent } from './controls/alert/alert.component';\r\nimport { InfoAutoCompleteComponent } from './controls/autocomplete/autocomplete.component';\r\nimport { InfoBigCheckboxComponent } from './controls/big-checkbox/big-checkbox.component';\r\nimport { InfoCardComponent } from './controls/card/card.component';\r\nimport { InfoMenuCardComponent } from './controls/card-menu/card-menu.component';\r\nimport { InfoCheckboxComponent } from './controls/checkbox/checkbox.component';\r\nimport { InfoDateComponent } from './controls/date/date.component';\r\nimport { InfoDateMonthComponent } from './controls/date-month/date-month.component';\r\nimport { InfoGridComponent } from './controls/grid/grid.component';\r\nimport { InfoInputComponent } from './controls/input/input.component';\r\nimport { InfoInputListComponent } from './controls/input-list/input-list.component';\r\nimport { InfoListCheckboxComponent } from './controls/list-checkbox/list-checkbox.component';\r\nimport { InfoMessageComponent } from './controls/message/message.component';\r\nimport { InfoPaginatorComponent } from './controls/paginator/paginator.component';\r\nimport { InfoSelectComponent } from './controls/select/select.component';\r\nimport { InfoTimelineComponent } from './controls/timeline/timeline.component';\r\nimport { InfoEditorComponent } from './controls/editor/editor.component';\r\nimport { InfoMultiSelectComponent } from './controls/multi-select/multi-select.component';\r\nimport { InfoChipsComponent } from './controls/chips/chips.component';\r\n\r\n// Layouts\r\nimport { InfoDialogComponent } from './layouts/dialog/dialog.component';\r\nimport { InfoLoadingComponent } from './layouts/loading/loading.component';\r\nimport { InfoMainComponent } from './layouts/main/main.component';\r\nimport { InfoModalComponent } from './layouts/modal/modal.component';\r\nimport { InfoPagebarComponent, AtalhoModalComponent } from './layouts/pagebar/pagebar.component';\r\nimport { InfoSidebarComponent } from './layouts/sidebar/sidebar.component';\r\nimport { InfoTopbarComponent } from './layouts/topbar/topbar.component';\r\nimport { RefreshSessionTimeModalComponent } from './service/authentication.service';\r\nimport { InfoTopMenuComponent } from './layouts/topmenu/topmenu.component';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tHttpClientModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatCardModule,\r\n\t\tMatIconModule,\r\n\t\tMatInputModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatListModule,\r\n\t\tMatSelectModule,\r\n\t\tMatCheckboxModule,\r\n\t\tMatRadioModule,\r\n\t\tMatButtonModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatMomentDateModule,\r\n\t\tMatDialogModule,\r\n\t\tMatProgressBarModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tMatTooltipModule,\r\n\t\tRouterModule,\r\n\t\tCurrencyMaskModule,\r\n\t\tAngularEditorModule,\r\n\t\tMatChipsModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tInfoTranslatePipe,\r\n\t\tInfoMaskPipe,\r\n\r\n\t\tInfoMaskDirective,\r\n\t\tInfoUnmaskDirective,\r\n\r\n\t\tInfoAlertComponent,\r\n\t\tInfoAutoCompleteComponent,\r\n\t\tInfoBigCheckboxComponent,\r\n\t\tInfoCardComponent,\r\n\t\tInfoMenuCardComponent,\r\n\t\tInfoCheckboxComponent,\r\n\t\tInfoDateComponent,\r\n\t\tInfoDateMonthComponent,\r\n\t\tInfoGridComponent,\r\n\t\tInfoInputComponent,\r\n\t\tInfoInputListComponent,\r\n\t\tInfoListCheckboxComponent,\r\n\t\tInfoMessageComponent,\r\n\t\tInfoPaginatorComponent,\r\n\t\tInfoSelectComponent,\r\n\t\tInfoTimelineComponent,\r\n\t\tInfoEditorComponent,\r\n\t\tInfoMultiSelectComponent,\r\n\t\tInfoChipsComponent,\r\n\r\n\t\tInfoDialogComponent,\r\n\t\tInfoLoadingComponent,\r\n\t\tInfoMainComponent,\r\n\t\tInfoModalComponent,\r\n\t\tInfoPagebarComponent,\r\n\t\tInfoSidebarComponent,\r\n\t\tInfoTopbarComponent,\r\n\t\tInfoTopMenuComponent,\r\n\t\tAtalhoModalComponent,\r\n\t\tRefreshSessionTimeModalComponent,\r\n\t],\r\n\texports: [\r\n\t\tInfoTranslatePipe,\r\n\t\tInfoMaskPipe,\r\n\r\n\t\tInfoAlertComponent,\r\n\t\tInfoAutoCompleteComponent,\r\n\t\tInfoBigCheckboxComponent,\r\n\t\tInfoCardComponent,\r\n\t\tInfoMenuCardComponent,\r\n\t\tInfoCheckboxComponent,\r\n\t\tInfoDateComponent,\r\n\t\tInfoDateMonthComponent,\r\n\t\tInfoGridComponent,\r\n\t\tInfoInputComponent,\r\n\t\tInfoInputListComponent,\r\n\t\tInfoListCheckboxComponent,\r\n\t\tInfoMessageComponent,\r\n\t\tInfoPaginatorComponent,\r\n\t\tInfoSelectComponent,\r\n\t\tInfoTimelineComponent,\r\n\t\tInfoEditorComponent,\r\n\t\tInfoMultiSelectComponent,\r\n\t\tInfoChipsComponent,\r\n\r\n\t\tInfoDialogComponent,\r\n\t\tInfoLoadingComponent,\r\n\t\tInfoMainComponent,\r\n\t\tInfoModalComponent,\r\n\t\tInfoPagebarComponent,\r\n\t\tInfoSidebarComponent,\r\n\t\tInfoTopbarComponent,\r\n\t\tInfoTopMenuComponent,\r\n\t],\r\n\tschemas: [\r\n\t\tCUSTOM_ELEMENTS_SCHEMA\r\n\t],\r\n\tentryComponents: [\r\n\t\tInfoDialogComponent,\r\n\t\tAtalhoModalComponent,\r\n\t\tRefreshSessionTimeModalComponent\r\n\t]\r\n})\r\nexport class InfoLibraryModule { }"]}
|
|
1
|
+
{"version":3,"sources":["../../../projects/info-library/src/global-config.ts","../../../projects/info-library/src/model/app-config.model.ts","../../../projects/info-library/src/model/data-access.model.ts","../../../projects/info-library/src/model/dialog-result.model.ts","../../../projects/info-library/src/model/dialog.model.ts","../../../projects/info-library/src/enum/page-action.enum.ts","../../../projects/info-library/src/enum/modal-action.enum.ts","../../../projects/info-library/src/model/form-prop.model.ts","../../../projects/info-library/src/model/grid-button.model.ts","../../../projects/info-library/src/model/method-grid-button.model.ts","../../../projects/info-library/src/model/last-search.model.ts","../../../projects/info-library/src/model/login.model.ts","../../../projects/info-library/src/model/pagebar-buttons.model.ts","../../../projects/info-library/src/model/permission.model.ts","../../../projects/info-library/src/model/platform.model.ts","../../../projects/info-library/src/model/session.model.ts","../../../projects/info-library/src/model/notification.model.ts","../../../projects/info-library/src/enum/dialog-buttons.enum.ts","../../../projects/info-library/src/service/translate.service.ts","../../../projects/info-library/src/pipe/translate.pipe.ts","../../../projects/info-library/src/pipe/mask.pipe.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/info-library/src/service/data.service.ts","../../../projects/info-library/src/service/authentication.service.ts","../../../projects/info-library/src/service/theme.service.ts","../../../projects/info-library/src/service/configuration.service.ts","../../../projects/info-library/src/controls/alert/alert.component.ts","../../../projects/info-library/src/controls/autocomplete/autocomplete.component.ts","../../../projects/info-library/src/controls/big-checkbox/big-checkbox.component.ts","../../../projects/info-library/src/controls/card/card.component.ts","../../../projects/info-library/src/controls/card-menu/card-menu.component.ts","../../../projects/info-library/src/controls/checkbox/checkbox.component.ts","../../../projects/info-library/src/controls/date/date.component.ts","../../../projects/info-library/src/controls/date-month/date-month.component.ts","../../../projects/info-library/src/layouts/dialog/dialog.component.ts","../../../projects/info-library/src/controls/grid/grid.component.ts","../../../projects/info-library/src/controls/input/input.component.ts","../../../projects/info-library/src/controls/input-list/input-list.component.ts","../../../projects/info-library/src/controls/list-checkbox/list-checkbox.component.ts","../../../projects/info-library/src/controls/message/message.component.ts","../../../projects/info-library/src/controls/paginator/paginator.component.ts","../../../projects/info-library/src/controls/select/select.component.ts","../../../projects/info-library/src/controls/timeline/timeline.component.ts","../../../projects/info-library/src/controls/editor/editor.component.ts","../../../projects/info-library/src/controls/multi-select/multi-select.component.ts","../../../projects/info-library/src/controls/chips/chips.component.ts","../../../projects/info-library/src/layouts/main/main.component.ts","../../../projects/info-library/src/layouts/sidebar/sidebar.component.ts","../../../projects/info-library/src/layouts/topbar/topbar.component.ts","../../../projects/info-library/src/layouts/topmenu/topmenu.component.ts","../../../projects/info-library/src/layouts/loading/loading.component.ts","../../../projects/info-library/src/layouts/modal/modal.component.ts","../../../projects/info-library/src/layouts/pagebar/pagebar.component.ts","../../../projects/info-library/src/directives/mask.directive.ts","../../../projects/info-library/src/directives/unmask.directive.ts","../../../projects/info-library/src/info-library.module.ts"],"names":["DICTIONARIES_CONFIG","InjectionToken","APICONTROLLER_CONFIG","this","production","webapiUrl","processingUrl","theme","dictionary","ux","style","topMenu","enabledPrime","data","success","messages","name","description","total","parentId","referenceGuid","external","Name","Description","Total","Success","Messages","ParentId","ReferenceGuid","External","Data","Array","button","yesOrNo","message","width","labelOk","labelCancel","labelAux","colorOk","colorCancel","colorAux","processingMode","disableButtonCancel","InfoPageAction","None","View","New","Edit","Delete","Search","InfoModalAction","Ok","Yes","No","Cancel","Save","Special","Aux","InfoFormPropModel","modalAction","modalComponent","api","prototype","set","pageAction","readonly","title","label","passId","icon","navigateTo","widthModalComponent","method","disabledField","confirm","showOnlyClass","url","model","index","enabledSearch","modal","modalwidth","InfoPlatformModel","TokenKey","SessionKey","ConfigIsNull","Themes","Config","InfoAppConfigModel","UnificarTopbar","MenuMin","ModoPrime","PaginaLimpa","Menu","ShortcutApi","setConfig","config","Permissoes","Empresas","Parametros","Count","Itens","InfoDialogButtons","InfoTranslateService","_translations","_plataforma","_key","lang","localStorage","getItem","_currentLang","Object","defineProperty","setItem","translate","key","translation","currentLang","Values","getCalendar","Calendar","instant","Injectable","args","providedIn","Inject","InfoTranslatePipe","_translate","transform","value","Pipe","pure","InfoMaskPipe","mask","from","map","c","conformToMask","guide","conformedValue","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","create","__values","o","s","m","i","InfoDataService","_apiController","_http","_router","getToken","token","navigateByUrl","getHeaderToken","HttpHeaders","getAPIUrl","controller","toString","replace","toLowerCase","getNoToken","param","_this","get","pipe","r","InfoDataAccessModel","catchError","errorHandling","headers","getById","id","postNoToken","post","delete","undefined","alert","deleteByModel","httpOptions","request","formData","FormData","append","redirect","status","document","location","href","of","HttpClient","Router","InfoAuthenticationService","_sessao","_dataService","_modal","_keySessao","_sessionActive","getSessao","getPlatform","canActivate","activatedRouteSnapshot","routerStateSnapshot","isLogged","logout","setTimeout","refreshSessionTime","definePaginaAtiva","getPermission","hasPermission","indexOf","paramMap","error","switchMap","res","permissao","params","RegExp","p","toPromise","_a","clearInterval","_sessionTimeInterval","TempoInatividade","tempoSessao","Date","valueOf","setInterval","tempoRestante","Math","round","parseInt","isNaN","showMessage","open","RefreshSessionTimeModalComponent","disableClose","afterClosed","subscribe","login","usuario","senha","reCaptchaToken","codigo2FA","removeSessao","Usuario","Senha","ReCaptchaToken","Codigo2FA","Token","InfoLoginModel","trocarEmpresa","empresaId","EmpresaId","clonar","reload","getPermissions","logAtividade","setTrocaSenha","setRecuperarSenha","setResetarSenha","getLoginResources","keyFunction","urlGenerica","getUrlGenerica","some","URL","ChaveFuncionalidade","Acesso","validaSessao","ret","Observable","observer","complete","forEach","item","filter","JSON","stringify","keys","includes","aux","substring","split","tituloMenu","PaginaAtiva","Icone","Titulo","Title","Icon","retorno","urlParts","parseFloat","isGuid","error_description","match","InfoSessionModel","MatDialog","_ref","time","ngOnInit","interval","ativo","close","Component","template","MatDialogRef","InfoThemeService","_overlay","_plataform","_session","setTheme","find","unificarTopbar","getContainerElement","classList","themeClassesToRemove","remove","removeAttribute","add","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","themesClassToRemove","themesClassToRemove_1","themesClassToRemove_1_1","themeToRemove","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","cssFile","createElement","type","rel","head","appendChild","cssClient","InfoAlertComponent","onClose","selector","Input","InfoAutoCompleteComponent","_dataAcess","control","FormControl","placeholder","required","selectfirst","disablednoregisters","getdataonchange","getdataonchangetime","maxlist","startwith","minchar","onselecteditem","EventEmitter","selectedValue","initialized","_loading","_params","_disabled","_data","setDisabledState","loading","getData","a","disable","enable","writeValue","Id","floor","random","valueChanges","debounceTime","distinctUntilChanged","options","filterValue","Nome","option","slice","parameters","charAt","toUpperCase","reduce","b","assign","onBlur","trim","first","onFocus","setValue","displayFn","indexSmall","obj","onChange","emit","registerOnChange","fn","registerOnTouched","onTouched","isDisabled","disabled","providers","provide","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","Output","InfoBigCheckboxComponent","preload","enabledcheckall","labelselectall","labelsearch","max","submessage","_paramsmodel","paramsmodel","loadByParamModel","load","paramModel","getModel","getFilteredData","d","existData","Descricao","Selecionado","selectAll","removeItems","splice","InfoCardComponent","onclick","onCardClick","InfoMenuCardComponent","menu","cols","loadinit","menuRows","col","colClass","permission","numberItensRow","ceil","InfoCheckboxComponent","min","checkboxValue","true","false","onChangeValue","customType","Number","modelValue","PT_BR_DATE_FORMATS","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","InfoDateComponent","minDate","maxDate","datefilter","dateclass","ngAfterViewInit","placeholderChar","createAutoCorrectedDatePipe","modelClean","keepCharPositions","dateMask","createTextMaskInputElement","inputElement","input","nativeElement","onInputDate","update","dateValue","moment","isBefore","isAfter","setMinutes","getMinutes","getTimezoneOffset","getFullYear","getMonth","getDate","onKeyPress","keyCode","MAT_DATE_LOCALE","useValue","DateAdapter","useClass","MomentDateAdapter","deps","MAT_DATE_FORMATS","MAT_MOMENT_DATE_ADAPTER_OPTIONS","useUtc","ViewChild","static","PT_BR_DATE_MONTH_FORMATS","InfoDateMonthComponent","changeonlyonmonth","chosenYearHandler","year","chosenMonthHandler","datepicker","month","InfoDialogModal","dialog","InfoDialogModel","InfoDialogComponent","YesOrNo","Confirm","Custom","Processing","ref","onclickCancel","InfoDialogResult","onclickOk","onclickAux","decorators","MAT_DIALOG_DATA","InfoGridComponent","_dialog","_platform","_prop","_dataAccessService","_activatedRoute","_authenticationService","_changeDetectorRef","_lastSearch","_renderer","_element","pagetitle","prefixtitle","pagebarbuttons","fullarea","form","parent","apidownload","methoddownload","backurl","newurl","newlabel","editurl","viewurl","templateurl","paged","size","autorefresh","enablednew","enablededit","enableddelete","enabledview","enabledcancelsearch","enableddetail","enabledclassicons","enabledclickaccess","enabledclickevent","searchopened","searchonlyonebutton","disablesearchlast","statictitle","disabledcol","accessicon","loadoninit","searchmodel","onbeforesearch","onloadcomplete","onclosemodal","onnew","onedit","onview","ondelete","customdelete","dynamiccols","buttons","searchbuttons","showmessageerror","defaultnewobject","resultTitle","searchModelReset","showPagebar","hasPermissionNew","hasPermissionEdit","hasPermissionDelete","tableHeight","pagebarTitle","icons","colunasItens","colunasHeaders","colunasType","colunasWidth","colunasTranslate","currentUrl","parentIdUrlChange","parentIdUrlValue","_cols","setColumns","snapshot","addClass","setPagebarTitle","formModel","formSearch","toArray","addControl","paginator","hideLoad","registro","column","header","dados","parts","headerInfo","navigate","openCustomModal","openModal","getSearch","getPaged","getAll","getByParentId","getDataReturn","Index","Size","dataInicial","dataFinal","dataInicio","dataFim","refreshPaginator","parentIdUrl","refresh","fillIcons","changePage","cancelSearch","search","detail","access","edit","view","observers","icone","Tooltip","Principal","index_1","element","element_1","info","back","keydownEvents","detectChanges","download","arquivoId","binaryString","window","atob","Conteudo","binaryLen","bytes","Uint8Array","ascii","charCodeAt","blob","Blob","navigator","msSaveOrOpenBlob","fileURL","createObjectURL","elementA","click","removeChild","eventButton","ActivatedRoute","ChangeDetectorRef","InfoLastSearchModel","Renderer2","ElementRef","ContentChildren","NgModel","NgForm","InfoInputComponent","rows","tabindex","iconPrefix","iconSuffix","onblur","maskOptions","align","allowNegative","decimal","precision","prefix","suffix","thousands","customMask","passwordMode","methodIsmask","toLocaleLowerCase","ismask","startsWith","InfoInputListComponent","percent","hiddenDe","novoValor","De","Ate","Valor","Excluir","ngOnChanges","ordernar","remover","findIndex","sort","InfoListCheckboxComponent","filterlabel","selectedlabel","onelist","filterList","filterSelected","disabledValue","valor","selecionados","todos","marcarFiltrados","marcar","ids","marcarTodos","InfoMessageComponent","color","outline","event","preventDefault","InfoPaginatorComponent","show","change","_total","indexActive","numberPages","pages","totalDescription","x","setDescription","goto","previous","currentInit","currentEnd","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","getGuid","querySelector","addEventListener","editor","editorToolbar","saveSelection","SecurityContext","HTML","DomSanitizer","InfoMultiSelectComponent","selectedValues","InfoChipsComponent","separatorKeysCodes","ENTER","values","modelValues","InfoMainComponent","opened","version","_themes","languages","profileurl","loginurl","menuapi","menumethod","activemenubyurl","loggeduserapi","loggedusermethod","notificationapi","notificationgetmethod","notificationpostmethod","notificationverifymethod","notificationverifyenabled","fastsearchform","fastsearchformwidth","fastsearchtitle","setthemeonchangecompany","shortcutapi","ongetnotification","onverifynotification","themes","getLoggedUser","onChangeTopBarState","onChangeSideBarState","topbar","openSidebar","UsuarioId","Login","Email","Perfil","Empresa","UltimoAcesso","Master","Clone","DataMovimentacao","OcultarNomeCliente","MFA","Versao","Chave","onGetNotificationsTopBar","onVerifyNotificationsTopBar","InfoSidebarComponent","_authentication","onchangestate","openSubmenu","menuAtivo","monitorarUrl","toggle","menuItem","Enabled","Active","resetLastSearch","ativarMenu","events","NavigationStart","itemMenu","Routing","toggleSubmenu","changeSidebar","toggleSidebar","InfoTopbarComponent","_translateService","modalRef","prodution","notifications","InfoNotificationModel","empresa","tema","idioma","notificacao","calendario","getNotifications","setCompany","company","setAttribute","removeItem","err","setLanguage","language","toggleMode","openFastSearch","achtiveMenu","verifyNotifications","VerifyCount","setNotificationStatus","read","Leitura","Exclusao","InfoTopMenuComponent","enabled","mode","InfoModalComponent","prop","modaltitle","showcloseicon","loadingblock","labelclose","labelcancel","labelsubmit","onsave","onsuccess","updateSize","ctrlKey","valid","submit","InfoPagebarComponent","margintop","transparent","atalhoId","podeCriarAtalho","exibirAcessos","GuardsCheckStart","NavigationEnd","getAtalho","_pageTitle","goBack","toggleAtalho","openModalAtalho","Url","AtalhoModalComponent","InfoMaskDirective","renderer","_onTouched","_onChange","changes","setupMask","maskInputElement","normalizedValue","setProperty","onInput","lastValue","tagName","getElementsByTagName","maskType","emailMask","maskConfig","Directive","(input)","(blur)","InfoUnmaskDirective","elementRef","inputChange","newValue","NgControl","HostListener","NgModule","imports","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","MatCardModule","MatIconModule","MatInputModule","MatFormFieldModule","MatListModule","MatSelectModule","MatCheckboxModule","MatRadioModule","MatButtonModule","MatDatepickerModule","MatMomentDateModule","MatDialogModule","MatProgressBarModule","MatAutocompleteModule","MatTooltipModule","RouterModule","CurrencyMaskModule","AngularEditorModule","MatChipsModule","declarations","InfoLoadingComponent","exports","schemas","CUSTOM_ELEMENTS_SCHEMA","entryComponents"],"mappings":"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,SAAQn2B,KAAA,CAAC,CACTo2B,QAAS,CACRC,EAAAA,aACAC,EAAAA,iBACAC,EAAAA,YACAC,EAAAA,oBACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,eACAC,EAAAA,mBACAC,EAAAA,cACAC,EAAAA,gBACAC,EAAAA,kBACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,oBACAC,EAAAA,oBACAC,EAAAA,gBACAC,EAAAA,qBACAC,EAAAA,sBACAC,EAAAA,iBACAC,EAAAA,aACAC,EAAAA,mBACAC,EAAAA,oBACAC,EAAAA,gBAEDC,aAAc,CACbz3B,GACAM,GAEAi0B,GACAmB,GAEA1lB,GACAI,GACAoE,GACAqB,GACAG,GACAU,GACAgB,GACAyC,GACAsB,GACA6J,GACAoB,GACAa,GACAc,GACAK,GACAe,GACAM,GACAU,GACA2B,GACAE,GAEAzR,GACA6c,GACA/K,GACA+F,GACAc,GACAhE,GACAmB,GACA4B,GACA+B,GACAlrB,IAEDuuB,QAAS,CACR33B,GACAM,GAEA0P,GACAI,GACAoE,GACAqB,GACAG,GACAU,GACAgB,GACAyC,GACAsB,GACA6J,GACAoB,GACAa,GACAc,GACAK,GACAe,GACAM,GACAU,GACA2B,GACAE,GAEAzR,GACA6c,GACA/K,GACA+F,GACAc,GACAhE,GACAmB,GACA4B,IAEDqF,QAAS,CACRC,EAAAA,wBAEDC,gBAAiB,CAChBjd,GACAyZ,GACAlrB","sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const DICTIONARIES_CONFIG = new InjectionToken<any>('DICTIONARIES_CONFIG');\r\nexport const APICONTROLLER_CONFIG = new InjectionToken<any>('APICONTROLLER_CONFIG');","export class InfoAppConfigModel {\r\n production: boolean = false;\r\n webapiUrl: string = '';\r\n processingUrl: string = '';\r\n theme: string = '';\r\n dictionary: string = '';\r\n ux: Number = 2;\r\n style: string = '';\r\n topMenu: boolean = false;\r\n enabledPrime: boolean = false;\r\n}","export class InfoDataAccessModel {\r\n \r\n success: boolean;\r\n messages: string[] = [];\r\n name: string = null;\r\n description: string = null;\r\n data: any;\r\n total: number = 0;\r\n parentId: number = null;\r\n referenceGuid: string = null;\r\n external = false;\r\n\r\n constructor(data: any, success?: boolean, messages?: string[]) {\r\n\r\n if (data != null) {\r\n if (data.Name != null && data.Name != \"\")\r\n this.name = data.Name\r\n\r\n if (data.Description != null && data.Description != \"\")\r\n this.description = data.Description;\r\n\r\n if (data.Total != null)\r\n this.total = data.Total;\r\n \r\n if (data.Success != null)\r\n success = data.Success;\r\n\r\n if (data.Messages)\r\n messages = data.Messages;\r\n\r\n if (data.ParentId != null)\r\n this.parentId = data.ParentId;\r\n\r\n if (data.ReferenceGuid != null)\r\n this.referenceGuid = data.ReferenceGuid;\r\n \r\n if (data.External != null)\r\n this.external = data.External;\r\n\r\n this.data = data.Data;\r\n }\r\n \r\n this.success = success == null ? true : success;\r\n this.messages = messages;\r\n\r\n if (this.messages == null || this.messages == [])\r\n this.messages = new Array();\r\n }\r\n}","import { InfoDialogButtons } from \"../enum/dialog-buttons.enum\";\r\n\r\nexport class InfoDialogResult {\r\n data?: any = null;\r\n button: InfoDialogButtons;\r\n\r\n constructor(button: InfoDialogButtons);\r\n constructor(button: InfoDialogButtons, data?: any) {\r\n this.button = button;\r\n this.data = data;\r\n }\r\n}","export class InfoDialogModel {\r\n\r\n yesOrNo: boolean = false\r\n title: string\r\n message: string = ''\r\n width: number = 450;\r\n\r\n labelOk: string = 'Ok'\r\n labelCancel: string = 'Cancelar'\r\n labelAux: string = null\r\n\r\n colorOk: string = ''\r\n colorCancel: string = ''\r\n colorAux: string = ''\r\n\r\n processingMode: boolean = false;\r\n\r\n disableButtonCancel: boolean = false;\r\n}","export enum InfoPageAction {\r\n None = -1,\r\n\r\n View = 0,\r\n New = 1,\r\n Edit = 2,\r\n Delete = 3,\r\n Search = 4,\r\n}","export enum InfoModalAction {\r\n None,\r\n Ok,\r\n Yes,\r\n No,\r\n Cancel,\r\n Save,\r\n Special,\r\n Aux\r\n}","import { InfoPageAction } from \"../enum/page-action.enum\";\r\nimport { InfoModalAction } from \"../enum/modal-action.enum\";\r\n\r\nexport class InfoFormPropModel {\r\n\r\n title: string;\r\n readonly: boolean;\r\n data: any;\r\n pageAction: InfoPageAction;\r\n modalAction: InfoModalAction = InfoModalAction.None;\r\n modalComponent: any = null;\r\n api: any = null;\r\n\r\n set(pageAction: InfoPageAction, data: any) {\r\n\r\n this.data = data;\r\n this.readonly = pageAction == InfoPageAction.View;\r\n this.pageAction = pageAction;\r\n\r\n switch (pageAction) {\r\n\r\n case InfoPageAction.New:\r\n this.title = 'Novo';\r\n break;\r\n\r\n case InfoPageAction.Search:\r\n this.title = 'Pesquisar';\r\n break;\r\n\r\n case InfoPageAction.View:\r\n this.title = 'Visualizar';\r\n break;\r\n\r\n case InfoPageAction.Edit:\r\n this.title = 'Editar';\r\n break;\r\n\r\n case InfoPageAction.Delete:\r\n this.title = 'Remover';\r\n break;\r\n\r\n default:\r\n this.title = '';\r\n break;\r\n }\r\n }\r\n}","export class InfoGridButtonModel {\r\n \r\n label: string;\r\n passId: boolean;\r\n icon: string;\r\n navigateTo: string;\r\n modalComponent: any = null;\r\n widthModalComponent: Number = 500;\r\n api: any = null;\r\n method: string = null;\r\n showOnlyClass: string = null;\r\n disabledField: string = null;\r\n confirm: boolean;\r\n\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string, confirm: boolean);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function = null, widthModalComponent: Number = null, api: any = null, method: string = null, disabledField: string = null, confirm: boolean = true) {\r\n this.label = label;\r\n this.passId = passId;\r\n this.icon = icon;\r\n this.navigateTo = navigateTo;\r\n \r\n this.modalComponent = modalComponent;\r\n this.widthModalComponent = widthModalComponent;\r\n\r\n this.api = api;\r\n this.method = method;\r\n this.disabledField = disabledField;\r\n this.confirm = confirm;\r\n }\r\n}","export class InfoMethodGridButtonModel {\r\n \r\n label: string;\r\n icon: string;\r\n method: () => any = null;\r\n\r\n constructor(label: string, icon: string, method: () => any)\r\n {\r\n this.label = label;\r\n this.icon = icon;\r\n this.method = method;\r\n }\r\n}","export class InfoLastSearchModel {\r\n url: string = '';\r\n model: any = null;\r\n index: number = 0;\r\n enabledSearch: boolean = false;\r\n}","export class InfoLoginModel {\r\n\r\n success: boolean = false;\r\n messages: string;\r\n data: any;\r\n\r\n constructor(success: boolean, messages: string, data?: any) {\r\n this.success = success;\r\n this.messages = messages;\r\n this.data = data;\r\n }\r\n}","export class InfoPagebarButtonModel {\r\n label: string = '';\r\n url: string = '';\r\n icon: string = '';\r\n modal: any = null;\r\n modalwidth: number = 700;\r\n\r\n constructor(label: string, url: string);\r\n constructor(label: string, url: string, icon: string);\r\n constructor(label: string, url: string, icon: string, modal: any, modalwidth: number);\r\n constructor(label: string, url: string, icon: string = 'chevron_right', modal: any = null, modalwidth: number = 700){\r\n this.label = label;\r\n this.url = url;\r\n this.icon = icon;\r\n this.modal = modal;\r\n this.modalwidth = modalwidth;\r\n }\r\n}","export class InfoPermissionModel {\r\n Acesso: boolean;\r\n URL: string;\r\n ChaveFuncionalidade: string;\r\n}","import { InfoAppConfigModel } from \"./app-config.model\";\r\n\r\nexport class InfoPlatformModel {\r\n\r\n TokenKey: string = 'token';\r\n SessionKey: string = 'sessao';\r\n \r\n ConfigIsNull: boolean = true;\r\n Themes: any = [];\r\n Config: InfoAppConfigModel = new InfoAppConfigModel();\r\n\r\n PaginaAtiva: any;\r\n UnificarTopbar: boolean = true;\r\n MenuMin: boolean = false;\r\n ModoPrime: boolean = false;\r\n PaginaLimpa: boolean = false;\r\n\r\n Menu: any = [];\r\n\r\n ShortcutApi: any = null;\r\n\r\n public setConfig(config: InfoAppConfigModel) {\r\n this.Config = config;\r\n this.ConfigIsNull = false;\r\n }\r\n}","import { InfoPermissionModel } from \"./permission.model\";\r\n\r\nexport class InfoSessionModel {\r\n UsuarioId: number;\r\n Usuario: string;\r\n Login: string;\r\n Email: string;\r\n Perfil: string;\r\n EmpresaId: number;\r\n TemaId: number;\r\n Empresa: string;\r\n UltimoAcesso: Date;\r\n Master: boolean;\r\n Versao: string;\r\n Clone: boolean;\r\n DataMovimentacao: Date;\r\n OcultarNomeCliente: boolean;\r\n Permissoes: InfoPermissionModel[] = [];\r\n Empresas: any[] = [];\r\n Parametros: any[] = null;\r\n MFA: boolean;\r\n TempoInatividade: number;\r\n}","export class InfoNotificationModel {\r\n Count: number = 0;\r\n Itens: InfoNotificationItemModel[] = [];\r\n}\r\n\r\nexport class InfoNotificationItemModel {\r\n Id: number;\r\n Icon: string;\r\n Description: string;\r\n Url: string;\r\n Date: string;\r\n Viewed: boolean;\r\n}","export enum InfoDialogButtons {\r\n Ok,\r\n Cancel,\r\n Yes,\r\n No,\r\n Aux\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { DICTIONARIES_CONFIG } from \"../global-config\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoTranslateService {\r\n private _currentLang: string;\r\n private _key: string = 'currentLang';\r\n\r\n public get currentLang() {\r\n return this._currentLang;\r\n }\r\n\r\n constructor(@Inject(DICTIONARIES_CONFIG) private _translations: any, private _plataforma: InfoPlatformModel) {\r\n \r\n let lang = localStorage.getItem(this._key);\r\n if (lang == null)\r\n this._currentLang = 'pt-br';\r\n else this._currentLang = lang;\r\n }\r\n\r\n public set(lang: string): void {\r\n this._currentLang = lang;\r\n localStorage.setItem(this._key, lang);\r\n }\r\n\r\n public translate(key: string): string {\r\n let translation = key;\r\n\r\n if (this._translations[this.currentLang] && this._translations[this.currentLang].Values && this._translations[this.currentLang].Values[key]) {\r\n translation = (this._translations[this.currentLang].Values[this._plataforma.Config.dictionary] || {})[key] || this._translations[this.currentLang].Values[key];\r\n if (typeof translation != 'string')\r\n translation = key;\r\n }\r\n\r\n return translation;\r\n }\r\n\r\n public getCalendar(): any {\r\n if (this._translations[this.currentLang] && this._translations[this.currentLang].Calendar) {\r\n return this._translations[this.currentLang].Calendar;\r\n }\r\n }\r\n\r\n public instant(key: string) {\r\n return this.translate(key);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { InfoTranslateService } from '../service/translate.service';\r\n\r\n@Pipe({\r\n name: 'translate',\r\n pure: false\r\n})\r\nexport class InfoTranslatePipe implements PipeTransform {\r\n\r\n constructor(private _translate: InfoTranslateService) { }\r\n\r\n transform(value: string, args?: any): any {\r\n if (!value) \r\n return;\r\n\r\n if (args === false)\r\n return value;\r\n\r\n return this._translate.instant(value);\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport emailMask from 'text-mask-addons/dist/emailMask';\r\nimport { conformToMask } from \"text-mask-core/dist/textMaskCore\";\r\n\r\n@Pipe({\r\n name: 'mask',\r\n pure: false\r\n})\r\nexport class InfoMaskPipe implements PipeTransform {\r\n\r\n constructor( ) { }\r\n\r\n transform(value: string, args?: any): any {\r\n if (!value) return;\r\n\r\n let mask = [];\r\n\r\n if (args == 'phone')\r\n mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/]; \r\n else if (args == 'cel')\r\n mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n else if (args == 'cep')\r\n mask = [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/];\r\n else if (args == 'cpf')\r\n mask = [/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n else if (args == 'cnpj')\r\n mask = [/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'/',/\\d/,/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n else \r\n mask = Array.from(args).map(c => c == '0' ? /\\d/ : c);\r\n \r\n return conformToMask(value, mask, {guide: false}).conformedValue; \r\n }\r\n}","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","import { Injectable, Inject } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { InfoDataAccessModel } from '../model/data-access.model';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Observable, of, ObservableInput } from 'rxjs';\r\nimport { APICONTROLLER_CONFIG } from '../global-config';\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoDataService {\r\n\r\n private _key: string = 'token';\r\n private token: string;\r\n\r\n constructor(@Inject(APICONTROLLER_CONFIG) private _apiController: any, private _http: HttpClient, private _router: Router, private _plataforma: InfoPlatformModel) { }\r\n\r\n public getToken(): string {\r\n this.token = localStorage.getItem(this._key);\r\n\r\n if (this.token == null) {\r\n this._router.navigateByUrl('');\r\n return '';\r\n\r\n } else return 'Bearer ' + this.token;\r\n }\r\n\r\n public getHeaderToken(): HttpHeaders {\r\n return new HttpHeaders().set('Authorization', this.getToken());\r\n }\r\n\r\n public getAPIUrl(controller: any) {\r\n let api = '';\r\n\r\n\t\tif (typeof(controller) == 'number')\r\n\t\t\tapi = this._apiController[controller].toString();\r\n\r\n else api = controller == null ? '' : controller.toString();\r\n \r\n\t\treturn this._plataforma.Config.webapiUrl + (api.replace('_', '/') + '/').toLowerCase();\r\n }\r\n\r\n public getNoToken(controller: any): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public getNoToken(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))))\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public get(controller: any): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public get(controller: any, method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n \r\n return this._http\r\n .get(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + (param == null ? '' : ('?' + param.replace(/null/g, '').replace(/undefined/g, ''))), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public getById(controller: any, id: number): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .get(this.getAPIUrl(controller) + id.toString(), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public postNoToken(controller: any, model: any): Observable<InfoDataAccessModel>;\r\n public postNoToken(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public postNoToken(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .post(this.getAPIUrl(controller) + method.toLowerCase(), model)\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public post(controller: any, model: any): Observable<InfoDataAccessModel>;\r\n public post(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public post(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n return this._http\r\n .post(this.getAPIUrl(controller) + (method == null ? '' : method), model, { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e, false))\r\n );\r\n }\r\n\r\n public delete(controller: any, id: any): Observable<InfoDataAccessModel>\r\n public delete(controller: any, id: any, method?: string): Observable<InfoDataAccessModel>;\r\n public delete(controller: any, id: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n if (id == undefined || id == null)\r\n alert('Id não informado');\r\n\r\n return this._http\r\n .delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()) + \"?id=\" + id.toString(), { headers: this.getHeaderToken() })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public deleteByModel(controller: any, model: any): Observable<InfoDataAccessModel>\r\n public deleteByModel(controller: any, model: any, method?: string): Observable<InfoDataAccessModel>;\r\n public deleteByModel(controller: any, model: any, method?: string): Observable<InfoDataAccessModel> {\r\n\r\n let httpOptions = {\r\n headers: this.getHeaderToken(),\r\n body: model\r\n }\r\n\r\n return this._http\r\n .delete(this.getAPIUrl(controller) + (method == null ? '' : method.toLowerCase()), httpOptions)\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n public request(controller: any, model: any[], method?: string): Observable<InfoDataAccessModel>\r\n public request(controller: any, model: any[], method?: string, param?: string): Observable<InfoDataAccessModel>;\r\n public request(controller: any, model: any[], method?: string, param?: string): Observable<InfoDataAccessModel> {\r\n\r\n let formData = new FormData();\r\n for (let index = 0; index < model.length; index++)\r\n formData.append(model[index].name, model[index]);\r\n\r\n return this._http\r\n .request('POST', this.getAPIUrl(controller) + (method == null ? '' : method) + (param == null ? '' : ('?' + param)), { headers: this.getHeaderToken(), body: formData })\r\n .pipe(\r\n map(r => new InfoDataAccessModel(r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse, redirect: boolean = true): ObservableInput<InfoDataAccessModel> {\r\n if (e.status == 401) \r\n document.location.href = '/#/login';\r\n else if (redirect) \r\n document.location.href = '/#/500';\r\n\r\n let messages: string[] = new Array(e.message);\r\n return of(new InfoDataAccessModel(null, false, messages));\r\n }\r\n}","import { Component, Injectable } from '@angular/core';\r\nimport { CanActivate, RouterStateSnapshot, ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, ObservableInput, of } from 'rxjs';\r\nimport { map, catchError, switchMap } from 'rxjs/operators';\r\nimport { InfoSessionModel } from '../model/session.model';\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoLoginModel } from '../model/login.model';\r\nimport { InfoDataService } from '../service/data.service';\r\nimport { InfoFormPropModel } from '../model/form-prop.model';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoModalAction } from '../enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoAuthenticationService implements CanActivate {\r\n private _key: string = 'token';\r\n private _keySessao: string = 'sessao';\r\n private _sessionTimeInterval;\r\n private _sessionActive: boolean = true;\r\n\r\n constructor(private _router: Router, \r\n private _http: HttpClient, \r\n private _sessao: InfoSessionModel, \r\n private _plataforma: InfoPlatformModel,\r\n private _dataService: InfoDataService,\r\n private _modal: MatDialog) { }\r\n\r\n getSessao(): InfoSessionModel{\r\n return this._sessao;\r\n }\r\n\r\n getPlatform(): InfoPlatformModel {\r\n return this._plataforma;\r\n }\r\n\r\n canActivate(activatedRouteSnapshot: ActivatedRouteSnapshot, routerStateSnapshot: RouterStateSnapshot): Observable<boolean> | boolean {\r\n \r\n if (!this.isLogged() || !this._sessionActive) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n const url = activatedRouteSnapshot.data['URL'] || routerStateSnapshot.url;\r\n\r\n setTimeout(() => {\r\n this.refreshSessionTime(); \r\n }, 1000);\r\n\r\n this.definePaginaAtiva(url);\r\n\r\n return this.getPermission(url, true)\r\n .pipe(\r\n map(() => {\r\n if (url == '/')\r\n return true;\r\n\r\n if (!this.hasPermission(url))\r\n this._router.navigateByUrl('permission');\r\n\r\n if (url.indexOf('novo') > -1 && !this.hasPermission(url, 'new'))\r\n this._router.navigateByUrl('permission');\r\n\r\n if (url.indexOf('visualizar') < -1 && activatedRouteSnapshot.paramMap.get('id') != null && !this.hasPermission(url, 'edit'))\r\n this._router.navigateByUrl('permission');\r\n\r\n return true;\r\n }, \r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n })\r\n )).pipe(\r\n switchMap(async res => {\r\n const permissao = activatedRouteSnapshot.data['Permissao'];\r\n\r\n if (!permissao)\r\n return true;\r\n\r\n var params = (permissao[2] || '').replace(RegExp(/\\{(.*?)\\}/, 'g'), (_, p) => activatedRouteSnapshot.params[p]);\r\n\r\n var r = await this._dataService.get(permissao[0], permissao[1], params).toPromise();\r\n if (!r.success || r.data != true)\r\n this._router.navigateByUrl('permission');\r\n\r\n return true;\r\n })\r\n );\r\n }\r\n\r\n isLogged(): boolean {\r\n return (localStorage.getItem(this._key) != null);\r\n }\r\n\r\n\trefreshSessionTime() {\r\n if (!this._sessionActive)\r\n return;\r\n\r\n clearInterval(this._sessionTimeInterval);\r\n\r\n if (this._sessao.TempoInatividade == null || this._sessao.TempoInatividade <= 0)\r\n return;\r\n \r\n let tempoSessao = this._sessao.TempoInatividade;\r\n localStorage.setItem('ms', new Date().valueOf().toString());\r\n \r\n this._sessionTimeInterval = setInterval(() => {\r\n\r\n if (tempoSessao > 0) {\r\n tempoSessao--;\r\n return;\r\n }\r\n \r\n let tempoRestante = Math.round(this._sessao.TempoInatividade - ((new Date().valueOf() - parseInt(localStorage.getItem('ms'))) / 1000));\r\n\r\n if (!isNaN(tempoRestante) && tempoRestante > 0){\r\n tempoSessao = tempoRestante;\r\n return;\r\n }\r\n \r\n clearInterval(this._sessionTimeInterval);\r\n this._sessionActive = false;\r\n\r\n if (isNaN(tempoRestante))\r\n this.logout();\r\n \r\n else this.showMessage();\r\n }, 1000);\r\n\t}\r\n\r\n showMessage(){\r\n let ref = this._modal.open(RefreshSessionTimeModalComponent, {\r\n data: null,\r\n disableClose: true,\r\n width: '500px'\r\n });\r\n\r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n\r\n if (r != null && (r.modalAction == InfoModalAction.Yes || (this._sessao.TempoInatividade - ((new Date().valueOf() - parseInt(localStorage.getItem('ms'))) / 1000)) > 0)){\r\n this._sessionActive = true;\r\n this.refreshSessionTime();\r\n }\r\n\r\n else this.logout();\r\n });\r\n }\r\n\r\n login(usuario: string, senha: string, reCaptchaToken: string = null, codigo2FA: string = null): Observable<any> {\r\n this.removeSessao();\r\n\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/autenticar', { Usuario: usuario, Senha: senha, ReCaptchaToken: reCaptchaToken, Codigo2FA: codigo2FA })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data.Token);\r\n \r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n trocarEmpresa(usuario: string, empresaId: number): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/trocarempresa', { EmpresaId: empresaId }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n clonar(usuario: string): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/clonar', { Usuario: usuario }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n logout() {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); });\r\n }\r\n\r\n getPermissions(url: string, logAtividade: boolean = false): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/getpermissao?url=' + url + '&logatividade=' + logAtividade.toString(), { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setTrocaSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/TrocarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setRecuperarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/RecuperarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setResetarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/ResetarSenha', model)\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n getLoginResources(): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/app/GetLoginResources')\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n hasPermission(url: string, keyFunction: string = 'view'): boolean {\r\n\r\n if (url == '/' && keyFunction == 'view')\r\n return true;\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n return this._sessao.Permissoes.some(s => s.URL == urlGenerica && s.ChaveFuncionalidade == keyFunction && s.Acesso);\r\n }\r\n\r\n getPermission(url: string, logAtividade: boolean = false): Observable<boolean> {\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n let contemUrl = this._sessao.Permissoes.some(s => s.URL == urlGenerica);\r\n if (contemUrl) {\r\n if (logAtividade) {\r\n return this.validaSessao(url).pipe(map(ret => {\r\n if (!ret.success)\r\n this.logout();\r\n \r\n return true;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n } else {\r\n return new Observable(function (observer) {\r\n observer.next(true);\r\n observer.complete();\r\n });\r\n }\r\n } else {\r\n return this.getPermissions(urlGenerica, logAtividade).pipe(map(ret => {\r\n let permissao = true;\r\n if (ret.success) {\r\n if (ret.data == null) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n ret.data.forEach(item => {\r\n if (this._sessao.Permissoes.filter(s => s.URL == item.URL && s.ChaveFuncionalidade == item.ChaveFuncionalidade).length == 0)\r\n this._sessao.Permissoes.push(item);\r\n });\r\n\r\n ret.data.some(s => s.URL == urlGenerica)\r\n\r\n localStorage.setItem(this._keySessao, JSON.stringify(this._sessao));\r\n }\r\n\r\n return permissao;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n }\r\n }\r\n\r\n validaSessao(url: string): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/validasessao?url=' + url, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r === true, '', r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n removeSessao() {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('Dashboard')) delete localStorage[key];\r\n });\r\n }\r\n\r\n definePaginaAtiva(url) {\r\n\r\n if (this._plataforma.Menu == null || url == null) {\r\n this._plataforma.PaginaAtiva = null;\r\n return;\r\n }\r\n\r\n let aux: string[] = url.substring(1).replace(/-/g, '').toLowerCase().split('/');\r\n let tituloMenu: string = aux.length > 0 ? aux[0].toString() : url;\r\n\r\n if (tituloMenu.indexOf('ashboard') > -1)\r\n this._plataforma.PaginaAtiva = { Icone: 'widgets', Titulo: 'Dashboard' };\r\n\r\n else {\r\n let item: any = this._plataforma.Menu.filter(m => m.Title.toLowerCase().indexOf(tituloMenu) > -1);\r\n\r\n if (item != null && item.length > 0)\r\n this._plataforma.PaginaAtiva = { Icone: item[0].Icon, Titulo: item[0].Title };\r\n else this._plataforma.PaginaAtiva = { Icone: 'security', Titulo: 'Plataforma' };\r\n }\r\n }\r\n\r\n getUrlGenerica(url: string): string {\r\n let retorno = \"\";\r\n let urlParts: string[] = url.split('/');\r\n for (var i = 0; i < urlParts.length; i++) {\r\n if (!isNaN(parseFloat(urlParts[i])) || this.isGuid(urlParts[i]) || urlParts[i].toLowerCase() == 'novo')\r\n break;\r\n else\r\n retorno += '/' + urlParts[i];\r\n }\r\n return retorno.substring(1);\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse): ObservableInput<InfoLoginModel> {\r\n if (e.status == 401) \r\n this.logout();\r\n\r\n else if (e.status == 500)\r\n this._router.navigateByUrl('500');\r\n\r\n else if (e.error != null && e.error.error_description != null)\r\n return of(new InfoLoginModel(false, e.error.error_description));\r\n\r\n else return of(new InfoLoginModel(false, 'Houve um problema e não foi possível conectar'));\r\n }\r\n\r\n private isGuid(value) : boolean {\r\n return (value || '').match('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') !== null;\r\n }\r\n}\r\n\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"Inatividade\" (onsave)=\"ativo(true)\" labelsubmit=\"Sim\" labelcancel=\"({{ time }}) {{ 'Nao' | translate }}\">\r\n <label style=\"font-size:130%\">{{ 'VoceAindaEstaUtilizandoPlataforma' | translate }}</label>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class RefreshSessionTimeModalComponent {\r\n time = 15;\r\n interval;\r\n\r\n\tconstructor(private _ref: MatDialogRef<RefreshSessionTimeModalComponent>) { }\r\n\r\n ngOnInit() {\r\n clearInterval(this.interval);\r\n \r\n this.interval = setInterval(() => {\r\n if (this.time > 0)\r\n this.time--;\r\n else {\r\n this.ativo(false);\r\n clearInterval(this.interval);\r\n }\r\n }, 1000);\r\n }\r\n \r\n ativo(ativo: boolean) {\r\n this._ref.close({ modalAction: ativo ? InfoModalAction.Yes : InfoModalAction.No });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoSessionModel } from '../model/session.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoThemeService {\r\n\r\n constructor(public _overlay: OverlayContainer, public _plataform: InfoPlatformModel, public _session: InfoSessionModel) { }\r\n\r\n public setTheme(theme) {\r\n // console.log('info-theme.setTheme', theme);\r\n\r\n if (this._plataform.Themes != null){\r\n let item = this._plataform.Themes.find(t => t.name == theme);\r\n this._plataform.UnificarTopbar = item == null ? false : item.unificarTopbar;\r\n }\r\n\r\n let _overlay = this._overlay.getContainerElement().classList;\r\n let themeClassesToRemove: any = Array.from(_overlay).filter((item: string) => item.includes('-theme'));\r\n \r\n if (themeClassesToRemove && themeClassesToRemove.length > 0)\r\n _overlay.remove(themeClassesToRemove);\r\n\r\n _overlay.remove('alternative-layout');\r\n\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 } from \"@angular/core\";\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { InfoFormPropModel } from \"../../model/form-prop.model\";\r\nimport { InfoPaginatorComponent } from \"../paginator/paginator.component\";\r\nimport { InfoDialogModal } from \"../../layouts/dialog/dialog.component\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { InfoAuthenticationService } from \"../../service/authentication.service\";\r\nimport { InfoTranslateService } from \"../../service/translate.service\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\nimport { InfoModalAction } from \"../../enum/modal-action.enum\";\r\nimport { InfoPageAction } from \"../../enum/page-action.enum\";\r\nimport { InfoPagebarButtonModel } from \"../../model/pagebar-buttons.model\";\r\nimport { InfoGridButtonModel } from \"../../model/grid-button.model\";\r\nimport { InfoLastSearchModel } from \"../../model/last-search.model\";\r\nimport { InfoMethodGridButtonModel } from \"../../model/method-grid-button.model\";\r\nimport { NgModel, NgForm } from '@angular/forms';\r\nimport { QueryList } from '@angular/core';\r\nimport { InfoPlatformModel } from \"../../model/platform.model\";\r\n\r\n@Component({\r\n selector: 'info-grid',\r\n templateUrl: 'grid.component.html',\r\n styleUrls: ['grid.component.scss'],\r\n providers: [InfoFormPropModel]\r\n})\r\nexport class InfoGridComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() pagetitle = '';\r\n @Input() prefixtitle = '';\r\n @Input() description = '';\r\n @Input() pagebarbuttons: InfoPagebarButtonModel[] = [];\r\n @Input() fullarea = false;\r\n\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n @Input() form: any = null;\r\n @Input() width: number = 800;\r\n @Input() parent: any = null;\r\n @Input() apidownload: any = null;\r\n @Input() methoddownload: string = null;\r\n\r\n @Input() backurl = '';\r\n @Input() newurl = '';\r\n @Input() newlabel = 'Novo';\r\n @Input() editurl = '';\r\n @Input() viewurl = '';\r\n @Input() templateurl = '';\r\n\r\n @Input() paged = false;\r\n @Input() size = 15;\r\n @Input() autorefresh = 0;\r\n\r\n @Input() enablednew = true;\r\n @Input() enablededit = true;\r\n @Input() enableddelete = true;\r\n @Input() enabledview = true;\r\n @Input() enabledcancelsearch = true;\r\n @Input() enableddetail = false;\r\n @Input() enabledclassicons = true;\r\n @Input() enabledclickaccess = false;\r\n @Input() enabledclickevent = false;\r\n\r\n @Input() searchopened = false;\r\n @Input() searchonlyonebutton = false;\r\n @Input() disablesearchlast = false;\r\n @Input() statictitle = false;\r\n @Input() disabledcol = '';\r\n @Input() accessicon = 'arrow_forward';\r\n\r\n @Input() loadoninit = true;\r\n @Input() data: any[];\r\n @Input() searchmodel: any = null;\r\n\r\n @Output() onbeforesearch = new EventEmitter();\r\n @Output() onloadcomplete = new EventEmitter();\r\n @Output() onclosemodal = new EventEmitter();\r\n @Output() onnew = new EventEmitter();\r\n @Output() onedit = new EventEmitter();\r\n @Output() onview = new EventEmitter();\r\n @Output() ondelete = new EventEmitter();\r\n @Output() customdelete = new EventEmitter();\r\n\r\n @Input() dynamiccols: string = null;\r\n @Input() buttons: InfoGridButtonModel[] = [];\r\n @Input() searchbuttons: InfoMethodGridButtonModel[] = [];\r\n\r\n @Input() showmessageerror = false;\r\n @Input() defaultnewobject: any = null;\r\n \r\n @ContentChildren(NgModel) formModel: QueryList<NgModel>;\r\n @ViewChild(NgForm, { static: false }) formSearch: NgForm;\r\n \r\n messages: String[] = [];\r\n resultTitle = '';\r\n enabledSearch = false;\r\n searchModelReset: any = null;\r\n\r\n showPagebar = false;\r\n hasPermissionNew = false;\r\n hasPermissionEdit = false;\r\n hasPermissionDelete = false;\r\n\r\n tableHeight = 0;\r\n loading = false;\r\n pagebarTitle = '';\r\n icons: any[] = [];\r\n colunasItens = [];\r\n colunasHeaders = [];\r\n colunasType = [];\r\n colunasWidth = [];\r\n colunasTranslate = [];\r\n currentUrl: string = null;\r\n url: string = null;\r\n\r\n @ViewChild('paginator', { static: false }) paginator: InfoPaginatorComponent;\r\n @Output() parentIdUrlChange = new EventEmitter();\r\n\r\n parentIdUrlValue: number = null;\r\n @Input()\r\n get parentIdUrl() {\r\n return this.parentIdUrlValue;\r\n }\r\n\r\n set parentIdUrl(value) {\r\n this.parentIdUrlValue = value;\r\n this.parentIdUrlChange.emit(this.parentIdUrlValue);\r\n }\r\n\r\n _cols: string = '';\r\n @Input()\r\n get cols() {\r\n return this._cols;\r\n }\r\n\r\n set cols(value) {\r\n this._cols = value;\r\n this.setColumns();\r\n }\r\n\r\n constructor(private _dialog: InfoDialogModal, \r\n public _platform: InfoPlatformModel,\r\n public modal: MatDialog, \r\n private _prop: InfoFormPropModel, \r\n private _dataAccessService: InfoDataService, \r\n private _router: Router,\r\n private _activatedRoute: ActivatedRoute,\r\n private _authenticationService: InfoAuthenticationService, \r\n private _changeDetectorRef: ChangeDetectorRef, \r\n private _translate: InfoTranslateService, \r\n private _lastSearch: InfoLastSearchModel,\r\n private _renderer: Renderer2, \r\n private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this.url = (this._activatedRoute.snapshot.data['URL'] || this._router.url).toLowerCase();\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.setPagebarTitle();\r\n\r\n if (this.searchmodel != null) {\r\n if (this.method == null)\r\n this.method = 'Search';\r\n\r\n this.searchModelReset = Object.assign({}, this.searchmodel);\r\n }\r\n\r\n else if (this.parent != null && (this.method == null || this.method == ''))\r\n this.method = 'GetByParentId';\r\n\r\n if (!this.disablesearchlast && this._authenticationService.getUrlGenerica(this._lastSearch.url) == this._authenticationService.getUrlGenerica(this.url)) {\r\n this.enabledSearch = this._lastSearch.enabledSearch;\r\n \r\n if (this.searchmodel != null && this._lastSearch.model != null)\r\n Object.assign(this.searchmodel, this._lastSearch.model);\r\n }\r\n\r\n if (this.searchopened)\r\n this.enabledSearch = true;\r\n\r\n if (this.autorefresh > 0)\r\n this.currentUrl = location.href;\r\n\r\n this._prop.api = this.api;\r\n this._prop.modalComponent = this.form;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.showPagebar = this.pagetitle != '' || this.prefixtitle != '';\r\n \r\n if (!this.fullarea && this._platform.Config.ux <= 2)\r\n this.fullarea = this.showPagebar;\r\n\r\n if (this.searchmodel && this.formModel.length > 0 && this.formSearch)\r\n this.formModel.toArray().forEach(model => this.formSearch.addControl(model));\r\n\r\n if (!this.disablesearchlast && this.paged && this._authenticationService.getUrlGenerica(this._lastSearch.url) == this._authenticationService.getUrlGenerica(this.url))\r\n this.paginator.index = this._lastSearch.index;\r\n\r\n if (this.dynamiccols == null) {\r\n this.setColumns();\r\n this.getPermission();\r\n\r\n if (this.loadoninit)\r\n this.getData();\r\n\r\n else this.hideLoad();\r\n }\r\n\r\n else this._dataAccessService\r\n .get(this.api, this.dynamiccols)\r\n .subscribe(r => {\r\n this.cols = r.data;\r\n this.setColumns();\r\n this.getPermission();\r\n\r\n if (this.loadoninit)\r\n this.getData();\r\n\r\n else this.hideLoad();\r\n });\r\n\r\n if (this.enabledclickevent)\r\n this.enabledclickaccess = true;\r\n }\r\n\r\n setColumns() {\r\n\r\n if (this.cols == '')\r\n alert('Nenhuma coluna informada');\r\n\r\n if (this.cols != '') {\r\n this.colunasItens = [];\r\n this.colunasHeaders = [];\r\n this.colunasType = [];\r\n this.colunasWidth = [];\r\n this.colunasTranslate = [];\r\n \r\n this.cols.split(',').forEach(registro => {\r\n\r\n let translate: boolean = registro.indexOf('#') == -1;\r\n registro = registro.replace(/#/g, '');\r\n\r\n let column: string = registro;\r\n let header: string = registro;\r\n let type: string = '';\r\n let width: string = '';\r\n\r\n if (header.indexOf(':') > -1) {\r\n let dados = registro.split(':');\r\n column = dados[0];\r\n header = dados[1];\r\n }\r\n\r\n if (header.indexOf('=') > -1) {\r\n let parts = header.split('=');\r\n\r\n if (column == header)\r\n column = parts[0];\r\n\r\n header = parts[0];\r\n type = parts[1];\r\n }\r\n\r\n let aux = type == '' ? header : type;\r\n if (aux.indexOf('*') > -1) {\r\n let headerInfo = aux.split('*');\r\n\r\n if (type == '') {\r\n if (column == header)\r\n column = headerInfo[0];\r\n\r\n header = headerInfo[0];\r\n\r\n } else type = headerInfo[0];\r\n\r\n width = headerInfo[1];\r\n\r\n if (width.indexOf('%') < 0 && width.indexOf('px') < 0)\r\n width += 'px';\r\n }\r\n\r\n this.colunasItens.push(column);\r\n this.colunasHeaders.push(header);\r\n this.colunasType.push(type == '' ? 'label' : type);\r\n this.colunasWidth.push(width);\r\n this.colunasTranslate.push(translate);\r\n });\r\n\r\n if (this.colunasItens.length == 1 && this.colunasWidth.length == 1)\r\n this.colunasWidth[0] = '100%';\r\n }\r\n }\r\n\r\n setPagebarTitle() {\r\n let aux = '';\r\n\r\n if (this.prefixtitle != '')\r\n aux = this._translate.translate(this.prefixtitle);\r\n\r\n if (this.resultTitle != '')\r\n aux += (this.prefixtitle != '' ? ' / ' : '') + this._translate.translate(this.resultTitle);\r\n\r\n if (this.pagetitle != '')\r\n aux += (this.resultTitle != '' || this.prefixtitle != '' ? ' / ' : '') + this._translate.translate(this.pagetitle);\r\n\r\n this.pagebarTitle = aux;\r\n }\r\n\r\n navigateTo(url: string, passId: boolean, id?: string) {\r\n\r\n if (passId) {\r\n if (url.indexOf(\":id\") > -1)\r\n this._router.navigateByUrl(url.replace(':id', id));\r\n else this._router.navigate([url, id]);\r\n }\r\n\r\n else this._router.navigateByUrl(url);\r\n }\r\n\r\n openCustomModal(modalComponent: any, width: Number, model: any = null) {\r\n\r\n this._prop.set(InfoPageAction.None, model);\r\n this.openModal(modalComponent, width);\r\n }\r\n\r\n getData() {\r\n this.messages = [];\r\n\r\n if (this.api == null || this.api == '') {\r\n this.hideLoad();\r\n return;\r\n \r\n } else if (this.searchmodel != null)\r\n this.getSearch();\r\n\r\n else if (this.paged)\r\n this.getPaged();\r\n\r\n else if (this.parent == null)\r\n this.getAll();\r\n\r\n else this.getByParentId();\r\n }\r\n\r\n getAll(): any {\r\n\r\n if (this.searchmodel == null)\r\n this._dataAccessService\r\n .get(this.api, this.method)\r\n .subscribe(r => this.getDataReturn(r));\r\n\r\n else this._dataAccessService\r\n .post(this.api, this.searchmodel, this.method)\r\n .subscribe(r => this.getDataReturn(r));\r\n }\r\n\r\n getPaged(): any {\r\n\r\n let params = this.parent == null ? \"\" : \"id=\" + this.parent + \"&\";\r\n params += 'index=' + this.paginator.index + '&size=' + this.size;\r\n\r\n this._dataAccessService\r\n .get(this.api, this.method, params)\r\n .subscribe(r => this.getDataReturn(r, true));\r\n }\r\n\r\n getSearch(): any {\r\n this.onbeforesearch.emit();\r\n\r\n this.messages = [];\r\n if (this.paged) {\r\n this.searchmodel.Index = this.paginator.index;\r\n this.searchmodel.Size = this.size;\r\n }\r\n\r\n var dataInicial = this.searchmodel[\"DataInicial\"];\r\n var dataFinal = this.searchmodel[\"DataFinal\"];\r\n if (dataInicial != null && dataFinal != null && new Date(dataInicial) > new Date(dataFinal)) {\r\n this.messages.push('DataInicialMaiorFinal');\r\n this.hideLoad();\r\n return;\r\n }\r\n\r\n var dataInicio = this.searchmodel[\"DataInicio\"];\r\n var dataFim = this.searchmodel[\"DataFim\"];\r\n if (dataInicio != null && dataFim != null && new Date(dataInicio) > new Date(dataFim)) {\r\n this.messages.push('DataInicioMaiorFim');\r\n this.hideLoad();\r\n return;\r\n }\r\n\r\n this._dataAccessService\r\n .post(this.api, this.searchmodel, this.method)\r\n .subscribe(r => this.getDataReturn(r, this.paged));\r\n }\r\n\r\n getByParentId(): any {\r\n this._dataAccessService\r\n .get(this.api, this.method, 'id=' + this.parent)\r\n .subscribe(r => this.getDataReturn(r, false));\r\n }\r\n\r\n getDataReturn(result: any, refreshPaginator: boolean = false) {\r\n \r\n if (!this.disablesearchlast) {\r\n this._lastSearch.url = this._authenticationService.getUrlGenerica(this.url);\r\n this._lastSearch.enabledSearch = this.enabledSearch;\r\n this._lastSearch.model = Object.assign({}, this.searchmodel);\r\n\r\n if (this.paged)\r\n this._lastSearch.index = this.paginator.index;\r\n }\r\n\r\n if (result.success) {\r\n this.data = result.data;\r\n\r\n if (!this.statictitle && result.name != null)\r\n this.resultTitle = this._translate.translate(result.name);\r\n\r\n if (result.description != null)\r\n this.description = result.description;\r\n\r\n if (result.parentId != null)\r\n this.parentIdUrl = result.parentId;\r\n\r\n if (refreshPaginator)\r\n this.paginator.refresh(result.total);\r\n\r\n if (this.autorefresh > 0 && this.currentUrl == location.href)\r\n setTimeout(() => { this.getData(); }, this.autorefresh * 1000);\r\n\r\n this.fillIcons();\r\n\r\n } else {\r\n this.data = [];\r\n if(this.showmessageerror) this.messages = result.messages;\r\n } \r\n\r\n this.hideLoad();\r\n this.onloadcomplete.emit();\r\n }\r\n\r\n changePage(index: number) {\r\n this.loading = true;\r\n this.paginator.index = index;\r\n\r\n if (this.searchmodel != null)\r\n this.getSearch();\r\n\r\n else this.getPaged();\r\n }\r\n\r\n cancelSearch() {\r\n Object.assign(this.searchmodel, this.searchModelReset);\r\n\r\n if (!this.searchopened)\r\n this.enabledSearch = false;\r\n\r\n this.search();\r\n }\r\n\r\n search() {\r\n this.loading = true;\r\n \r\n if (this.paged)\r\n this.paginator.index = 0;\r\n\r\n this.getData();\r\n }\r\n\r\n add() {\r\n\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.New, this.defaultnewobject);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.newurl == null || this.newurl == '')\r\n this.newurl = this.url;\r\n\r\n this.newurl += '/novo';\r\n this.newurl = this.newurl.replace('//', '/');\r\n\r\n this._router.navigateByUrl(this.newurl);\r\n }\r\n\r\n this.onnew.emit();\r\n }\r\n\r\n detail(model: any): void {\r\n this._prop.set(InfoPageAction.Search, model);\r\n this.openModal();\r\n }\r\n\r\n access(model: any): void {\r\n if (this.enabledclickaccess){\r\n if (this.enabledclickevent)\r\n this.onview.emit(model);\r\n \r\n else this.edit(model);\r\n }\r\n }\r\n\r\n view(model: any): void {\r\n\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.View, model);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.viewurl == null || this.viewurl == '')\r\n this.viewurl = this.url;\r\n \r\n this.viewurl += '/' + model.Id + (this.enabledclickaccess ? '' : '/visualizar');\r\n this.viewurl = this.viewurl.replace('//', '/');\r\n\r\n this._router.navigateByUrl(this.viewurl);\r\n }\r\n\r\n this.onview.emit(model);\r\n }\r\n\r\n edit(model: any): void {\r\n if (this.hasPermissionEdit) {\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.Edit, model);\r\n this.openModal();\r\n\r\n } else {\r\n if (this.editurl == null || this.editurl == '')\r\n this.editurl = this.url;\r\n\r\n this.editurl = this.editurl.replace('//', '/');\r\n\r\n this._router.navigate([this.editurl, model.Id]);\r\n }\r\n\r\n this.onedit.emit(model);\r\n } else {\r\n if (this.form != null) {\r\n this._prop.set(InfoPageAction.View, model);\r\n this.openModal();\r\n \r\n } else {\r\n if (this.viewurl == null || this.viewurl == '')\r\n this.viewurl = this.url;\r\n \r\n this.viewurl += '/' + model.Id + (this.enabledclickaccess ? '' : '/visualizar');\r\n this.viewurl = this.viewurl.replace('//', '/');\r\n \r\n this._router.navigateByUrl(this.viewurl);\r\n }\r\n \r\n this.onview.emit(model);\r\n }\r\n }\r\n\r\n delete(model: any) {\r\n if(this.customdelete.observers.length > 0) {\r\n this.customdelete.emit(model);\r\n return;\r\n }\r\n\r\n this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {\r\n if (r.button == InfoDialogButtons.Yes) {\r\n this.loading = true;\r\n\r\n this._dataAccessService.delete(this.api, model.Id).subscribe(d => {\r\n this.ondelete.emit(d);\r\n\r\n if (d.success)\r\n this.getData();\r\n else {\r\n this.hideLoad();\r\n if (this.showmessageerror) this.messages = d.messages;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n fillIcons() {\r\n this.icons = [];\r\n\r\n if (this.data == null)\r\n return;\r\n\r\n this.data.forEach(ret => {\r\n\r\n let item = ret['Icon'];\r\n if (item == null)\r\n return;\r\n\r\n if (item.indexOf('|') > -1) {\r\n let retorno = item\r\n .split('|')\r\n .map(icone => {\r\n\r\n if (icone.indexOf(':') > -1) {\r\n let dados = icone.split(':');\r\n return { Name: item, Icon: dados[0], Tooltip: dados[1], Principal: true };\r\n\r\n } else return { Name: item, Icon: icone, Tooltip: '', Principal: true };\r\n\r\n }).filter(a => a.Icon != null && a.Icon != '');\r\n\r\n let index = 0;\r\n retorno.forEach(element => {\r\n if (this.icons.find(a => a.Name == element.Name && a.Icon == element.Icon) == null){\r\n element.Principal = index == 0;\r\n this.icons.push(element);\r\n }\r\n\r\n index++;\r\n });\r\n } else {\r\n let element: any = [];\r\n\r\n if (item.indexOf(':') > -1) {\r\n let dados = item.split(':');\r\n element = { Name: item, Icon: dados[0], Tooltip: dados[1], Principal: true };\r\n\r\n } else element = { Name: item, Icon: item, Tooltip: \"\", Principal: true };\r\n\r\n if (this.icons.find(a => a.Name == element.Name) == null)\r\n this.icons.push(element);\r\n }\r\n });\r\n }\r\n\r\n info(value) {\r\n this._dialog.alert(value);\r\n }\r\n\r\n back() {\r\n this.navigateTo(this.backurl + (this.parentIdUrl == null ? \"\" : \"/\" + this.parentIdUrl), false);\r\n }\r\n\r\n openModal(modalComponent: any = this.form, width: Number = this.width) {\r\n\r\n let ref = this.modal.open(modalComponent, {\r\n data: this._prop,\r\n disableClose: true,\r\n width: width + 'px'\r\n });\r\n\r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n if (r == null)\r\n return;\r\n\r\n if (r.modalAction == InfoModalAction.Save)\r\n this.getData();\r\n\r\n this.onclosemodal.emit(r);\r\n });\r\n\r\n ref.keydownEvents().subscribe((r) => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n ref.close();\r\n });\r\n }\r\n\r\n hideLoad() {\r\n this.setPagebarTitle();\r\n this.loading = false;\r\n }\r\n\r\n getPermission() {\r\n this.hasPermissionNew = this._authenticationService.hasPermission(this.url, 'new');\r\n this.hasPermissionEdit = this._authenticationService.hasPermission(this.url, 'edit');\r\n this.hasPermissionDelete = this._authenticationService.hasPermission(this.url, 'remove');\r\n this._changeDetectorRef.detectChanges();\r\n }\r\n\r\n download(arquivoId: any) {\r\n if (this.apidownload == null)\r\n alert('API Download está null');\r\n\r\n this.loading = true;\r\n this._dataAccessService.get(this.apidownload, (this.methoddownload != null ? this.methoddownload : 'Get'), \"id=\" + arquivoId).subscribe(r => {\r\n this.messages = r.messages;\r\n\r\n if (r.success && r.data != null) {\r\n var binaryString = window.atob(r.data.Conteudo);\r\n var binaryLen = binaryString.length;\r\n var bytes = new Uint8Array(binaryLen);\r\n for (var i = 0; i < binaryLen; i++) {\r\n var ascii = binaryString.charCodeAt(i);\r\n bytes[i] = ascii;\r\n }\r\n\r\n var blob = new Blob([bytes]);\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(blob, r.data.Nome);\r\n } else {\r\n let fileURL = URL.createObjectURL(blob);\r\n let elementA: HTMLAnchorElement = document.createElement('a') as HTMLAnchorElement;\r\n elementA.href = fileURL;\r\n elementA.download = r.data.Nome;\r\n document.body.appendChild(elementA);\r\n elementA.click(); \r\n document.body.removeChild(elementA);\r\n }\r\n }\r\n this.loading = false;\r\n });\r\n }\r\n\r\n eventButton(model: any, api: any, method: string, confirm: boolean = true) {\r\n if (confirm) {\r\n this._dialog\r\n .YesOrNo('MensagemConfirmar')\r\n .subscribe(ret => {\r\n if (ret.button == InfoDialogButtons.Yes) {\r\n this.loading = true;\r\n this._dataAccessService.post(api, model, method).subscribe(r => {\r\n if (r.success)\r\n this.getData();\r\n else if(this.showmessageerror)\r\n this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n });\r\n } else {\r\n this.loading = true;\r\n this._dataAccessService.post(api, model, method).subscribe(r => {\r\n if (r.success)\r\n this.getData();\r\n else if(this.showmessageerror)\r\n this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n }\r\n}","import { Component, forwardRef, Input, OnInit, Output, EventEmitter } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: 'info-input',\r\n styleUrls: [ 'input.component.scss' ],\r\n templateUrl: 'input.component.html',\r\n providers:[\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoInputComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoInputComponent implements OnInit, ControlValueAccessor {\r\n\r\n @Input() placeholder: string;\r\n @Input() disabled: boolean = false;\r\n @Input() readonly: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() maxlength: any;\r\n @Input() type: string = 'text';\r\n @Input() rows: number = 1;\r\n @Input() tabindex: number = 0;\r\n @Input() iconPrefix: string = '';\r\n @Input() iconSuffix: string = '';\r\n @Input() min: number = -99999999999999.999999999;\r\n @Input() max: number = 99999999999999.999999999;\r\n @Input() step: number = null;\r\n\r\n @Output() onblur = new EventEmitter();\r\n \r\n maskOptions: any = {\r\n align: 'right',\r\n allowNegative: true,\r\n decimal: ',',\r\n precision: 2,\r\n prefix: '',\r\n suffix: '',\r\n thousands: '.'\r\n };\r\n \r\n value: string = '';\r\n customMask: string = null;\r\n onChange: any;\r\n onTouched: any;\r\n passwordMode: boolean = false;\r\n\r\n ngOnInit() { \r\n this.passwordMode = this.type.toLocaleLowerCase() == 'password';\r\n }\r\n\r\n private methodIsmask: string = null;\r\n @Input()\r\n get ismask(){\r\n return this.methodIsmask;\r\n }\r\n\r\n set ismask(value){\r\n this.methodIsmask = value;\r\n\r\n if (this.methodIsmask != null) {\r\n this.methodIsmask = this.methodIsmask.toLowerCase();\r\n \r\n if (this.methodIsmask == 'int')\r\n this.maskOptions.precision = 0;\r\n\r\n else if (this.methodIsmask[0] == 'n' && (this.methodIsmask.length == 2 || this.methodIsmask.length == 3))\r\n this.maskOptions.precision = parseInt(this.methodIsmask.replace('n', ''));\r\n\r\n else this.customMask = this.methodIsmask;\r\n }\r\n }\r\n\r\n onBlur() {\r\n if (this.type == 'number' || (this.ismask != null && this.ismask.startsWith(\"n\"))) {\r\n if (this.min != null)\r\n this.value = this.min > Number(this.value) ? null : this.value;\r\n\r\n if (this.max != null)\r\n this.value = this.max < Number(this.value) ? null : this.value;\r\n\r\n this.onChangeValue();\r\n }\r\n\r\n if (this.onblur != null)\r\n this.onblur.emit(this.value);\r\n }\r\n\r\n onChangeValue(){\r\n if (this.onChange != null)\r\n this.onChange(this.value);\r\n }\r\n\r\n writeValue(modelValue: any): void {\r\n this.value = modelValue;\r\n this.onChangeValue();\r\n }\r\n \r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n \r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n \r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n}","import { Component, Input, OnChanges } from \"@angular/core\";\r\nimport { InfoDialogModal } from \"../../layouts/dialog/dialog.component\";\r\nimport { InfoDialogButtons } from \"../../enum/dialog-buttons.enum\";\r\n\r\n@Component({\r\n selector: 'info-input-list',\r\n templateUrl: 'input-list.component.html',\r\n styleUrls: ['input-list.component.scss']\r\n})\r\nexport class InfoInputListComponent implements OnChanges {\r\n \r\n @Input() model: any = []\r\n @Input() readonly: boolean = false\r\n @Input() percent: boolean = false\r\n @Input() hiddenDe: boolean = false\r\n @Input() disabled: boolean = false\r\n\r\n mask: string = \"n2\";\r\n @Input() \r\n get ismask() {\r\n return this.mask;\r\n }\r\n\r\n set ismask(value) {\r\n this.mask = (value == null ? this.mask : value);\r\n }\r\n\r\n messages: string[] = [];\r\n novoValor = { De: null, Ate: null, Valor: null, Excluir: false };\r\n\r\n constructor(private _dialog: InfoDialogModal) { }\r\n\r\n ngOnChanges() {\r\n if (this.model == null)\r\n this.model = [];\r\n\r\n for (var i = 0; i < this.model.length; i++)\r\n this.model[i].Excluir = false;\r\n }\r\n\r\n getModel(): any[]{\r\n if (!this.model || this.model == null)\r\n return [];\r\n\r\n return this.model.filter(m => !m.Excluir);\r\n }\r\n\r\n add() {\r\n this.messages = [];\r\n\r\n if (this.hiddenDe && this.novoValor.Ate == null)\r\n this.messages.push('InformeUmValorDe');\r\n\r\n if (!this.hiddenDe && this.novoValor.De == null && this.novoValor.Ate == null)\r\n this.messages.push('InformeUmValorDeOuAte');\r\n\r\n if (!this.hiddenDe && this.novoValor.Ate < this.novoValor.De)\r\n this.messages.push('ValorAteMenorQueDe');\r\n\r\n if (this.novoValor.Valor == null)\r\n this.messages.push('InformeValor');\r\n\r\n if (this.messages.length > 0){\r\n\r\n \r\n\r\n return;\r\n }\r\n\r\n this.model.push({ De: this.novoValor.De, Ate: this.novoValor.Ate, Valor: this.novoValor.Valor, Excluir: false });\r\n this.novoValor = { De: null, Ate: null, Valor: null, Excluir: false };\r\n\r\n this.ordernar();\r\n }\r\n\r\n remover(item: any){\r\n\r\n this._dialog.YesOrNo('MensagemExcluir').subscribe(r => {\r\n if (r.button == InfoDialogButtons.No)\r\n return;\r\n\r\n item.Excluir = true;\r\n this.model.splice(this.model.findIndex(m => m == item), 1);\r\n this.ordernar();\r\n });\r\n }\r\n\r\n ordernar(){\r\n\r\n this.model = this.model.sort((a, b) => { \r\n if (this.hiddenDe ? (a.Ate < b.Ate) : (a.De < b.De))\r\n return -1;\r\n\r\n else if (this.hiddenDe ? (a.Ate > b.Ate) : (a.De > b.De))\r\n return 1;\r\n\r\n else return 0;\r\n });\r\n }\r\n}","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { InfoTranslateService } from \"../../service/translate.service\";\r\n\r\n@Component({\r\n selector: 'info-list-checkbox',\r\n templateUrl: 'list-checkbox.component.html',\r\n styles: ['ul.checkbox-list { height: 270px; overflow-y: auto }']\r\n})\r\nexport class InfoListCheckboxComponent implements OnInit {\r\n\r\n @Input() filterlabel: string = 'Filtrar';\r\n @Input() filterdescription: string;\r\n\r\n @Input() selectedlabel: string = 'Filtrar';\r\n @Input() selecteddescription: string;\r\n\r\n @Input() model: any[] = [];\r\n @Input() max: number = 0;\r\n @Input() onelist: boolean = false;\r\n\r\n private disabledValue: any;\r\n @Input()\r\n get disabled() {\r\n return this.disabledValue;\r\n }\r\n\r\n set disabled(value) {\r\n this.disabledValue = value;\r\n }\r\n\r\n filterList: string = '';\r\n filterSelected: string = ''; \r\n message: string = \"\";\r\n\r\n constructor(private _translate: InfoTranslateService) { }\r\n\r\n ngOnInit() {\r\n if (this.max != null && this.max > 0)\r\n this.message = this._translate.translate('MensagemTopRegistro').replace('{0}', this.max.toString());\r\n }\r\n \r\n getModel(valor: string, selecionados: boolean = false, todos = false): any[] {\r\n if (todos || this.max == null || this.max == 0)\r\n return this.model.filter(r => (selecionados ? r.Selecionado : r.Selecionado == r.Selecionado) && r.Descricao.toLowerCase().indexOf(valor.toLowerCase()) > -1);\r\n else \r\n return this.model.filter(r => (selecionados ? r.Selecionado : r.Selecionado == r.Selecionado) && r.Descricao.toLowerCase().indexOf(valor.toLowerCase()) > -1).slice(0, this.max);\r\n }\r\n\r\n marcarFiltrados(valor: string, marcar: boolean, selecionados: boolean = false) {\r\n let ids: any[] = this.getModel(valor, selecionados, true).map(r => r.Id);\r\n\r\n this.model.forEach((item, index) => {\r\n if (ids.indexOf(item.Id) > -1)\r\n item.Selecionado = marcar; \r\n });\r\n }\r\n\r\n marcarTodos(marcar: boolean) {\r\n this.model.forEach(item => item.Selecionado = marcar);\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-message',\r\n templateUrl: 'message.component.html',\r\n styleUrls: ['message.component.scss']\r\n})\r\n\r\nexport class InfoMessageComponent {\r\n\r\n @Input() color: string = 'info';\r\n @Input() outline: boolean = true;\r\n @Input() close: boolean = false;\r\n @Input() min: boolean = false;\r\n\r\n delete(event: any, message: any) {\r\n event.preventDefault();\r\n message.remove();\r\n }\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'info-paginator',\r\n templateUrl: 'paginator.component.html',\r\n styleUrls: ['paginator.component.scss']\r\n})\r\n\r\nexport class InfoPaginatorComponent {\r\n\r\n @Input() size = 5;\r\n @Input() min = false;\r\n @Input() show = false;\r\n @Output() index = 0;\r\n @Output() change = new EventEmitter<number>();\r\n\r\n _total = 0;\r\n @Input()\r\n get total(){\r\n return this._total;\r\n }\r\n\r\n set total(value){\r\n this._total = value;\r\n this.initialize();\r\n }\r\n\r\n onChange: any;\r\n indexActive = 0;\r\n numberPages = 1;\r\n pages = [];\r\n totalDescription = '';\r\n\r\n refresh(total: number) {\r\n this.total = total;\r\n }\r\n\r\n initialize() {\r\n this.pages = [];\r\n this.indexActive = this.index;\r\n this.numberPages = Math.ceil(this.total / this.size);\r\n \r\n if (this.total > this.size) {\r\n let i = (this.index > 2) ? (this.index - 2) : 0;\r\n let x = this.numberPages;\r\n\r\n if ((this.index + 2) < this.numberPages){\r\n \r\n let aux = 3;\r\n if (this.index < 2)\r\n aux = (5 - this.index);\r\n\r\n x = (this.index + aux);\r\n }\r\n else if ((this.index - 2) > 0)\r\n i = this.index - (5 - (this.numberPages - this.index));\r\n \r\n if (i < 0)\r\n i = 0;\r\n\r\n if (x > this.numberPages)\r\n x = this.numberPages;\r\n \r\n for (i; i < x; i++)\r\n this.pages.push(i);\r\n\r\n } else {\r\n this.pages.push(0);\r\n }\r\n \r\n this.setDescription();\r\n this.show = true;\r\n }\r\n\r\n goto(index: number) {\r\n \r\n if (this.index == index)\r\n return;\r\n\r\n this.index = index;\r\n this.change.emit(this.index);\r\n }\r\n\r\n next() {\r\n this.goto(this.index + 1);\r\n }\r\n\r\n previous() {\r\n this.goto(this.index - 1);\r\n }\r\n\r\n setDescription(){\r\n let currentInit = (this.size * this.index) + 1;\r\n let currentEnd = this.size * (this.index + 1);\r\n\r\n if (currentEnd > this.total)\r\n currentEnd = this.total;\r\n\r\n if (currentInit == null || currentEnd == null) return;\r\n\r\n this.totalDescription = currentInit.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\n\r\n@Component({\r\n selector: 'info-main',\r\n templateUrl: 'main.component.html',\r\n styleUrls: ['main.component.scss']\r\n})\r\nexport class InfoMainComponent implements OnInit {\r\n\r\n @Input() opened: boolean = false;\r\n @Input() version: string = null;\r\n @Input() messages: any[] = [];\r\n private _themes: any = [];\r\n\r\n @Input() get themes() { return this._themes; }\r\n set themes(value) {\r\n this._themes = value;\r\n this._platform.Themes = this.themes;\r\n\r\n if (this._session.TemaId > 0 && this.setthemeonchangecompany)\r\n this._themeService.setThemeByLoggedCompany();\r\n }\r\n\r\n @Input() languages: any = [];\r\n @Input() profileurl: string = '';\r\n @Input() loginurl: string = 'login';\r\n\r\n @Input() menuapi: any = null;\r\n @Input() menumethod: string = 'GetMenu';\r\n @Input() activemenubyurl: boolean = false;\r\n\r\n @Input() loggeduserapi: any = null;\r\n @Input() loggedusermethod: string = 'GetLoggedUser';\r\n\r\n @Input() notificationapi: any = null;\r\n @Input() notificationgetmethod: string = 'Get';\r\n @Input() notificationpostmethod: string = 'PostNotification';\r\n @Input() notificationverifymethod: string = 'Verify';\r\n @Input() notificationverifyenabled: boolean = true;\r\n \r\n @Input() fastsearchform: any = null;\r\n @Input() fastsearchformwidth: number = 1200;\r\n @Input() fastsearchtitle: string = 'PesquisaRapidaCarteira';\r\n \r\n @Input() setthemeonchangecompany: boolean = false;\r\n\r\n @Input() shortcutapi: any = null;\r\n\r\n @Output() ongetnotification = new EventEmitter();\r\n @Output() onverifynotification = new EventEmitter();\r\n\r\n @ViewChild('topbar') topbar: InfoTopbarComponent;\r\n\r\n constructor(public _platform: InfoPlatformModel, \r\n private _session: InfoSessionModel, \r\n private _router: Router, \r\n private _dataAccessService: InfoDataService, \r\n private _themeService: InfoThemeService,\r\n private _renderer: Renderer2,\r\n private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n //console.log('info-library.main.ngOnInit');\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n\r\n this._platform.Themes = this.themes;\r\n this._platform.ShortcutApi = this.shortcutapi;\r\n\r\n if (localStorage.getItem(this._platform.TokenKey) == null)\r\n this._router.navigateByUrl(this.loginurl);\r\n\r\n else this.getLoggedUser();\r\n\r\n if (document.body.classList.length > 0){\r\n let theme = document.body.classList[0];\r\n \r\n if (document.body.classList[0].indexOf('-theme') < 0 && this._platform.Config.theme != null)\r\n theme = '_' + this._platform.Config.theme + '-theme';\r\n \r\n this._themeService.setTheme(theme);\r\n }\r\n }\r\n\r\n onChangeTopBarState() {\r\n this.opened = !this.opened;\r\n }\r\n\r\n onChangeSideBarState(){\r\n this.topbar.openSidebar();\r\n }\r\n\r\n getLoggedUser() {\r\n if (localStorage.getItem(this._platform.SessionKey) != null)\r\n Object.assign(this._session, JSON.parse(localStorage.getItem(this._platform.SessionKey)));\r\n\r\n if (this._session.UsuarioId != null || this.loggeduserapi == null)\r\n return;\r\n\r\n this._dataAccessService.get(this.loggeduserapi, this.loggedusermethod).subscribe(r => {\r\n if (r.success) {\r\n this._session.UsuarioId = r.data.UsuarioId;\r\n this._session.Usuario = r.data.Usuario;\r\n this._session.Login = r.data.Login;\r\n this._session.Email = r.data.Email;\r\n this._session.Perfil = r.data.Perfil;\r\n this._session.EmpresaId = r.data.EmpresaId;\r\n this._session.TemaId = r.data.TemaId;\r\n this._session.Empresa = r.data.Empresa;\r\n this._session.UltimoAcesso = r.data.UltimoAcesso;\r\n this._session.Master = r.data.Master;\r\n this._session.Clone = r.data.Clone;\r\n this._session.DataMovimentacao = r.data.DataMovimentacao;\r\n this._session.OcultarNomeCliente = r.data.OcultarNomeCliente;\r\n this._session.Empresas = r.data.Empresas;\r\n this._session.Parametros = r.data.Parametros;\r\n this._session.MFA = r.data.MFA;\r\n this._session.TempoInatividade = r.data.TempoInatividade;\r\n this._session.Versao = r.data.Versao;\r\n this.version = r.data.Versao;\r\n\r\n if (this._session.Parametros.some(p => p.Chave == 'DisclaimerGeral'))\r\n this.messages.push(this._session.Parametros.find(p => p.Chave == 'DisclaimerGeral').Valor);\r\n\r\n if (this._session.TemaId != null)\r\n this._themeService.setThemeByLoggedCompany();\r\n }\r\n });\r\n }\r\n\r\n onGetNotificationsTopBar(event) {\r\n this.ongetnotification.emit(event);\r\n }\r\n\r\n onVerifyNotificationsTopBar(event) {\r\n this.onverifynotification.emit(event);\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoLastSearchModel } from '../../model/last-search.model';\r\nimport { InfoSessionModel } from '../../model/session.model';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-sidebar',\r\n templateUrl: './sidebar.component.html',\r\n styleUrls: ['./sidebar.component.scss']\r\n})\r\nexport class InfoSidebarComponent implements OnInit {\r\n\r\n @Input() api: any = null;\r\n @Input() method: string = 'GetMenu';\r\n @Input() activemenubyurl: boolean = false;\r\n @Output() onchangestate = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n menu: any = [];\r\n openSubmenu: string = '';\r\n menuAtivo: string = 'Dashboard';\r\n\r\n constructor(private _dataAcessService: InfoDataService, private _authentication: InfoAuthenticationService, \r\n private _themeService: InfoThemeService, public _session: InfoSessionModel, public _platform: InfoPlatformModel,\r\n private _lastSearch: InfoLastSearchModel, private _router: Router, private _renderer: Renderer2, private _element: ElementRef) {\r\n }\r\n\r\n ngOnInit() {\r\n if (!this._authentication.isLogged() || this.api == null)\r\n return;\r\n\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.loading = true;\r\n\r\n this._dataAcessService\r\n .get(this.api, this.method)\r\n .subscribe(r => {\r\n if (r.success){\r\n this.menu = r.data;\r\n this._platform.Menu = r.data;\r\n this._authentication.definePaginaAtiva(this._router.url);\r\n\r\n this.monitorarUrl();\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n toggle(e: Event, menuItem: any) {\r\n\r\n e.preventDefault();\r\n\r\n if (!menuItem.Enabled)\r\n return;\r\n\r\n if (!menuItem.Active)\r\n for (let i = 0; i < this.menu.length; i++)\r\n this.menu[i].Active = false;\r\n\r\n menuItem.Active = !menuItem.Active;\r\n }\r\n\r\n access(menu: string){\r\n this.menuAtivo = menu;\r\n this.openSubmenu = '';\r\n \r\n this.resetLastSearch();\r\n }\r\n\r\n monitorarUrl(){\r\n if (this.activemenubyurl){\r\n this.ativarMenu(this._router.url);\r\n\r\n this._router.events.subscribe(e => {\r\n if (e instanceof NavigationStart)\r\n this.ativarMenu(e.url);\r\n });\r\n }\r\n }\r\n\r\n ativarMenu(url: string){\r\n let itemMenu = this.menu.find(m => m.Routing == url);\r\n\r\n if (itemMenu != null)\r\n this.menuAtivo = itemMenu.Title;\r\n }\r\n\r\n toggleSubmenu(menu) {\r\n this.openSubmenu = this.openSubmenu == menu ? '' : menu;\r\n }\r\n\r\n resetLastSearch(){\r\n this._lastSearch.model = null;\r\n this._lastSearch.url = '';\r\n }\r\n\r\n changeSidebar() {\r\n this.onchangestate.emit();\r\n }\r\n\r\n toggleSidebar(){\r\n this._themeService.setMenuMin();\r\n }\r\n}","import { Component, OnInit, Input, Output, EventEmitter, Renderer2, ElementRef } from '@angular/core';\r\nimport { InfoDialogModal } from '../dialog/dialog.component';\r\nimport { Router } from '@angular/router';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { InfoDialogButtons } from '../../enum';\r\nimport { InfoTranslateService } from '../../service/translate.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoThemeService } from '../../service/theme.service';\r\nimport { InfoNotificationModel } from '../../model/notification.model';\r\nimport { InfoSessionModel } from '../../model/session.model'; \r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\n\r\n@Component({\r\n selector: 'info-topbar',\r\n templateUrl: './topbar.component.html',\r\n styleUrls: ['./topbar.component.scss']\r\n})\r\nexport class InfoTopbarComponent implements OnInit {\r\n @Input() opened: boolean = false;\r\n @Input() languages: any = [];\r\n @Input() themes: any = [];\r\n @Input() notificationapi: any = null;\r\n @Input() notificationgetmethod: string = 'Get';\r\n @Input() notificationpostmethod: string = 'PostNotification';\r\n @Input() notificationverifymethod: string = 'Verify';\r\n @Input() notificationverifyenabled: boolean = true;\r\n @Input() fastsearchform: any = null;\r\n @Input() fastsearchformwidth: number = 1200;\r\n @Input() fastsearchtitle: string = 'PesquisaRapidaCarteira';\r\n @Input() profileurl: string = '';\r\n @Input() setthemeonchangecompany: boolean = false;\r\n @Output() onchangestate = new EventEmitter();\r\n @Output() ongetnotification = new EventEmitter();\r\n @Output() onverifynotification = new EventEmitter();\r\n\r\n modalRef: any = null;\r\n loading: boolean = false;\r\n prodution: boolean = false;\r\n notifications: InfoNotificationModel = new InfoNotificationModel();\r\n\r\n topMenu: any = {\r\n empresa: false,\r\n tema: false,\r\n idioma: false,\r\n notificacao: false,\r\n calendario: false\r\n };\r\n\r\n constructor(private _translateService: InfoTranslateService, \r\n public _authenticationService: InfoAuthenticationService, private _dataService: InfoDataService, \r\n private _themeService: InfoThemeService, private _router: Router, private _dialog: InfoDialogModal, \r\n public _session: InfoSessionModel, public _platform: InfoPlatformModel, private _modal: MatDialog,\r\n private _renderer: Renderer2, private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n \r\n this.prodution = this._platform.Config.production;\r\n this.getNotifications();\r\n }\r\n\r\n setCompany(company) {\r\n this._authenticationService.trocarEmpresa(this._session.Login, company.Id).subscribe(res => {\r\n if (res.success) {\r\n\r\n document.body.setAttribute('loading', 'true');\r\n \r\n this._session.Permissoes = [];\r\n this._session.EmpresaId = company.Id;\r\n this._session.Empresa = company.Nome;\r\n this._session.TemaId = company.TemaId;\r\n this._themeService.setThemeByLoggedCompany();\r\n\r\n localStorage.removeItem(\"Dashboard\");\r\n localStorage.setItem(this._platform.SessionKey, JSON.stringify(this._session));\r\n this._router.navigateByUrl('').then(r => location.reload());\r\n \r\n } else this._authenticationService.logout();\r\n }, err => this._authenticationService.logout());\r\n }\r\n\r\n setLanguage(language: string) {\r\n this._translateService.set(language);\r\n }\r\n\r\n setTheme(theme) {\r\n //console.log('topbar.setTheme', theme);\r\n this._themeService.setTheme(theme);\r\n }\r\n\r\n toggleMode(){\r\n this._themeService.setModePrime();\r\n }\r\n\r\n openFastSearch() {\r\n this.close();\r\n\r\n if (this.modalRef != null) \r\n return;\r\n\r\n this.modalRef = this._modal.open(this.fastsearchform, {\r\n disableClose: true,\r\n width: this.fastsearchformwidth + 'px'\r\n });\r\n\r\n this.modalRef.keydownEvents().subscribe(r => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n this.modalRef.close();\r\n });\r\n\r\n this.modalRef.afterClosed().subscribe(r => { this.modalRef = null });\r\n }\r\n\r\n open(achtiveMenu) {\r\n this.topMenu.empresa = achtiveMenu == 'empresa';\r\n this.topMenu.tema = achtiveMenu == 'tema';\r\n this.topMenu.idioma = achtiveMenu == 'idioma';\r\n this.topMenu.notificacao = achtiveMenu == 'notificacao';\r\n this.topMenu.calendario = achtiveMenu == 'calendario';\r\n }\r\n\r\n close() {\r\n this.topMenu.empresa = false;\r\n this.topMenu.tema = false;\r\n this.topMenu.idioma = false;\r\n this.topMenu.notificacao = false;\r\n this.topMenu.calendario = false;\r\n }\r\n\r\n openSidebar() {\r\n this.opened = !this.opened;\r\n this.onchangestate.emit();\r\n }\r\n\r\n getNotifications() {\r\n if (!this._authenticationService.isLogged() || this.notificationapi == null)\r\n return;\r\n\r\n this._dataService.get(this.notificationapi, this.notificationgetmethod, null).subscribe(r => {\r\n if (r.success) {\r\n this.notifications.Count = r.data.Count;\r\n this.notifications.Itens = r.data.Itens;\r\n\r\n if (this.notificationverifyenabled)\r\n this.verifyNotifications();\r\n\r\n this.ongetnotification.emit(this.notifications);\r\n }\r\n });\r\n }\r\n\r\n verifyNotifications() {\r\n if (!this._authenticationService.isLogged() || this.notificationapi == null)\r\n return;\r\n\r\n this._dataService.get(this.notificationapi, this.notificationverifymethod).subscribe(r => {\r\n if (r.data == -1)\r\n this.logout();\r\n\r\n else if (this.notifications.Count == r.data)\r\n setTimeout(() => { this.verifyNotifications(); }, 15000);\r\n\r\n else this.getNotifications();\r\n\r\n this.onverifynotification.emit({...this.notifications, VerifyCount: r.data});\r\n });\r\n }\r\n\r\n setNotificationStatus(read, access, remove) {\r\n if (this.notifications.Count == 0) return;\r\n\r\n this._dataService.post(this.notificationapi, { Id: '00000000-0000-0000-0000-000000000000', Acesso: access, Leitura: read, Exclusao: remove }, this.notificationpostmethod)\r\n .subscribe(r => this.notifications.Count = 0);\r\n }\r\n\r\n navigate(url: string) {\r\n this._router.navigate([url.replace('/#', '')]);\r\n }\r\n\r\n logout() {\r\n this._dialog.YesOrNo('DesejaRealmenteSair').subscribe(r => {\r\n if (r.button == InfoDialogButtons.Yes)\r\n this._authenticationService.logout();\r\n });\r\n }\r\n}","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, Renderer2 } from '@angular/core';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoAuthenticationService } from '../../service/authentication.service';\r\nimport { InfoLastSearchModel } from '../../model/last-search.model';\r\nimport { InfoSessionModel } from '../../model/session.model';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'info-topmenu',\r\n templateUrl: './topmenu.component.html',\r\n styleUrls: ['./topmenu.component.scss']\r\n})\r\nexport class InfoTopMenuComponent implements OnInit {\r\n \r\n @Input() api: any = null;\r\n @Input() method: string = 'GetMenu';\r\n @Output() onchangestate = new EventEmitter();\r\n\r\n loading: boolean = false;\r\n menu: any = [];\r\n openSubmenu: string = '';\r\n menuAtivo: string = 'Dashboard';\r\n\r\n constructor(private _dataAcessService: InfoDataService, private _authentication: InfoAuthenticationService, \r\n private _lastSearch: InfoLastSearchModel, private _router: Router, \r\n public _session: InfoSessionModel, public _platform: InfoPlatformModel,\r\n private _renderer: Renderer2, private _element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n if (!this._authentication.isLogged() || this.api == null)\r\n return;\r\n\r\n this._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n this.loading = true;\r\n\r\n this._dataAcessService\r\n .get(this.api, this.method)\r\n .subscribe(r => {\r\n if (r.success){\r\n this.menu = r.data;\r\n this._platform.Menu = r.data;\r\n this._authentication.definePaginaAtiva(this._router.url);\r\n }\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n toggle(e: Event, menuItem: any) {\r\n\r\n e.preventDefault();\r\n\r\n if (!menuItem.Enabled)\r\n return;\r\n\r\n if (!menuItem.Active)\r\n for (let i = 0; i < this.menu.length; i++)\r\n this.menu[i].Active = false;\r\n\r\n menuItem.Active = !menuItem.Active;\r\n }\r\n\r\n access(menu: string){\r\n this.menuAtivo = menu;\r\n this.openSubmenu = '';\r\n \r\n this.resetLastSearch();\r\n }\r\n\r\n toggleSubmenu(menu) {\r\n this.openSubmenu = this.openSubmenu == menu ? '' : menu;\r\n }\r\n\r\n resetLastSearch(){\r\n this._lastSearch.model = null;\r\n this._lastSearch.url = '';\r\n }\r\n\r\n changeSidebar() {\r\n this.onchangestate.emit();\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'info-loading',\r\n template: `\r\n <section class=\"loading-bar\">\r\n <mat-progress-bar [color]=\"color\" [mode]=\"mode\" *ngIf=\"enabled\" >\r\n </mat-progress-bar>\r\n </section>\r\n `,\r\n styles: [`\r\n .loading-bar { height: 1px; }\r\n .loading-bar .mat-progress-bar { height: 1px; margin: 0; }\r\n `]\r\n})\r\nexport class InfoLoadingComponent{\r\n\r\n @Input() enabled: boolean = false;\r\n @Input() mode: string = 'indeterminate';\r\n @Input() color: string = 'primary';\r\n\r\n}","import { Component, Input, Output, EventEmitter, forwardRef, Inject } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoFormPropModel } from '../../model/form-prop.model';\r\nimport { InfoModalAction } from '../../enum/modal-action.enum';\r\n\r\n@Component({\r\n selector: 'info-modal',\r\n templateUrl: './modal.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoModalComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoModalComponent implements ControlValueAccessor {\r\n\r\n @Input() modaltitle: string = '';\r\n @Input() showcloseicon: boolean = false;\r\n @Input() api: any = null;\r\n @Input() method: string = null;\r\n @Input() readonly: boolean = null;\r\n @Input() loading: boolean = false;\r\n @Input() loadingblock: boolean = true;\r\n @Input() form: any = null;\r\n @Input() labelclose: string = 'Fechar';\r\n @Input() labelcancel: string = 'Cancelar';\r\n @Input() labelsubmit: string = 'Salvar';\r\n @Input() messages: String[] = [];\r\n @Input() width: number = null;\r\n\r\n @Output() onsave = new EventEmitter();\r\n @Output() onsuccess = new EventEmitter();\r\n\r\n model: any;\r\n onChange: any;\r\n onTouched: any;\r\n\r\n constructor(private _dataAccessService: InfoDataService, @Inject(MAT_DIALOG_DATA) public prop: InfoFormPropModel, private _ref: MatDialogRef<any>) { }\r\n\r\n ngOnInit() {\r\n\r\n if (this.modaltitle == '' && this.prop != null && this.prop.title != null)\r\n this.modaltitle = this.prop.title;\r\n\r\n if (this.api == null && this.prop != null && this.prop.api != null)\r\n this.api = this.prop.api;\r\n\r\n if (this.width != null)\r\n this._ref.updateSize(this.width.toString().replace('px', '') + 'px');\r\n\r\n if (this.readonly == null && this.prop != null && this.prop.readonly != null)\r\n this.readonly = this.prop.readonly;\r\n\r\n this._ref.keydownEvents().subscribe((r) => {\r\n if (r.ctrlKey && r.key == \"Enter\" && !(this.loading || (this.form != null && !this.form.form.valid)) && this.labelsubmit != '' && !this.readonly)\r\n this.submit();\r\n });\r\n }\r\n\r\n submit() {\r\n if (this.onsave.observers.length > 0) {\r\n this.onsave.next();\r\n return;\r\n }\r\n\r\n this.messages = [];\r\n \r\n if (this.api == null || this.api.toString() == '')\r\n this.messages.push('API não informado');\r\n\r\n var dataInicial = this.model[\"DataInicial\"];\r\n var dataFinal = this.model[\"DataFinal\"];\r\n if (dataInicial != null && dataFinal != null && new Date(dataInicial) > new Date(dataFinal)) {\r\n this.messages.push('DataInicialMaiorFinal');\r\n return;\r\n }\r\n\r\n var dataInicio = this.model[\"DataInicio\"];\r\n var dataFim = this.model[\"DataFim\"];\r\n if (dataInicio != null && dataFim != null && new Date(dataInicio) > new Date(dataFim)) {\r\n this.messages.push('DataInicioMaiorFim');\r\n return;\r\n }\r\n\r\n if (this.messages.length > 0)\r\n return;\r\n\r\n this.loading = true;\r\n\r\n this._dataAccessService\r\n .post(this.api, this.model, this.method)\r\n .subscribe(r => {\r\n\r\n if (r.success) {\r\n this.prop.modalAction = InfoModalAction.Save;\r\n this.prop.data = this.model;\r\n this._ref.close(this.prop);\r\n\r\n if (this.onsuccess.observers.length > 0)\r\n this.onsuccess.next();\r\n }\r\n\r\n else this.messages = r.messages;\r\n\r\n this.loading = false;\r\n });\r\n }\r\n\r\n close() {\r\n this.messages = [];\r\n this.loading = false;\r\n this._ref.close(this.prop);\r\n }\r\n\r\n writeValue(obj: any): void {\r\n this.model = obj;\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n setDisabledState?(isDisabled: boolean): void { }\r\n}\r\n","import { Component, Input, Inject, ElementRef, Renderer2 } from '@angular/core';\r\nimport { Router, NavigationStart, GuardsCheckStart, NavigationEnd } from '@angular/router';\r\nimport { InfoPlatformModel } from '../../model/platform.model';\r\nimport { InfoDataService } from '../../service/data.service';\r\nimport { InfoTranslateService } from '../../service/translate.service';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { InfoFormPropModel } from '../../model/form-prop.model';\r\nimport { InfoPageAction } from '../../enum/page-action.enum';\r\nimport { InfoModalAction } from '../../enum/modal-action.enum';\r\n\r\n@Component({\r\n\tselector: 'info-pagebar',\r\n\ttemplateUrl: './pagebar.component.html',\r\n\tstyleUrls: ['./pagebar.component.scss']\r\n})\r\nexport class InfoPagebarComponent {\r\n\r\n\t@Input() margintop = 0;\r\n\t@Input() icon: string;\r\n\t@Input() description: string;\r\n\t@Input() backurl: string = null;\r\n\t@Input() access: any = [];\r\n\t@Input() transparent: boolean = false;\r\n\r\n\tprivate _pageTitle: string;\r\n\tget pagetitle(){\r\n\t\treturn this._pageTitle;\r\n\t}\r\n\r\n\t@Input('pagetitle') set pagetitle(value: string){ \r\n\t\tthis._pageTitle = value.replace(/\\(/g, '<small>(').replace(/\\)/g, ')</small>');\r\n\t}\r\n\r\n\tloading = false;\r\n\tatalhoId: any = null;\r\n\tpodeCriarAtalho = false;\r\n\texibirAcessos = false;\r\n\r\n\tconstructor(private _router: Router,\r\n\t\t\t\tprivate _modal: MatDialog,\r\n\t\t\t\tprivate _dataService: InfoDataService,\r\n\t\t\t\tprivate _translate: InfoTranslateService,\r\n\t\t\t\tpublic _platform: InfoPlatformModel,\r\n\t\t\t\tprivate _renderer: Renderer2, private _element: ElementRef) { \r\n\t\t_router.events.subscribe(e => {\r\n if (e instanceof NavigationStart || e instanceof GuardsCheckStart)\r\n\t\t\t\tsetTimeout(() => this.loading = true, 0);\r\n\t\t\t\r\n\t\t\telse setTimeout(() => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (e instanceof NavigationEnd) {\r\n\t\t\t\t\tthis.podeCriarAtalho = !!this._platform.ShortcutApi && this._router.url != '/';\r\n\t\t\t\t\tthis.getAtalho();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n });\r\n\t}\r\n\r\n\tngOnInit(){\r\n\t\tthis._renderer.addClass(this._element.nativeElement, 'uxc' + this._platform.Config.ux);\r\n \r\n if (this._platform.Config.topMenu)\r\n this._renderer.addClass(this._element.nativeElement, 'topmenu');\r\n\t}\r\n\r\n\tgoBack(){\r\n\t\tthis._router.navigateByUrl(this.backurl);\r\n\t}\r\n\r\n\tgetAtalho() {\r\n\t\tif (!this.podeCriarAtalho)\r\n\t\t\treturn;\r\n\t\tthis.loading = true;\r\n\t\tthis._dataService.get(this._platform.ShortcutApi, 'GetByUrl', 'url='+this._router.url).subscribe(r => {\r\n\t\t\tthis.loading = false;\r\n\t\t\tif (r.success) this.atalhoId = (r.data || {}).Id;\r\n\t\t});\r\n\t}\r\n\r\n\ttoggleAtalho() {\r\n\t\tif (this.atalhoId) {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis._dataService.delete(this._platform.ShortcutApi, this.atalhoId).subscribe(r => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (r.success) this.atalhoId = null;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tthis.loading = true;\r\n\t\t\tthis.openModalAtalho().subscribe((r: InfoFormPropModel) => {\r\n\t\t\t\tthis.loading = false;\r\n\t\t\t\tif (r && r.modalAction == InfoModalAction.Save) this.getAtalho();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tprivate openModalAtalho() {\r\n\t\tvar prop = new InfoFormPropModel();\r\n\t\tprop.api = this._platform.ShortcutApi;\r\n\t\tprop.set(InfoPageAction.New, { \r\n\t\t\tId: this.atalhoId,\r\n\t\t\tUrl: this._router.url,\r\n\t\t\tTitulo: `${this._translate.translate(this._platform.PaginaAtiva.Titulo)} / ${this._translate.translate(this.pagetitle)}`\r\n\t\t});\r\n\r\n\t\tlet ref = this._modal.open(AtalhoModalComponent, {\r\n data: prop,\r\n\t\t\tdisableClose: true,\r\n\t\t\twidth: '400px'\r\n\t\t});\r\n\t\t\r\n\t\tref.keydownEvents().subscribe((r) => {\r\n if (!this.loading && (r.key == \"Escape\" || r.key == \"Esc\" || r.key == \"27\"))\r\n ref.close();\r\n });\r\n\r\n return ref.afterClosed();\r\n\t}\r\n}\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"CriarAcessoRapido\" [form]=\"formModal\" [(ngModel)]=\"model\">\r\n\t\t\t<form autocomplete=\"off\" #formModal=\"ngForm\">\r\n\t\t\t\t<div class=\"row\"> \r\n\t\t\t\t\t<info-input class=\"col-md-12\" [(ngModel)]=\"model.Titulo\" placeholder=\"Titulo\" name=\"Titulo\" required></info-input>\r\n\t\t\t\t</div>\r\n\t\t\t</form>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class AtalhoModalComponent {\r\n\tmodel: any = {};\r\n\tconstructor(@Inject(MAT_DIALOG_DATA) public prop: InfoFormPropModel) {\r\n\t\tthis.model = Object.assign({}, prop.data);\r\n\t\tthis.model.Id = this.model.Id || '00000000-0000-0000-0000-000000000000';\r\n\t}\r\n}","import { Directive, ElementRef, Renderer2, Input, forwardRef, Inject, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'\r\nimport { createTextMaskInputElement } from 'text-mask-core/dist/textMaskCore'\r\nimport emailMask from 'text-mask-addons/dist/emailMask';\r\nimport createAutoCorrectedDatePipe from 'text-mask-addons/dist/createAutoCorrectedDatePipe';\r\n\r\n@Directive({\r\n host: {\r\n '(input)': 'onInput($event.target.value)',\r\n '(blur)': '_onTouched()'\r\n },\r\n selector: '[setmask]',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoMaskDirective),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class InfoMaskDirective implements ControlValueAccessor, OnChanges {\r\n private maskInputElement: any\r\n private inputElement: HTMLInputElement\r\n\r\n private lastValue: any\r\n private mask: any\r\n\r\n @Input('setmask') maskType: any\r\n\r\n _onTouched = () => { }\r\n _onChange = (_: any) => { }\r\n\r\n constructor(@Inject(Renderer2) private renderer: Renderer2, @Inject(ElementRef) private element: ElementRef) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.setupMask(true);\r\n\r\n if (this.maskInputElement !== undefined)\r\n this.maskInputElement.update(this.inputElement.value)\r\n }\r\n\r\n writeValue(value: any) {\r\n this.setupMask()\r\n\r\n const normalizedValue = value == null ? '' : value\r\n this.renderer.setProperty(this.inputElement, 'value', normalizedValue)\r\n\r\n if (this.maskInputElement !== undefined) {\r\n this.maskInputElement.update(value)\r\n }\r\n }\r\n\r\n registerOnChange(fn: (value: any) => any): void { this._onChange = fn }\r\n\r\n registerOnTouched(fn: () => any): void { this._onTouched = fn }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.renderer.setProperty(this.element.nativeElement, 'disabled', isDisabled)\r\n }\r\n\r\n onInput(value) {\r\n this.setupMask()\r\n\r\n if (this.maskInputElement !== undefined) {\r\n this.maskInputElement.update(value)\r\n\r\n value = this.inputElement.value\r\n\r\n if (this.lastValue !== value) {\r\n this.lastValue = value\r\n this._onChange(value)\r\n }\r\n }\r\n }\r\n\r\n private setupMask(create = false) {\r\n if (!this.inputElement) {\r\n if (this.element.nativeElement.tagName === 'INPUT')\r\n this.inputElement = this.element.nativeElement;\r\n\r\n else this.inputElement = this.element.nativeElement.getElementsByTagName('INPUT')[0];\r\n }\r\n\r\n if (this.inputElement && create) {\r\n\r\n let pipe = undefined;\r\n\r\n if (this.maskType == 'email')\r\n this.mask = emailMask;\r\n \r\n else if (this.maskType == 'phone')\r\n this.mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n \r\n else if (this.maskType == 'cel')\r\n this.mask = ['(', /\\d/, /\\d/, ')', ' ', /\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/, /\\d/];\r\n\r\n else if (this.maskType == 'cep')\r\n this.mask = [/\\d/, /\\d/, /\\d/, /\\d/, /\\d/, '-', /\\d/, /\\d/, /\\d/];\r\n \r\n else if (this.maskType == 'date') {\r\n pipe = createAutoCorrectedDatePipe('dd/mm/yyyy');\r\n this.mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'datemonth') {\r\n pipe = createAutoCorrectedDatePipe('mm/yyyy');\r\n this.mask = [/\\d/, /\\d/, '/', /\\d/, /\\d/, /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'time') {\r\n pipe = createAutoCorrectedDatePipe('HH:MM');\r\n this.mask = [/\\d/, /\\d/, ':', /\\d/, /\\d/];\r\n }\r\n else if (this.maskType == 'cpf')\r\n this.mask = [/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n\r\n else if (this.maskType == 'cnpj')\r\n this.mask = [/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'.',/\\d/,/\\d/,/\\d/,'/',/\\d/,/\\d/,/\\d/,/\\d/,'-',/\\d/,/\\d/];\r\n\r\n else this.mask = [];\r\n\r\n let maskConfig = {\r\n mask: this.mask,\r\n guide: true,\r\n placeholderChar: '_',\r\n pipe: pipe,\r\n modelClean: true,\r\n keepCharPositions: false,\r\n };\r\n\r\n this.maskInputElement = createTextMaskInputElement(\r\n Object.assign({ inputElement: this.inputElement }, maskConfig)\r\n )\r\n }\r\n\r\n }\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[unmask]'\r\n})\r\nexport class InfoUnmaskDirective {\r\n\r\n constructor(private elementRef: ElementRef, private model: NgControl) { }\r\n\r\n @HostListener('input') inputChange() {\r\n const newValue = this.elementRef.nativeElement.value.replace(/\\D/g, '')\r\n this.model.control.setValue(newValue);\r\n }\r\n}","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CurrencyMaskModule } from 'ng2-currency-mask';\r\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\n\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\n\r\nimport { InfoTranslatePipe } from './pipe/translate.pipe';\r\nimport { InfoMaskPipe } from './pipe/mask.pipe';\r\nimport { InfoMaskDirective } from './directives/mask.directive';\r\nimport { InfoUnmaskDirective } from './directives/unmask.directive';\r\n\r\n// Controls\r\nimport { InfoAlertComponent } from './controls/alert/alert.component';\r\nimport { InfoAutoCompleteComponent } from './controls/autocomplete/autocomplete.component';\r\nimport { InfoBigCheckboxComponent } from './controls/big-checkbox/big-checkbox.component';\r\nimport { InfoCardComponent } from './controls/card/card.component';\r\nimport { InfoMenuCardComponent } from './controls/card-menu/card-menu.component';\r\nimport { InfoCheckboxComponent } from './controls/checkbox/checkbox.component';\r\nimport { InfoDateComponent } from './controls/date/date.component';\r\nimport { InfoDateMonthComponent } from './controls/date-month/date-month.component';\r\nimport { InfoGridComponent } from './controls/grid/grid.component';\r\nimport { InfoInputComponent } from './controls/input/input.component';\r\nimport { InfoInputListComponent } from './controls/input-list/input-list.component';\r\nimport { InfoListCheckboxComponent } from './controls/list-checkbox/list-checkbox.component';\r\nimport { InfoMessageComponent } from './controls/message/message.component';\r\nimport { InfoPaginatorComponent } from './controls/paginator/paginator.component';\r\nimport { InfoSelectComponent } from './controls/select/select.component';\r\nimport { InfoTimelineComponent } from './controls/timeline/timeline.component';\r\nimport { InfoEditorComponent } from './controls/editor/editor.component';\r\nimport { InfoMultiSelectComponent } from './controls/multi-select/multi-select.component';\r\nimport { InfoChipsComponent } from './controls/chips/chips.component';\r\n\r\n// Layouts\r\nimport { InfoDialogComponent } from './layouts/dialog/dialog.component';\r\nimport { InfoLoadingComponent } from './layouts/loading/loading.component';\r\nimport { InfoMainComponent } from './layouts/main/main.component';\r\nimport { InfoModalComponent } from './layouts/modal/modal.component';\r\nimport { InfoPagebarComponent, AtalhoModalComponent } from './layouts/pagebar/pagebar.component';\r\nimport { InfoSidebarComponent } from './layouts/sidebar/sidebar.component';\r\nimport { InfoTopbarComponent } from './layouts/topbar/topbar.component';\r\nimport { RefreshSessionTimeModalComponent } from './service/authentication.service';\r\nimport { InfoTopMenuComponent } from './layouts/topmenu/topmenu.component';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tHttpClientModule,\r\n\t\tFormsModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatCardModule,\r\n\t\tMatIconModule,\r\n\t\tMatInputModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatListModule,\r\n\t\tMatSelectModule,\r\n\t\tMatCheckboxModule,\r\n\t\tMatRadioModule,\r\n\t\tMatButtonModule,\r\n\t\tMatDatepickerModule,\r\n\t\tMatMomentDateModule,\r\n\t\tMatDialogModule,\r\n\t\tMatProgressBarModule,\r\n\t\tMatAutocompleteModule,\r\n\t\tMatTooltipModule,\r\n\t\tRouterModule,\r\n\t\tCurrencyMaskModule,\r\n\t\tAngularEditorModule,\r\n\t\tMatChipsModule,\r\n\t],\r\n\tdeclarations: [\r\n\t\tInfoTranslatePipe,\r\n\t\tInfoMaskPipe,\r\n\r\n\t\tInfoMaskDirective,\r\n\t\tInfoUnmaskDirective,\r\n\r\n\t\tInfoAlertComponent,\r\n\t\tInfoAutoCompleteComponent,\r\n\t\tInfoBigCheckboxComponent,\r\n\t\tInfoCardComponent,\r\n\t\tInfoMenuCardComponent,\r\n\t\tInfoCheckboxComponent,\r\n\t\tInfoDateComponent,\r\n\t\tInfoDateMonthComponent,\r\n\t\tInfoGridComponent,\r\n\t\tInfoInputComponent,\r\n\t\tInfoInputListComponent,\r\n\t\tInfoListCheckboxComponent,\r\n\t\tInfoMessageComponent,\r\n\t\tInfoPaginatorComponent,\r\n\t\tInfoSelectComponent,\r\n\t\tInfoTimelineComponent,\r\n\t\tInfoEditorComponent,\r\n\t\tInfoMultiSelectComponent,\r\n\t\tInfoChipsComponent,\r\n\r\n\t\tInfoDialogComponent,\r\n\t\tInfoLoadingComponent,\r\n\t\tInfoMainComponent,\r\n\t\tInfoModalComponent,\r\n\t\tInfoPagebarComponent,\r\n\t\tInfoSidebarComponent,\r\n\t\tInfoTopbarComponent,\r\n\t\tInfoTopMenuComponent,\r\n\t\tAtalhoModalComponent,\r\n\t\tRefreshSessionTimeModalComponent,\r\n\t],\r\n\texports: [\r\n\t\tInfoTranslatePipe,\r\n\t\tInfoMaskPipe,\r\n\r\n\t\tInfoAlertComponent,\r\n\t\tInfoAutoCompleteComponent,\r\n\t\tInfoBigCheckboxComponent,\r\n\t\tInfoCardComponent,\r\n\t\tInfoMenuCardComponent,\r\n\t\tInfoCheckboxComponent,\r\n\t\tInfoDateComponent,\r\n\t\tInfoDateMonthComponent,\r\n\t\tInfoGridComponent,\r\n\t\tInfoInputComponent,\r\n\t\tInfoInputListComponent,\r\n\t\tInfoListCheckboxComponent,\r\n\t\tInfoMessageComponent,\r\n\t\tInfoPaginatorComponent,\r\n\t\tInfoSelectComponent,\r\n\t\tInfoTimelineComponent,\r\n\t\tInfoEditorComponent,\r\n\t\tInfoMultiSelectComponent,\r\n\t\tInfoChipsComponent,\r\n\r\n\t\tInfoDialogComponent,\r\n\t\tInfoLoadingComponent,\r\n\t\tInfoMainComponent,\r\n\t\tInfoModalComponent,\r\n\t\tInfoPagebarComponent,\r\n\t\tInfoSidebarComponent,\r\n\t\tInfoTopbarComponent,\r\n\t\tInfoTopMenuComponent,\r\n\t],\r\n\tschemas: [\r\n\t\tCUSTOM_ELEMENTS_SCHEMA\r\n\t],\r\n\tentryComponents: [\r\n\t\tInfoDialogComponent,\r\n\t\tAtalhoModalComponent,\r\n\t\tRefreshSessionTimeModalComponent\r\n\t]\r\n})\r\nexport class InfoLibraryModule { }"]}
|