info-library 2.10.52 → 2.10.53
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 +48 -49
- 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/alert/alert.component.js +1 -1
- package/esm2015/controls/autocomplete/autocomplete.component.js +1 -1
- package/esm2015/controls/big-checkbox/big-checkbox.component.js +1 -1
- package/esm2015/controls/card/card.component.js +1 -1
- package/esm2015/controls/card-menu/card-menu.component.js +1 -1
- package/esm2015/controls/checkbox/checkbox.component.js +1 -1
- package/esm2015/controls/chips/chips.component.js +1 -1
- package/esm2015/controls/date/date.component.js +1 -1
- package/esm2015/controls/date-month/date-month.component.js +1 -1
- package/esm2015/controls/editor/editor.component.js +1 -1
- package/esm2015/controls/grid/grid.component.js +3 -1
- package/esm2015/controls/input/input.component.js +1 -1
- package/esm2015/controls/input-list/input-list.component.js +1 -1
- package/esm2015/controls/list-checkbox/list-checkbox.component.js +1 -1
- package/esm2015/controls/message/message.component.js +1 -1
- package/esm2015/controls/multi-select/multi-select.component.js +1 -1
- package/esm2015/controls/paginator/paginator.component.js +1 -1
- package/esm2015/controls/select/select.component.js +1 -1
- package/esm2015/controls/timeline/timeline.component.js +1 -1
- package/esm2015/directives/mask.directive.js +1 -1
- package/esm2015/directives/unmask.directive.js +1 -1
- package/esm2015/enum/dialog-buttons.enum.js +1 -1
- package/esm2015/enum/index.js +1 -1
- package/esm2015/enum/modal-action.enum.js +1 -1
- package/esm2015/enum/page-action.enum.js +1 -1
- package/esm2015/global-config.js +1 -1
- package/esm2015/info-library.js +1 -1
- package/esm2015/info-library.module.js +1 -1
- package/esm2015/layouts/dialog/dialog.component.js +1 -1
- package/esm2015/layouts/loading/loading.component.js +1 -1
- package/esm2015/layouts/main/main.component.js +1 -1
- package/esm2015/layouts/modal/modal.component.js +1 -1
- package/esm2015/layouts/pagebar/pagebar.component.js +23 -7
- package/esm2015/layouts/sidebar/sidebar.component.js +2 -2
- package/esm2015/layouts/topbar/topbar.component.js +3 -3
- package/esm2015/layouts/topmenu/topmenu.component.js +1 -1
- package/esm2015/model/app-config.model.js +1 -1
- package/esm2015/model/data-access.model.js +1 -1
- package/esm2015/model/dialog-result.model.js +1 -1
- package/esm2015/model/dialog.model.js +1 -1
- package/esm2015/model/form-prop.model.js +1 -1
- package/esm2015/model/grid-button.model.js +1 -1
- package/esm2015/model/index.js +1 -1
- package/esm2015/model/last-search.model.js +1 -1
- package/esm2015/model/login.model.js +1 -1
- package/esm2015/model/method-grid-button.model.js +1 -1
- package/esm2015/model/notification.model.js +1 -1
- package/esm2015/model/pagebar-buttons.model.js +1 -1
- package/esm2015/model/permission.model.js +1 -1
- package/esm2015/model/platform.model.js +4 -1
- package/esm2015/model/session.model.js +1 -1
- package/esm2015/pipe/index.js +1 -1
- package/esm2015/pipe/mask.pipe.js +1 -1
- package/esm2015/pipe/translate.pipe.js +1 -1
- package/esm2015/public_api.js +1 -1
- package/esm2015/service/authentication.service.js +1 -1
- package/esm2015/service/configuration.service.js +1 -1
- package/esm2015/service/data.service.js +1 -1
- package/esm2015/service/index.js +1 -1
- package/esm2015/service/theme.service.js +1 -1
- package/esm2015/service/translate.service.js +1 -1
- package/fesm2015/info-library.js +30 -9
- package/fesm2015/info-library.js.map +1 -1
- package/info-library.metadata.json +1 -1
- package/layouts/pagebar/pagebar.component.d.ts +3 -1
- package/model/platform.model.d.ts +1 -0
- 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","Menu","ShortcutApi","setConfig","config","Permissoes","Empresas","Parametros","Count","Itens","InfoDialogButtons","InfoTranslateService","_translations","_plataforma","_key","lang","localStorage","getItem","_currentLang","Object","defineProperty","setItem","translate","key","translation","currentLang","Values","getCalendar","Calendar","instant","Injectable","args","providedIn","Inject","InfoTranslatePipe","_translate","transform","value","Pipe","pure","InfoMaskPipe","mask","from","map","c","conformToMask","guide","conformedValue","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","e","rejected","result","done","then","apply","__generator","body","f","y","t","g","_","sent","trys","ops","verb","throw","return","Symbol","iterator","n","v","op","TypeError","call","pop","length","push","create","InfoDataService","_apiController","_http","_router","getToken","token","navigateByUrl","getHeaderToken","HttpHeaders","getAPIUrl","controller","toString","replace","toLowerCase","getNoToken","param","_this","get","pipe","r","InfoDataAccessModel","catchError","errorHandling","headers","getById","id","postNoToken","post","delete","undefined","alert","deleteByModel","httpOptions","request","formData","FormData","append","redirect","status","document","location","href","of","HttpClient","Router","InfoAuthenticationService","_sessao","_dataService","_modal","_keySessao","_sessionTime","getSessao","getPlatform","canActivate","activatedRouteSnapshot","routerStateSnapshot","isLogged","logout","refreshSessionTime","definePaginaAtiva","getPermission","hasPermission","indexOf","paramMap","error","switchMap","res","permissao","params","RegExp","p","toPromise","_a","clearInterval","_sessionTimeInterval","TempoInatividade","setInterval","open","RefreshSessionTimeModalComponent","disableClose","afterClosed","subscribe","login","usuario","senha","reCaptchaToken","codigo2FA","removeSessao","Usuario","Senha","ReCaptchaToken","Codigo2FA","Token","InfoLoginModel","trocarEmpresa","empresaId","EmpresaId","clonar","reload","getPermissions","logAtividade","setTrocaSenha","setRecuperarSenha","setResetarSenha","getLoginResources","keyFunction","urlGenerica","getUrlGenerica","some","s","URL","ChaveFuncionalidade","Acesso","validaSessao","ret","Observable","observer","complete","forEach","item","filter","JSON","stringify","keys","includes","aux","substring","split","tituloMenu","PaginaAtiva","Icone","Titulo","m","Title","Icon","retorno","urlParts","i","isNaN","parseFloat","isGuid","error_description","match","InfoSessionModel","MatDialog","_ref","time","ngOnInit","interval","ativo","close","Component","template","MatDialogRef","InfoThemeService","_overlay","_plataform","_session","setTheme","find","unificarTopbar","getContainerElement","classList","themeClassesToRemove","remove","add","removeAttribute","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","cssFile","createElement","type","rel","head","appendChild","cssClient","InfoAlertComponent","onClose","selector","Input","InfoAutoCompleteComponent","_dataAcess","control","FormControl","placeholder","required","selectfirst","disablednoregisters","getdataonchange","getdataonchangetime","maxlist","startwith","minchar","onselecteditem","EventEmitter","selectedValue","initialized","_loading","_params","_disabled","_data","setDisabledState","loading","getData","a","disable","enable","setTimeout","writeValue","Id","Math","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","Date","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","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","parseInt","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","change","show","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","focused","editorConfig","editable","spellcheck","height","minHeight","maxHeight","minWidth","enableToolbar","showToolbar","defaultParagraphSeparator","toolbarPosition","fonts","class","getGuid","querySelector","addEventListener","editor","editorToolbar","saveSelection","sanitize","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","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","submit","InfoPagebarComponent","margintop","transparent","atalhoId","podeCriarAtalho","exibirAcessos","GuardsCheckStart","NavigationEnd","getAtalho","goBack","toggleAtalho","openModalAtalho","Url","AtalhoModalComponent","InfoMaskDirective","renderer","_onTouched","_onChange","changes","setupMask","maskInputElement","normalizedValue","setProperty","onInput","lastValue","tagName","getElementsByTagName","maskType","emailMask","maskConfig","Directive","(input)","(blur)","InfoUnmaskDirective","elementRef","inputChange","newValue","NgControl","HostListener","NgModule","imports","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","MatCardModule","MatIconModule","MatInputModule","MatFormFieldModule","MatListModule","MatSelectModule","MatCheckboxModule","MatRadioModule","MatButtonModule","MatDatepickerModule","MatMomentDateModule","MatDialogModule","MatProgressBarModule","MatAutocompleteModule","MatTooltipModule","RouterModule","CurrencyMaskModule","AngularEditorModule","MatChipsModule","declarations","InfoLoadingComponent","exports","schemas","CUSTOM_ELEMENTS_SCHEMA","entryComponents"],"mappings":"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","sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const DICTIONARIES_CONFIG = new InjectionToken<any>('DICTIONARIES_CONFIG');\r\nexport const APICONTROLLER_CONFIG = new InjectionToken<any>('APICONTROLLER_CONFIG');","export class InfoAppConfigModel {\r\n production: boolean = false;\r\n webapiUrl: string = '';\r\n processingUrl: string = '';\r\n theme: string = '';\r\n dictionary: string = '';\r\n ux: Number = 2;\r\n style: string = '';\r\n topMenu: boolean = false;\r\n enabledPrime: boolean = false;\r\n}","export class InfoDataAccessModel {\r\n \r\n success: boolean;\r\n messages: string[] = [];\r\n name: string = null;\r\n description: string = null;\r\n data: any;\r\n total: number = 0;\r\n parentId: number = null;\r\n referenceGuid: string = null;\r\n external = false;\r\n\r\n constructor(data: any, success?: boolean, messages?: string[]) {\r\n\r\n if (data != null) {\r\n if (data.Name != null && data.Name != \"\")\r\n this.name = data.Name\r\n\r\n if (data.Description != null && data.Description != \"\")\r\n this.description = data.Description;\r\n\r\n if (data.Total != null)\r\n this.total = data.Total;\r\n \r\n if (data.Success != null)\r\n success = data.Success;\r\n\r\n if (data.Messages)\r\n messages = data.Messages;\r\n\r\n if (data.ParentId != null)\r\n this.parentId = data.ParentId;\r\n\r\n if (data.ReferenceGuid != null)\r\n this.referenceGuid = data.ReferenceGuid;\r\n \r\n if (data.External != null)\r\n this.external = data.External;\r\n\r\n this.data = data.Data;\r\n }\r\n \r\n this.success = success == null ? true : success;\r\n this.messages = messages;\r\n\r\n if (this.messages == null || this.messages == [])\r\n this.messages = new Array();\r\n }\r\n}","import { InfoDialogButtons } from \"../enum/dialog-buttons.enum\";\r\n\r\nexport class InfoDialogResult {\r\n data?: any = null;\r\n button: InfoDialogButtons;\r\n\r\n constructor(button: InfoDialogButtons);\r\n constructor(button: InfoDialogButtons, data?: any) {\r\n this.button = button;\r\n this.data = data;\r\n }\r\n}","export class InfoDialogModel {\r\n\r\n yesOrNo: boolean = false\r\n title: string\r\n message: string = ''\r\n width: number = 450;\r\n\r\n labelOk: string = 'Ok'\r\n labelCancel: string = 'Cancelar'\r\n labelAux: string = null\r\n\r\n colorOk: string = ''\r\n colorCancel: string = ''\r\n colorAux: string = ''\r\n\r\n processingMode: boolean = false;\r\n\r\n disableButtonCancel: boolean = false;\r\n}","export enum InfoPageAction {\r\n None = -1,\r\n\r\n View = 0,\r\n New = 1,\r\n Edit = 2,\r\n Delete = 3,\r\n Search = 4,\r\n}","export enum InfoModalAction {\r\n None,\r\n Ok,\r\n Yes,\r\n No,\r\n Cancel,\r\n Save,\r\n Special,\r\n Aux\r\n}","import { InfoPageAction } from \"../enum/page-action.enum\";\r\nimport { InfoModalAction } from \"../enum/modal-action.enum\";\r\n\r\nexport class InfoFormPropModel {\r\n\r\n title: string;\r\n readonly: boolean;\r\n data: any;\r\n pageAction: InfoPageAction;\r\n modalAction: InfoModalAction = InfoModalAction.None;\r\n modalComponent: any = null;\r\n api: any = null;\r\n\r\n set(pageAction: InfoPageAction, data: any) {\r\n\r\n this.data = data;\r\n this.readonly = pageAction == InfoPageAction.View;\r\n this.pageAction = pageAction;\r\n\r\n switch (pageAction) {\r\n\r\n case InfoPageAction.New:\r\n this.title = 'Novo';\r\n break;\r\n\r\n case InfoPageAction.Search:\r\n this.title = 'Pesquisar';\r\n break;\r\n\r\n case InfoPageAction.View:\r\n this.title = 'Visualizar';\r\n break;\r\n\r\n case InfoPageAction.Edit:\r\n this.title = 'Editar';\r\n break;\r\n\r\n case InfoPageAction.Delete:\r\n this.title = 'Remover';\r\n break;\r\n\r\n default:\r\n this.title = '';\r\n break;\r\n }\r\n }\r\n}","export class InfoGridButtonModel {\r\n \r\n label: string;\r\n passId: boolean;\r\n icon: string;\r\n navigateTo: string;\r\n modalComponent: any = null;\r\n widthModalComponent: Number = 500;\r\n api: any = null;\r\n method: string = null;\r\n showOnlyClass: string = null;\r\n disabledField: string = null;\r\n confirm: boolean;\r\n\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string, confirm: boolean);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function = null, widthModalComponent: Number = null, api: any = null, method: string = null, disabledField: string = null, confirm: boolean = true) {\r\n this.label = label;\r\n this.passId = passId;\r\n this.icon = icon;\r\n this.navigateTo = navigateTo;\r\n \r\n this.modalComponent = modalComponent;\r\n this.widthModalComponent = widthModalComponent;\r\n\r\n this.api = api;\r\n this.method = method;\r\n this.disabledField = disabledField;\r\n this.confirm = confirm;\r\n }\r\n}","export class InfoMethodGridButtonModel {\r\n \r\n label: string;\r\n icon: string;\r\n method: () => any = null;\r\n\r\n constructor(label: string, icon: string, method: () => any)\r\n {\r\n this.label = label;\r\n this.icon = icon;\r\n this.method = method;\r\n }\r\n}","export class InfoLastSearchModel {\r\n url: string = '';\r\n model: any = null;\r\n index: number = 0;\r\n enabledSearch: boolean = false;\r\n}","export class InfoLoginModel {\r\n\r\n success: boolean = false;\r\n messages: string;\r\n data: any;\r\n\r\n constructor(success: boolean, messages: string, data?: any) {\r\n this.success = success;\r\n this.messages = messages;\r\n this.data = data;\r\n }\r\n}","export class InfoPagebarButtonModel {\r\n label: string = '';\r\n url: string = '';\r\n icon: string = '';\r\n modal: any = null;\r\n modalwidth: number = 700;\r\n\r\n constructor(label: string, url: string);\r\n constructor(label: string, url: string, icon: string);\r\n constructor(label: string, url: string, icon: string, modal: any, modalwidth: number);\r\n constructor(label: string, url: string, icon: string = 'chevron_right', modal: any = null, modalwidth: number = 700){\r\n this.label = label;\r\n this.url = url;\r\n this.icon = icon;\r\n this.modal = modal;\r\n this.modalwidth = modalwidth;\r\n }\r\n}","export class InfoPermissionModel {\r\n Acesso: boolean;\r\n URL: string;\r\n ChaveFuncionalidade: string;\r\n}","import { InfoAppConfigModel } from \"./app-config.model\";\r\n\r\nexport class InfoPlatformModel {\r\n\r\n TokenKey: string = 'token';\r\n SessionKey: string = 'sessao';\r\n \r\n ConfigIsNull: boolean = true;\r\n Themes: any = [];\r\n Config: InfoAppConfigModel = new InfoAppConfigModel();\r\n\r\n PaginaAtiva: any;\r\n UnificarTopbar: boolean = true;\r\n MenuMin: boolean = false;\r\n ModoPrime: boolean = false;\r\n\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 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 return (this._translations[this.currentLang].Values[this._plataforma.Config.dictionary] || {})[key] || this._translations[this.currentLang].Values[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 _sessionTime: number = null;\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()) {\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 this.refreshSessionTime();\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 clearInterval(this._sessionTimeInterval);\r\n if (this._sessao.TempoInatividade <= 0) {\r\n this._sessionTime = null;\r\n } else {\r\n this._sessionTime = this._sessao.TempoInatividade;\r\n \r\n if (this._sessao.TempoInatividade <= 0) {\r\n this._sessionTime = null;\r\n return;\r\n }\r\n\r\n this._sessionTimeInterval = setInterval(() => {\r\n if (this._sessionTime == null) {\r\n this._sessionTime = this._sessao.TempoInatividade;\r\n \r\n if (this._sessionTime == null || this._sessionTime <= 0) {\r\n this.refreshSessionTime();\r\n return;\r\n }\r\n }\r\n\r\n if (this._sessionTime > 0)\r\n this._sessionTime--;\r\n else {\r\n clearInterval(this._sessionTimeInterval);\r\n let ref = this._modal.open(RefreshSessionTimeModalComponent, {\r\n data: null,\r\n disableClose: true,\r\n width: '400px'\r\n });\r\n \r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n clearInterval(this._sessionTimeInterval);\r\n \r\n if (r == null)\r\n this.logout();\r\n\r\n else if (r.modalAction == InfoModalAction.Yes)\r\n this.refreshSessionTime();\r\n\r\n else this.logout();\r\n });\r\n }\r\n }, 1000);\r\n }\r\n\t}\r\n\r\n login(usuario: string, senha: string, reCaptchaToken: string = null, codigo2FA: string = null): Observable<any> {\r\n this.removeSessao();\r\n\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/autenticar', { Usuario: usuario, Senha: senha, ReCaptchaToken: reCaptchaToken, Codigo2FA: codigo2FA })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data.Token);\r\n \r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n trocarEmpresa(usuario: string, empresaId: number): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/trocarempresa', { EmpresaId: empresaId }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n clonar(usuario: string): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/clonar', { Usuario: usuario }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n logout() {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); });\r\n }\r\n\r\n getPermissions(url: string, logAtividade: boolean = false): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/getpermissao?url=' + url + '&logatividade=' + logAtividade.toString(), { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setTrocaSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/TrocarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setRecuperarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/RecuperarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setResetarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/ResetarSenha', model)\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n getLoginResources(): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/app/GetLoginResources')\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n hasPermission(url: string, keyFunction: string = 'view'): boolean {\r\n\r\n if (url == '/' && keyFunction == 'view')\r\n return true;\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n return this._sessao.Permissoes.some(s => s.URL == urlGenerica && s.ChaveFuncionalidade == keyFunction && s.Acesso);\r\n }\r\n\r\n getPermission(url: string, logAtividade: boolean = false): Observable<boolean> {\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n let contemUrl = this._sessao.Permissoes.some(s => s.URL == urlGenerica);\r\n if (contemUrl) {\r\n if (logAtividade) {\r\n return this.validaSessao(url).pipe(map(ret => {\r\n if (!ret.success)\r\n this.logout();\r\n \r\n return true;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n } else {\r\n return new Observable(function (observer) {\r\n observer.next(true);\r\n observer.complete();\r\n });\r\n }\r\n } else {\r\n return this.getPermissions(urlGenerica, logAtividade).pipe(map(ret => {\r\n let permissao = true;\r\n if (ret.success) {\r\n if (ret.data == null) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n ret.data.forEach(item => {\r\n if (this._sessao.Permissoes.filter(s => s.URL == item.URL && s.ChaveFuncionalidade == item.ChaveFuncionalidade).length == 0)\r\n this._sessao.Permissoes.push(item);\r\n });\r\n\r\n ret.data.some(s => s.URL == urlGenerica)\r\n\r\n localStorage.setItem(this._keySessao, JSON.stringify(this._sessao));\r\n }\r\n\r\n return permissao;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n }\r\n }\r\n\r\n validaSessao(url: string): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/validasessao?url=' + url, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r === true, '', r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n removeSessao() {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('Dashboard')) delete localStorage[key];\r\n });\r\n }\r\n\r\n definePaginaAtiva(url) {\r\n\r\n if (this._plataforma.Menu == null || url == null) {\r\n this._plataforma.PaginaAtiva = null;\r\n return;\r\n }\r\n\r\n let aux: string[] = url.substring(1).replace(/-/g, '').toLowerCase().split('/');\r\n let tituloMenu: string = aux.length > 0 ? aux[0].toString() : url;\r\n\r\n if (tituloMenu.indexOf('ashboard') > -1)\r\n this._plataforma.PaginaAtiva = { Icone: 'widgets', Titulo: 'Dashboard' };\r\n\r\n else {\r\n let item: any = this._plataforma.Menu.filter(m => m.Title.toLowerCase().indexOf(tituloMenu) > -1);\r\n\r\n if (item != null && item.length > 0)\r\n this._plataforma.PaginaAtiva = { Icone: item[0].Icon, Titulo: item[0].Title };\r\n else this._plataforma.PaginaAtiva = { Icone: 'security', Titulo: 'Plataforma' };\r\n }\r\n }\r\n\r\n getUrlGenerica(url: string): string {\r\n let retorno = \"\";\r\n let urlParts: string[] = url.split('/');\r\n for (var i = 0; i < urlParts.length; i++) {\r\n if (!isNaN(parseFloat(urlParts[i])) || this.isGuid(urlParts[i]) || urlParts[i].toLowerCase() == 'novo')\r\n break;\r\n else\r\n retorno += '/' + urlParts[i];\r\n }\r\n return retorno.substring(1);\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse): ObservableInput<InfoLoginModel> {\r\n if (e.status == 401) \r\n this.logout();\r\n\r\n else if (e.status == 500)\r\n this._router.navigateByUrl('500');\r\n\r\n else if (e.error != null && e.error.error_description != null)\r\n return of(new InfoLoginModel(false, e.error.error_description));\r\n\r\n else return of(new InfoLoginModel(false, 'Houve um problema e não foi possível conectar'));\r\n }\r\n\r\n private isGuid(value) : boolean {\r\n return (value || '').match('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') !== null;\r\n }\r\n}\r\n\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"Inatividade\" (onsave)=\"ativo(true)\" labelsubmit=\"Sim\" labelcancel=\"({{ time }}) {{ 'Nao' | translate }}\">\r\n <label style=\"font-size:130%\">{{ 'VoceAindaEstaUtilizandoPlataforma' | translate }}</label>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class RefreshSessionTimeModalComponent {\r\n time = 15;\r\n interval;\r\n\r\n\tconstructor(private _ref: MatDialogRef<RefreshSessionTimeModalComponent>) { }\r\n\r\n ngOnInit() {\r\n clearInterval(this.interval);\r\n \r\n this.interval = setInterval(() => {\r\n if (this.time > 0)\r\n this.time--;\r\n else {\r\n this.ativo(false);\r\n clearInterval(this.interval);\r\n }\r\n }, 1000);\r\n }\r\n \r\n ativo(ativo: boolean) {\r\n this._ref.close({ modalAction: ativo ? InfoModalAction.Yes : InfoModalAction.No });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoSessionModel } from '../model/session.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoThemeService {\r\n\r\n constructor(public _overlay: OverlayContainer, public _plataform: InfoPlatformModel, public _session: InfoSessionModel) { }\r\n\r\n public setTheme(theme) {\r\n // console.log('info-theme.setTheme', theme);\r\n\r\n if (this._plataform.Themes != null){\r\n let item = this._plataform.Themes.find(t => t.name == theme);\r\n this._plataform.UnificarTopbar = item == null ? false : item.unificarTopbar;\r\n }\r\n\r\n let _overlay = this._overlay.getContainerElement().classList;\r\n let themeClassesToRemove: any = Array.from(_overlay).filter((item: string) => item.includes('-theme'));\r\n \r\n if (themeClassesToRemove && themeClassesToRemove.length > 0)\r\n _overlay.remove(themeClassesToRemove);\r\n\r\n _overlay.remove('alternative-layout');\r\n _overlay.add(theme);\r\n\r\n document.body.removeAttribute('class');\r\n document.body.classList.add(theme);\r\n\r\n if (this._plataform.UnificarTopbar)\r\n document.body.classList.add('alternative-layout');\r\n \r\n if (this._plataform.MenuMin)\r\n document.body.classList.add('menu-min');\r\n \r\n if (this._plataform.ModoPrime)\r\n document.body.classList.add('modo-prime');\r\n\r\n document.body.classList.add('ux' + (this._plataform.Config.ux ? this._plataform.Config.ux : 2));\r\n\r\n sessionStorage.setItem('at', theme);\r\n localStorage.setItem('at', theme);\r\n }\r\n\r\n public setThemeByLoggedCompany() {\r\n // console.log('info-theme.setThemeByLoggedCompany', this._session.TemaId);\r\n this.setTheme(this._session.TemaId > 0 ? `_${this._session.TemaId}-theme` : 'default-theme');\r\n }\r\n\r\n public setMenuMin(value: boolean = null){\r\n this._plataform.MenuMin = value == null ? !this._plataform.MenuMin : value;\r\n\r\n document.body.classList.remove('menu-min');\r\n \r\n if (this._plataform.MenuMin)\r\n document.body.classList.add('menu-min');\r\n\r\n sessionStorage.setItem('mm', this._plataform.MenuMin.toString());\r\n localStorage.setItem('mm', this._plataform.MenuMin.toString());\r\n }\r\n\r\n public setModePrime(prime: boolean = null){\r\n this._plataform.ModoPrime = prime == null ? !this._plataform.ModoPrime : prime;\r\n\r\n document.body.classList.remove('modo-prime');\r\n \r\n if (this._plataform.ModoPrime)\r\n document.body.classList.add('modo-prime');\r\n\r\n sessionStorage.setItem('mp', this._plataform.ModoPrime.toString());\r\n localStorage.setItem('mp', this._plataform.ModoPrime.toString());\r\n }\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { InfoPlatformModel } from \"../model/platform.model\";\r\nimport { InfoAppConfigModel } from \"../model/app-config.model\";\r\nimport { InfoThemeService } from \"./theme.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoConfigurationService {\r\n\r\n constructor(private _http: HttpClient, private _plataforma: InfoPlatformModel, private _themeService: InfoThemeService) { }\r\n\r\n initialize(): Promise<InfoAppConfigModel> {\r\n\r\n return new Promise((r, e) => {\r\n this._http\r\n .get<InfoAppConfigModel>('config.json')\r\n .subscribe(config => {\r\n let activeTheme = sessionStorage.getItem('at') || localStorage.getItem('at');\r\n let menuMin = sessionStorage.getItem('mm') || localStorage.getItem('mm');\r\n let prime = sessionStorage.getItem('mp') || localStorage.getItem('mp');\r\n\r\n this._plataforma.Config = config; \r\n this._plataforma.ConfigIsNull = false;\r\n\r\n if (this._plataforma.Config.ux == null || this._plataforma.Config.ux == undefined)\r\n this._plataforma.Config.ux = 2;\r\n\r\n if (this._plataforma.Config.ux == 2)\r\n menuMin = 'false';\r\n\r\n var cssFile = document.createElement('link');\r\n cssFile.href = this._plataforma.Config.webapiUrl.replace(/\\/api\\/$/ig, '') + '/layout/temas.css';\r\n cssFile.type = 'text/css';\r\n cssFile.rel = 'stylesheet';\r\n \r\n document.head.appendChild(cssFile);\r\n \r\n if (this._plataforma.Config.style != null){\r\n var cssClient = document.createElement('link');\r\n cssClient.href = '/assets/' + this._plataforma.Config.style + '/style.css';\r\n cssClient.type = 'text/css';\r\n cssClient.rel = 'stylesheet';\r\n document.head.appendChild(cssClient);\r\n }\r\n\r\n if (activeTheme == null || activeTheme == undefined)\r\n activeTheme = `_${this._plataforma.Config.theme}-theme`;\r\n\r\n this._themeService.setTheme(activeTheme || 'default-theme');\r\n this._themeService.setMenuMin(menuMin == 'true');\r\n this._themeService.setModePrime(prime == 'true');\r\n\r\n r(config);\r\n });\r\n });\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'info-alert',\r\n template: `\r\n <div *ngIf=\"messages != [] && messages.length > 0\">\r\n <div class=\"alert\" #alert >\r\n <h5>{{ 'Atencao' | translate }}</h5>\r\n <ng-content></ng-content>\r\n <ul>\r\n <li *ngFor=\"let m of messages\"><mat-icon>error_outline</mat-icon><label [innerHTML]=\"m | translate\"></label></li>\r\n </ul>\r\n <a class=\"close\" (click)=\"onClose()\"><i class=\"material-icons\">clear</i></a>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['alert.component.scss']\r\n})\r\nexport class InfoAlertComponent {\r\n\r\n @Input() messages: string[] = [];\r\n\r\n onClose() {\r\n this.messages = [];\r\n }\r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { debounceTime, switchMap, distinctUntilChanged } from 'rxjs/operators';\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { InfoDataAccessModel } from '../../model';\r\n\r\n@Component({\r\n selector: 'info-autocomplete',\r\n templateUrl: 'autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoAutoCompleteComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoAutoCompleteComponent implements OnInit, ControlValueAccessor {\r\n control = new FormControl();\r\n \r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() getdataonchange = false;\r\n @Input() getdataonchangetime = 500;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() maxlist = 10;\r\n @Input() startwith = false;\r\n @Input() minchar = 1;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n options: any[];\r\n selectedValue: any = null;\r\n\r\n onChange: any;\r\n onTouched: any;\r\n \r\n initialized = false;\r\n\r\n _loading: boolean = false;\r\n @Input()\r\n get loading(){\r\n return this._loading;\r\n }\r\n\r\n set loading(value){\r\n this._loading = value;\r\n \r\n if (this._disabled == null)\r\n this._disabled = false;\r\n\r\n else if (this._disabled.toString() == '')\r\n this._disabled = true;\r\n\r\n if (this._disabled == false)\r\n this.setDisabledState(this.loading);\r\n }\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData().subscribe(a => { this.data = a.data; this.loading = false; });\r\n }\r\n \r\n _disabled: boolean = null;\r\n @Input()\r\n set disabled(value: boolean) { \r\n if (this._disabled == null)\r\n this._disabled = value;\r\n\r\n if (value)\r\n this.control.disable();\r\n else\r\n this.control.enable();\r\n }\r\n\r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n\r\n if (this.getdataonchange)\r\n return;\r\n\r\n setTimeout(() => {\r\n if (this.selectedValue != null)\r\n if (this._data == null || (this._data != null && this._data.length == 0)) {\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\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 = null;\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.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\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 \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 this.onChange(this.dateValue);\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 }\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 if (this.paged) {\r\n this.searchmodel.Index = this.paginator.index;\r\n this.searchmodel.Size = this.size;\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 = null;\r\n @Input() max: number = null;\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.onblur != null){\r\n if(this.type == 'number'){\r\n if(this.min != null)\r\n this.value = this.min > Number(this.value) ? null: this.value;\r\n if(this.max != null)\r\n this.value = this.max < Number(this.value) ? null: this.value;\r\n this.onChangeValue();\r\n }\r\n this.onblur.emit(this.value);\r\n }\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 @Output() index = 0;\r\n @Output() change = new EventEmitter<number>();\r\n\r\n show = false;\r\n indexActive = 0;\r\n total = 0;\r\n numberPages = 1;\r\n pages = [];\r\n totalDescription = '';\r\n\r\n refresh(total: number) {\r\n\r\n this.pages = [];\r\n this.total = total;\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 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\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 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 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._sanitizer.sanitize(SecurityContext.HTML, 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.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\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 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\t@Input() margintop = 0;\r\n\t@Input() icon: string;\r\n\t@Input() pagetitle: 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\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","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","_sessionTime","getSessao","getPlatform","canActivate","activatedRouteSnapshot","routerStateSnapshot","isLogged","logout","refreshSessionTime","definePaginaAtiva","getPermission","hasPermission","indexOf","paramMap","error","switchMap","res","permissao","params","RegExp","p","toPromise","_a","clearInterval","_sessionTimeInterval","TempoInatividade","setInterval","open","RefreshSessionTimeModalComponent","disableClose","afterClosed","subscribe","login","usuario","senha","reCaptchaToken","codigo2FA","removeSessao","Usuario","Senha","ReCaptchaToken","Codigo2FA","Token","InfoLoginModel","trocarEmpresa","empresaId","EmpresaId","clonar","reload","getPermissions","logAtividade","setTrocaSenha","setRecuperarSenha","setResetarSenha","getLoginResources","keyFunction","urlGenerica","getUrlGenerica","some","s","URL","ChaveFuncionalidade","Acesso","validaSessao","ret","Observable","observer","complete","forEach","item","filter","JSON","stringify","keys","includes","aux","substring","split","tituloMenu","PaginaAtiva","Icone","Titulo","m","Title","Icon","retorno","urlParts","i","isNaN","parseFloat","isGuid","error_description","match","InfoSessionModel","MatDialog","_ref","time","ngOnInit","interval","ativo","close","Component","template","MatDialogRef","InfoThemeService","_overlay","_plataform","_session","setTheme","find","unificarTopbar","getContainerElement","classList","themeClassesToRemove","remove","add","removeAttribute","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","cssFile","createElement","type","rel","head","appendChild","cssClient","InfoAlertComponent","onClose","selector","Input","InfoAutoCompleteComponent","_dataAcess","control","FormControl","placeholder","required","selectfirst","disablednoregisters","getdataonchange","getdataonchangetime","maxlist","startwith","minchar","onselecteditem","EventEmitter","selectedValue","initialized","_loading","_params","_disabled","_data","setDisabledState","loading","getData","a","disable","enable","setTimeout","writeValue","Id","Math","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","Date","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","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","parseInt","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","change","show","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","focused","editorConfig","editable","spellcheck","height","minHeight","maxHeight","minWidth","enableToolbar","showToolbar","defaultParagraphSeparator","toolbarPosition","fonts","class","getGuid","querySelector","addEventListener","editor","editorToolbar","saveSelection","sanitize","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","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","submit","InfoPagebarComponent","margintop","transparent","atalhoId","podeCriarAtalho","exibirAcessos","GuardsCheckStart","NavigationEnd","getAtalho","_pageTitle","goBack","toggleAtalho","openModalAtalho","Url","AtalhoModalComponent","InfoMaskDirective","renderer","_onTouched","_onChange","changes","setupMask","maskInputElement","normalizedValue","setProperty","onInput","lastValue","tagName","getElementsByTagName","maskType","emailMask","maskConfig","Directive","(input)","(blur)","InfoUnmaskDirective","elementRef","inputChange","newValue","NgControl","HostListener","NgModule","imports","CommonModule","HttpClientModule","FormsModule","ReactiveFormsModule","MatCardModule","MatIconModule","MatInputModule","MatFormFieldModule","MatListModule","MatSelectModule","MatCheckboxModule","MatRadioModule","MatButtonModule","MatDatepickerModule","MatMomentDateModule","MatDialogModule","MatProgressBarModule","MatAutocompleteModule","MatTooltipModule","RouterModule","CurrencyMaskModule","AngularEditorModule","MatChipsModule","declarations","InfoLoadingComponent","exports","schemas","CUSTOM_ELEMENTS_SCHEMA","entryComponents"],"mappings":"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","sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const DICTIONARIES_CONFIG = new InjectionToken<any>('DICTIONARIES_CONFIG');\r\nexport const APICONTROLLER_CONFIG = new InjectionToken<any>('APICONTROLLER_CONFIG');","export class InfoAppConfigModel {\r\n production: boolean = false;\r\n webapiUrl: string = '';\r\n processingUrl: string = '';\r\n theme: string = '';\r\n dictionary: string = '';\r\n ux: Number = 2;\r\n style: string = '';\r\n topMenu: boolean = false;\r\n enabledPrime: boolean = false;\r\n}","export class InfoDataAccessModel {\r\n \r\n success: boolean;\r\n messages: string[] = [];\r\n name: string = null;\r\n description: string = null;\r\n data: any;\r\n total: number = 0;\r\n parentId: number = null;\r\n referenceGuid: string = null;\r\n external = false;\r\n\r\n constructor(data: any, success?: boolean, messages?: string[]) {\r\n\r\n if (data != null) {\r\n if (data.Name != null && data.Name != \"\")\r\n this.name = data.Name\r\n\r\n if (data.Description != null && data.Description != \"\")\r\n this.description = data.Description;\r\n\r\n if (data.Total != null)\r\n this.total = data.Total;\r\n \r\n if (data.Success != null)\r\n success = data.Success;\r\n\r\n if (data.Messages)\r\n messages = data.Messages;\r\n\r\n if (data.ParentId != null)\r\n this.parentId = data.ParentId;\r\n\r\n if (data.ReferenceGuid != null)\r\n this.referenceGuid = data.ReferenceGuid;\r\n \r\n if (data.External != null)\r\n this.external = data.External;\r\n\r\n this.data = data.Data;\r\n }\r\n \r\n this.success = success == null ? true : success;\r\n this.messages = messages;\r\n\r\n if (this.messages == null || this.messages == [])\r\n this.messages = new Array();\r\n }\r\n}","import { InfoDialogButtons } from \"../enum/dialog-buttons.enum\";\r\n\r\nexport class InfoDialogResult {\r\n data?: any = null;\r\n button: InfoDialogButtons;\r\n\r\n constructor(button: InfoDialogButtons);\r\n constructor(button: InfoDialogButtons, data?: any) {\r\n this.button = button;\r\n this.data = data;\r\n }\r\n}","export class InfoDialogModel {\r\n\r\n yesOrNo: boolean = false\r\n title: string\r\n message: string = ''\r\n width: number = 450;\r\n\r\n labelOk: string = 'Ok'\r\n labelCancel: string = 'Cancelar'\r\n labelAux: string = null\r\n\r\n colorOk: string = ''\r\n colorCancel: string = ''\r\n colorAux: string = ''\r\n\r\n processingMode: boolean = false;\r\n\r\n disableButtonCancel: boolean = false;\r\n}","export enum InfoPageAction {\r\n None = -1,\r\n\r\n View = 0,\r\n New = 1,\r\n Edit = 2,\r\n Delete = 3,\r\n Search = 4,\r\n}","export enum InfoModalAction {\r\n None,\r\n Ok,\r\n Yes,\r\n No,\r\n Cancel,\r\n Save,\r\n Special,\r\n Aux\r\n}","import { InfoPageAction } from \"../enum/page-action.enum\";\r\nimport { InfoModalAction } from \"../enum/modal-action.enum\";\r\n\r\nexport class InfoFormPropModel {\r\n\r\n title: string;\r\n readonly: boolean;\r\n data: any;\r\n pageAction: InfoPageAction;\r\n modalAction: InfoModalAction = InfoModalAction.None;\r\n modalComponent: any = null;\r\n api: any = null;\r\n\r\n set(pageAction: InfoPageAction, data: any) {\r\n\r\n this.data = data;\r\n this.readonly = pageAction == InfoPageAction.View;\r\n this.pageAction = pageAction;\r\n\r\n switch (pageAction) {\r\n\r\n case InfoPageAction.New:\r\n this.title = 'Novo';\r\n break;\r\n\r\n case InfoPageAction.Search:\r\n this.title = 'Pesquisar';\r\n break;\r\n\r\n case InfoPageAction.View:\r\n this.title = 'Visualizar';\r\n break;\r\n\r\n case InfoPageAction.Edit:\r\n this.title = 'Editar';\r\n break;\r\n\r\n case InfoPageAction.Delete:\r\n this.title = 'Remover';\r\n break;\r\n\r\n default:\r\n this.title = '';\r\n break;\r\n }\r\n }\r\n}","export class InfoGridButtonModel {\r\n \r\n label: string;\r\n passId: boolean;\r\n icon: string;\r\n navigateTo: string;\r\n modalComponent: any = null;\r\n widthModalComponent: Number = 500;\r\n api: any = null;\r\n method: string = null;\r\n showOnlyClass: string = null;\r\n disabledField: string = null;\r\n confirm: boolean;\r\n\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function, widthModalComponent: Number, api: any, method: string, disabledField: string, confirm: boolean);\r\n constructor(label: string, passId: boolean, icon: string, navigateTo: string, modalComponent: Function = null, widthModalComponent: Number = null, api: any = null, method: string = null, disabledField: string = null, confirm: boolean = true) {\r\n this.label = label;\r\n this.passId = passId;\r\n this.icon = icon;\r\n this.navigateTo = navigateTo;\r\n \r\n this.modalComponent = modalComponent;\r\n this.widthModalComponent = widthModalComponent;\r\n\r\n this.api = api;\r\n this.method = method;\r\n this.disabledField = disabledField;\r\n this.confirm = confirm;\r\n }\r\n}","export class InfoMethodGridButtonModel {\r\n \r\n label: string;\r\n icon: string;\r\n method: () => any = null;\r\n\r\n constructor(label: string, icon: string, method: () => any)\r\n {\r\n this.label = label;\r\n this.icon = icon;\r\n this.method = method;\r\n }\r\n}","export class InfoLastSearchModel {\r\n url: string = '';\r\n model: any = null;\r\n index: number = 0;\r\n enabledSearch: boolean = false;\r\n}","export class InfoLoginModel {\r\n\r\n success: boolean = false;\r\n messages: string;\r\n data: any;\r\n\r\n constructor(success: boolean, messages: string, data?: any) {\r\n this.success = success;\r\n this.messages = messages;\r\n this.data = data;\r\n }\r\n}","export class InfoPagebarButtonModel {\r\n label: string = '';\r\n url: string = '';\r\n icon: string = '';\r\n modal: any = null;\r\n modalwidth: number = 700;\r\n\r\n constructor(label: string, url: string);\r\n constructor(label: string, url: string, icon: string);\r\n constructor(label: string, url: string, icon: string, modal: any, modalwidth: number);\r\n constructor(label: string, url: string, icon: string = 'chevron_right', modal: any = null, modalwidth: number = 700){\r\n this.label = label;\r\n this.url = url;\r\n this.icon = icon;\r\n this.modal = modal;\r\n this.modalwidth = modalwidth;\r\n }\r\n}","export class InfoPermissionModel {\r\n Acesso: boolean;\r\n URL: string;\r\n ChaveFuncionalidade: string;\r\n}","import { InfoAppConfigModel } from \"./app-config.model\";\r\n\r\nexport class InfoPlatformModel {\r\n\r\n TokenKey: string = 'token';\r\n SessionKey: string = 'sessao';\r\n \r\n ConfigIsNull: boolean = true;\r\n Themes: any = [];\r\n Config: InfoAppConfigModel = new InfoAppConfigModel();\r\n\r\n PaginaAtiva: any;\r\n UnificarTopbar: boolean = true;\r\n MenuMin: boolean = false;\r\n ModoPrime: boolean = false;\r\n PaginaLimpa: boolean = false;\r\n\r\n Menu: any = [];\r\n\r\n ShortcutApi: any = null;\r\n\r\n public setConfig(config: InfoAppConfigModel) {\r\n this.Config = config;\r\n this.ConfigIsNull = false;\r\n }\r\n}","import { InfoPermissionModel } from \"./permission.model\";\r\n\r\nexport class InfoSessionModel {\r\n UsuarioId: number;\r\n Usuario: string;\r\n Login: string;\r\n Email: string;\r\n Perfil: string;\r\n EmpresaId: number;\r\n TemaId: number;\r\n Empresa: string;\r\n UltimoAcesso: Date;\r\n Master: boolean;\r\n Versao: string;\r\n Clone: boolean;\r\n 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 return (this._translations[this.currentLang].Values[this._plataforma.Config.dictionary] || {})[key] || this._translations[this.currentLang].Values[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 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 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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\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\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 __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, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\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 _sessionTime: number = null;\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()) {\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 this.refreshSessionTime();\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 clearInterval(this._sessionTimeInterval);\r\n if (this._sessao.TempoInatividade <= 0) {\r\n this._sessionTime = null;\r\n } else {\r\n this._sessionTime = this._sessao.TempoInatividade;\r\n \r\n if (this._sessao.TempoInatividade <= 0) {\r\n this._sessionTime = null;\r\n return;\r\n }\r\n\r\n this._sessionTimeInterval = setInterval(() => {\r\n if (this._sessionTime == null) {\r\n this._sessionTime = this._sessao.TempoInatividade;\r\n \r\n if (this._sessionTime == null || this._sessionTime <= 0) {\r\n this.refreshSessionTime();\r\n return;\r\n }\r\n }\r\n\r\n if (this._sessionTime > 0)\r\n this._sessionTime--;\r\n else {\r\n clearInterval(this._sessionTimeInterval);\r\n let ref = this._modal.open(RefreshSessionTimeModalComponent, {\r\n data: null,\r\n disableClose: true,\r\n width: '400px'\r\n });\r\n \r\n ref.afterClosed().subscribe((r: InfoFormPropModel) => {\r\n clearInterval(this._sessionTimeInterval);\r\n \r\n if (r == null)\r\n this.logout();\r\n\r\n else if (r.modalAction == InfoModalAction.Yes)\r\n this.refreshSessionTime();\r\n\r\n else this.logout();\r\n });\r\n }\r\n }, 1000);\r\n }\r\n\t}\r\n\r\n login(usuario: string, senha: string, reCaptchaToken: string = null, codigo2FA: string = null): Observable<any> {\r\n this.removeSessao();\r\n\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/autenticar', { Usuario: usuario, Senha: senha, ReCaptchaToken: reCaptchaToken, Codigo2FA: codigo2FA })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data.Token);\r\n \r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n trocarEmpresa(usuario: string, empresaId: number): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/trocarempresa', { EmpresaId: empresaId }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n \r\n clonar(usuario: string): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/clonar', { Usuario: usuario }, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => {\r\n if (r.Success && r.Data != null)\r\n localStorage.setItem(this._key, r.Data);\r\n\r\n return new InfoLoginModel(r.Success, r.Messages, r.Data);\r\n }),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n logout() {\r\n this.removeSessao();\r\n this._router.navigateByUrl('login').then(r => { location.reload(); });\r\n }\r\n\r\n getPermissions(url: string, logAtividade: boolean = false): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/getpermissao?url=' + url + '&logatividade=' + logAtividade.toString(), { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setTrocaSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/TrocarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setRecuperarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/RecuperarSenha', model, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n setResetarSenha(model: any): Observable<any> {\r\n return this._http\r\n .post(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/ResetarSenha', model)\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n getLoginResources(): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/app/GetLoginResources')\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r.Success, r.Messages, r.Data)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n hasPermission(url: string, keyFunction: string = 'view'): boolean {\r\n\r\n if (url == '/' && keyFunction == 'view')\r\n return true;\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n return this._sessao.Permissoes.some(s => s.URL == urlGenerica && s.ChaveFuncionalidade == keyFunction && s.Acesso);\r\n }\r\n\r\n getPermission(url: string, logAtividade: boolean = false): Observable<boolean> {\r\n\r\n let urlGenerica = this.getUrlGenerica(url);\r\n let contemUrl = this._sessao.Permissoes.some(s => s.URL == urlGenerica);\r\n if (contemUrl) {\r\n if (logAtividade) {\r\n return this.validaSessao(url).pipe(map(ret => {\r\n if (!ret.success)\r\n this.logout();\r\n \r\n return true;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n } else {\r\n return new Observable(function (observer) {\r\n observer.next(true);\r\n observer.complete();\r\n });\r\n }\r\n } else {\r\n return this.getPermissions(urlGenerica, logAtividade).pipe(map(ret => {\r\n let permissao = true;\r\n if (ret.success) {\r\n if (ret.data == null) {\r\n this.logout();\r\n return true;\r\n }\r\n\r\n ret.data.forEach(item => {\r\n if (this._sessao.Permissoes.filter(s => s.URL == item.URL && s.ChaveFuncionalidade == item.ChaveFuncionalidade).length == 0)\r\n this._sessao.Permissoes.push(item);\r\n });\r\n\r\n ret.data.some(s => s.URL == urlGenerica)\r\n\r\n localStorage.setItem(this._keySessao, JSON.stringify(this._sessao));\r\n }\r\n\r\n return permissao;\r\n }),\r\n catchError(error => { \r\n if (error.status == 401) this.logout();\r\n return of(true);\r\n }));\r\n }\r\n }\r\n\r\n validaSessao(url: string): Observable<any> {\r\n return this._http\r\n .get(this._plataforma.Config.webapiUrl + 'centrocontrole/usuario/validasessao?url=' + url, { headers: this._dataService.getHeaderToken() })\r\n .pipe(\r\n map((r: any) => new InfoLoginModel(r === true, '', r)),\r\n catchError((e: HttpErrorResponse) => this.errorHandling(e))\r\n );\r\n }\r\n\r\n removeSessao() {\r\n Object.keys(localStorage).forEach((key) => {\r\n if (!key.includes('Dashboard')) delete localStorage[key];\r\n });\r\n }\r\n\r\n definePaginaAtiva(url) {\r\n\r\n if (this._plataforma.Menu == null || url == null) {\r\n this._plataforma.PaginaAtiva = null;\r\n return;\r\n }\r\n\r\n let aux: string[] = url.substring(1).replace(/-/g, '').toLowerCase().split('/');\r\n let tituloMenu: string = aux.length > 0 ? aux[0].toString() : url;\r\n\r\n if (tituloMenu.indexOf('ashboard') > -1)\r\n this._plataforma.PaginaAtiva = { Icone: 'widgets', Titulo: 'Dashboard' };\r\n\r\n else {\r\n let item: any = this._plataforma.Menu.filter(m => m.Title.toLowerCase().indexOf(tituloMenu) > -1);\r\n\r\n if (item != null && item.length > 0)\r\n this._plataforma.PaginaAtiva = { Icone: item[0].Icon, Titulo: item[0].Title };\r\n else this._plataforma.PaginaAtiva = { Icone: 'security', Titulo: 'Plataforma' };\r\n }\r\n }\r\n\r\n getUrlGenerica(url: string): string {\r\n let retorno = \"\";\r\n let urlParts: string[] = url.split('/');\r\n for (var i = 0; i < urlParts.length; i++) {\r\n if (!isNaN(parseFloat(urlParts[i])) || this.isGuid(urlParts[i]) || urlParts[i].toLowerCase() == 'novo')\r\n break;\r\n else\r\n retorno += '/' + urlParts[i];\r\n }\r\n return retorno.substring(1);\r\n }\r\n\r\n private errorHandling(e: HttpErrorResponse): ObservableInput<InfoLoginModel> {\r\n if (e.status == 401) \r\n this.logout();\r\n\r\n else if (e.status == 500)\r\n this._router.navigateByUrl('500');\r\n\r\n else if (e.error != null && e.error.error_description != null)\r\n return of(new InfoLoginModel(false, e.error.error_description));\r\n\r\n else return of(new InfoLoginModel(false, 'Houve um problema e não foi possível conectar'));\r\n }\r\n\r\n private isGuid(value) : boolean {\r\n return (value || '').match('^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') !== null;\r\n }\r\n}\r\n\r\n@Component({\r\n\ttemplate: `\r\n\t\t<info-modal modaltitle=\"Inatividade\" (onsave)=\"ativo(true)\" labelsubmit=\"Sim\" labelcancel=\"({{ time }}) {{ 'Nao' | translate }}\">\r\n <label style=\"font-size:130%\">{{ 'VoceAindaEstaUtilizandoPlataforma' | translate }}</label>\r\n\t\t</info-modal>\r\n\t`\r\n})\r\nexport class RefreshSessionTimeModalComponent {\r\n time = 15;\r\n interval;\r\n\r\n\tconstructor(private _ref: MatDialogRef<RefreshSessionTimeModalComponent>) { }\r\n\r\n ngOnInit() {\r\n clearInterval(this.interval);\r\n \r\n this.interval = setInterval(() => {\r\n if (this.time > 0)\r\n this.time--;\r\n else {\r\n this.ativo(false);\r\n clearInterval(this.interval);\r\n }\r\n }, 1000);\r\n }\r\n \r\n ativo(ativo: boolean) {\r\n this._ref.close({ modalAction: ativo ? InfoModalAction.Yes : InfoModalAction.No });\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { OverlayContainer } from \"@angular/cdk/overlay\";\r\nimport { InfoPlatformModel } from '../model/platform.model';\r\nimport { InfoSessionModel } from '../model/session.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoThemeService {\r\n\r\n constructor(public _overlay: OverlayContainer, public _plataform: InfoPlatformModel, public _session: InfoSessionModel) { }\r\n\r\n public setTheme(theme) {\r\n // console.log('info-theme.setTheme', theme);\r\n\r\n if (this._plataform.Themes != null){\r\n let item = this._plataform.Themes.find(t => t.name == theme);\r\n this._plataform.UnificarTopbar = item == null ? false : item.unificarTopbar;\r\n }\r\n\r\n let _overlay = this._overlay.getContainerElement().classList;\r\n let themeClassesToRemove: any = Array.from(_overlay).filter((item: string) => item.includes('-theme'));\r\n \r\n if (themeClassesToRemove && themeClassesToRemove.length > 0)\r\n _overlay.remove(themeClassesToRemove);\r\n\r\n _overlay.remove('alternative-layout');\r\n _overlay.add(theme);\r\n\r\n document.body.removeAttribute('class');\r\n document.body.classList.add(theme);\r\n\r\n if (this._plataform.UnificarTopbar)\r\n document.body.classList.add('alternative-layout');\r\n \r\n if (this._plataform.MenuMin)\r\n document.body.classList.add('menu-min');\r\n \r\n if (this._plataform.ModoPrime)\r\n document.body.classList.add('modo-prime');\r\n\r\n document.body.classList.add('ux' + (this._plataform.Config.ux ? this._plataform.Config.ux : 2));\r\n\r\n sessionStorage.setItem('at', theme);\r\n localStorage.setItem('at', theme);\r\n }\r\n\r\n public setThemeByLoggedCompany() {\r\n // console.log('info-theme.setThemeByLoggedCompany', this._session.TemaId);\r\n this.setTheme(this._session.TemaId > 0 ? `_${this._session.TemaId}-theme` : 'default-theme');\r\n }\r\n\r\n public setMenuMin(value: boolean = null){\r\n this._plataform.MenuMin = value == null ? !this._plataform.MenuMin : value;\r\n\r\n document.body.classList.remove('menu-min');\r\n \r\n if (this._plataform.MenuMin)\r\n document.body.classList.add('menu-min');\r\n\r\n sessionStorage.setItem('mm', this._plataform.MenuMin.toString());\r\n localStorage.setItem('mm', this._plataform.MenuMin.toString());\r\n }\r\n\r\n public setModePrime(prime: boolean = null){\r\n this._plataform.ModoPrime = prime == null ? !this._plataform.ModoPrime : prime;\r\n\r\n document.body.classList.remove('modo-prime');\r\n \r\n if (this._plataform.ModoPrime)\r\n document.body.classList.add('modo-prime');\r\n\r\n sessionStorage.setItem('mp', this._plataform.ModoPrime.toString());\r\n localStorage.setItem('mp', this._plataform.ModoPrime.toString());\r\n }\r\n}","import { Injectable, Inject } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { InfoPlatformModel } from \"../model/platform.model\";\r\nimport { InfoAppConfigModel } from \"../model/app-config.model\";\r\nimport { InfoThemeService } from \"./theme.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InfoConfigurationService {\r\n\r\n constructor(private _http: HttpClient, private _plataforma: InfoPlatformModel, private _themeService: InfoThemeService) { }\r\n\r\n initialize(): Promise<InfoAppConfigModel> {\r\n\r\n return new Promise((r, e) => {\r\n this._http\r\n .get<InfoAppConfigModel>('config.json')\r\n .subscribe(config => {\r\n let activeTheme = sessionStorage.getItem('at') || localStorage.getItem('at');\r\n let menuMin = sessionStorage.getItem('mm') || localStorage.getItem('mm');\r\n let prime = sessionStorage.getItem('mp') || localStorage.getItem('mp');\r\n\r\n this._plataforma.Config = config; \r\n this._plataforma.ConfigIsNull = false;\r\n\r\n if (this._plataforma.Config.ux == null || this._plataforma.Config.ux == undefined)\r\n this._plataforma.Config.ux = 2;\r\n\r\n if (this._plataforma.Config.ux == 2)\r\n menuMin = 'false';\r\n\r\n var cssFile = document.createElement('link');\r\n cssFile.href = this._plataforma.Config.webapiUrl.replace(/\\/api\\/$/ig, '') + '/layout/temas.css';\r\n cssFile.type = 'text/css';\r\n cssFile.rel = 'stylesheet';\r\n \r\n document.head.appendChild(cssFile);\r\n \r\n if (this._plataforma.Config.style != null){\r\n var cssClient = document.createElement('link');\r\n cssClient.href = '/assets/' + this._plataforma.Config.style + '/style.css';\r\n cssClient.type = 'text/css';\r\n cssClient.rel = 'stylesheet';\r\n document.head.appendChild(cssClient);\r\n }\r\n\r\n if (activeTheme == null || activeTheme == undefined)\r\n activeTheme = `_${this._plataforma.Config.theme}-theme`;\r\n\r\n this._themeService.setTheme(activeTheme || 'default-theme');\r\n this._themeService.setMenuMin(menuMin == 'true');\r\n this._themeService.setModePrime(prime == 'true');\r\n\r\n r(config);\r\n });\r\n });\r\n }\r\n}","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'info-alert',\r\n template: `\r\n <div *ngIf=\"messages != [] && messages.length > 0\">\r\n <div class=\"alert\" #alert >\r\n <h5>{{ 'Atencao' | translate }}</h5>\r\n <ng-content></ng-content>\r\n <ul>\r\n <li *ngFor=\"let m of messages\"><mat-icon>error_outline</mat-icon><label [innerHTML]=\"m | translate\"></label></li>\r\n </ul>\r\n <a class=\"close\" (click)=\"onClose()\"><i class=\"material-icons\">clear</i></a>\r\n </div>\r\n </div>\r\n `,\r\n styleUrls: ['alert.component.scss']\r\n})\r\nexport class InfoAlertComponent {\r\n\r\n @Input() messages: string[] = [];\r\n\r\n onClose() {\r\n this.messages = [];\r\n }\r\n}","import { Component, Input, OnInit, forwardRef, Output, EventEmitter } from \"@angular/core\";\r\nimport { FormControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { debounceTime, switchMap, distinctUntilChanged } from 'rxjs/operators';\r\nimport { InfoDataService } from \"../../service/data.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { InfoDataAccessModel } from '../../model';\r\n\r\n@Component({\r\n selector: 'info-autocomplete',\r\n templateUrl: 'autocomplete.component.html',\r\n styleUrls: ['./autocomplete.component.scss'],\r\n providers: [{\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => InfoAutoCompleteComponent),\r\n multi: true\r\n }]\r\n})\r\nexport class InfoAutoCompleteComponent implements OnInit, ControlValueAccessor {\r\n control = new FormControl();\r\n \r\n @Input() placeholder = '';\r\n @Input() name = '';\r\n @Input() required = false;\r\n @Input() selectfirst = false;\r\n @Input() disablednoregisters = false;\r\n @Input() getdataonchange = false;\r\n @Input() getdataonchangetime = 500;\r\n @Input() api: any = null;\r\n @Input() method = 'getchavevalor';\r\n @Input() maxlist = 10;\r\n @Input() startwith = false;\r\n @Input() minchar = 1;\r\n\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n options: any[];\r\n selectedValue: any = null;\r\n\r\n onChange: any;\r\n onTouched: any;\r\n \r\n initialized = false;\r\n\r\n _loading: boolean = false;\r\n @Input()\r\n get loading(){\r\n return this._loading;\r\n }\r\n\r\n set loading(value){\r\n this._loading = value;\r\n \r\n if (this._disabled == null)\r\n this._disabled = false;\r\n\r\n else if (this._disabled.toString() == '')\r\n this._disabled = true;\r\n\r\n if (this._disabled == false)\r\n this.setDisabledState(this.loading);\r\n }\r\n \r\n _params: string = null;\r\n @Input()\r\n get params(){\r\n return this._params;\r\n }\r\n\r\n set params(value){\r\n this._params = value;\r\n\r\n if (this.initialized)\r\n this.getData().subscribe(a => { this.data = a.data; this.loading = false; });\r\n }\r\n \r\n _disabled: boolean = null;\r\n @Input()\r\n set disabled(value: boolean) { \r\n if (this._disabled == null)\r\n this._disabled = value;\r\n\r\n if (value)\r\n this.control.disable();\r\n else\r\n this.control.enable();\r\n }\r\n\r\n _data: any = [];\r\n @Input()\r\n get data(){\r\n return this._data;\r\n }\r\n\r\n set data(value){\r\n this._data = value;\r\n\r\n if (this.getdataonchange)\r\n return;\r\n\r\n setTimeout(() => {\r\n if (this.selectedValue != null)\r\n if (this._data == null || (this._data != null && this._data.length == 0)) {\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\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 = null;\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.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\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 \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 this.onChange(this.dateValue);\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 if (this.paged) {\r\n this.searchmodel.Index = this.paginator.index;\r\n this.searchmodel.Size = this.size;\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 = null;\r\n @Input() max: number = null;\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.onblur != null){\r\n if(this.type == 'number'){\r\n if(this.min != null)\r\n this.value = this.min > Number(this.value) ? null: this.value;\r\n if(this.max != null)\r\n this.value = this.max < Number(this.value) ? null: this.value;\r\n this.onChangeValue();\r\n }\r\n this.onblur.emit(this.value);\r\n }\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 @Output() index = 0;\r\n @Output() change = new EventEmitter<number>();\r\n\r\n show = false;\r\n indexActive = 0;\r\n total = 0;\r\n numberPages = 1;\r\n pages = [];\r\n totalDescription = '';\r\n\r\n refresh(total: number) {\r\n\r\n this.pages = [];\r\n this.total = total;\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 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\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 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 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._sanitizer.sanitize(SecurityContext.HTML, 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.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\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 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 { }"]}
|