info-library 2.10.22 → 2.10.26
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 +85 -9
- 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/card-menu/card-menu.component.js +6 -1
- package/esm2015/info-library.js +5 -4
- package/esm2015/info-library.module.js +4 -1
- package/esm2015/layouts/main/main.component.js +14 -3
- package/esm2015/layouts/topbar/topbar.component.js +7 -2
- package/esm2015/pipe/index.js +2 -1
- package/esm2015/pipe/mask.pipe.js +47 -0
- package/esm2015/public_api.js +2 -2
- package/esm2015/service/authentication.service.js +2 -2
- package/fesm2015/info-library.js +73 -5
- package/fesm2015/info-library.js.map +1 -1
- package/info-library.d.ts +3 -2
- package/info-library.metadata.json +1 -1
- package/layouts/main/main.component.d.ts +3 -1
- package/layouts/topbar/topbar.component.d.ts +1 -0
- package/package.json +1 -1
- package/pipe/index.d.ts +1 -0
- package/pipe/mask.pipe.d.ts +5 -0
|
@@ -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","../../../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","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","__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","map","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","removeSessao","Usuario","Senha","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","from","remove","add","removeAttribute","sessionStorage","setThemeByLoggedCompany","TemaId","setMenuMin","setModePrime","prime","OverlayContainer","InfoConfigurationService","_themeService","initialize","activeTheme","menuMin","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","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","numberItensRow","ceil","InfoCheckboxComponent","type","min","checkboxValue","true","false","onChangeValue","customType","Number","modelValue","PT_BR_DATE_FORMATS","parse","dateInput","display","monthYearLabel","dateA11yLabel","monthYearA11yLabel","InfoDateComponent","minDate","maxDate","datefilter","dateclass","ngAfterViewInit","mask","guide","placeholderChar","createAutoCorrectedDatePipe","modelClean","keepCharPositions","dateMask","createTextMaskInputElement","assign","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","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","resultTitle","searchModelReset","showPagebar","hasPermissionNew","hasPermissionEdit","hasPermissionDelete","tableHeight","pagebarTitle","icons","colunasItens","colunasHeaders","colunasType","colunasWidth","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","tipo","window","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","b","InfoListCheckboxComponent","filterlabel","selectedlabel","onelist","filterList","filterSelected","disabledValue","valor","selecionados","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","InfoTimelineComponent","showdate","style","alignLeft","alignCenter","alignRight","alignBetween","host","[class.timeline]","[class.show-date]","HostBinding","InfoEditorComponent","focused","editorConfig","editable","spellcheck","height","minHeight","maxHeight","minWidth","enableToolbar","showToolbar","defaultParagraphSeparator","sanitize","toolbarPosition","fonts","class","getGuid","querySelector","addEventListener","c","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","themes","getLoggedUser","onChangeTopBarState","onChangeSideBarState","topbar","openSidebar","UsuarioId","Login","Email","Perfil","Empresa","UltimoAcesso","Master","Clone","OcultarNomeCliente","Versao","Chave","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","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 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 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 return this._translate.instant(value);\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): 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 })\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', { Usuario: usuario, 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, { 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 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 if (config.production)\r\n this._themeService.setTheme(activeTheme || 'default-theme');\r\n\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 = 300;\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\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 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\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 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 \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 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 \r\n this.cols.split(',').forEach(registro => {\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 });\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, null);\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 });\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, tipo: string) {\r\n if (this.apidownload == null)\r\n alert('API Download está null');\r\n\r\n window.open(this._dataAccessService.getAPIUrl(this.apidownload) + (this.methoddownload != null ? this.methoddownload : (tipo == 'DB' ? \"GetDataBase\" : \"Get\")) + \"?id=\" + arquivoId);\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\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\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 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\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 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): any[] {\r\n if (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).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\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n selectedValue: any = null;\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\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 } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AngularEditorConfig } 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 @Input() required: 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 sanitize: false,\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 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 }\r\n\r\n private getGuid() : string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : ( r & 0x3 | 0x8 );\r\n return v.toString(16);\r\n });\r\n }\r\n \r\n onChangeValue() {\r\n if (this.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 \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\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, Input, OnInit, 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 @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.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}","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\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 });\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 }\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 { 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\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\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","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","removeSessao","Usuario","Senha","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","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","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","type","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","assign","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","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","resultTitle","searchModelReset","showPagebar","hasPermissionNew","hasPermissionEdit","hasPermissionDelete","tableHeight","pagebarTitle","icons","colunasItens","colunasHeaders","colunasType","colunasWidth","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","tipo","window","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","b","InfoListCheckboxComponent","filterlabel","selectedlabel","onelist","filterList","filterSelected","disabledValue","valor","selecionados","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","InfoTimelineComponent","showdate","style","alignLeft","alignCenter","alignRight","alignBetween","host","[class.timeline]","[class.show-date]","HostBinding","InfoEditorComponent","focused","editorConfig","editable","spellcheck","height","minHeight","maxHeight","minWidth","enableToolbar","showToolbar","defaultParagraphSeparator","sanitize","toolbarPosition","fonts","class","getGuid","querySelector","addEventListener","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","themes","getLoggedUser","onChangeTopBarState","onChangeSideBarState","topbar","openSidebar","UsuarioId","Login","Email","Perfil","Empresa","UltimoAcesso","Master","Clone","OcultarNomeCliente","Versao","Chave","onGetNotificationsTopBar","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","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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O,IACpE7L,KAAK0E,MAAM4R,QAAQ4C,SAAS6f,8BATnCN,EAAAA,UAASlxB,KAAA,CAAC,CACP2O,SAAU,yDAJMsT,EAAAA,kBACXwP,EAAAA,mDASJC,EAAAA,aAAY1xB,KAAA,CAAC,mBC8JlB,kCA1GC2xB,EAAAA,SAAQ3xB,KAAA,CAAC,CACT4xB,QAAS,CACRC,EAAAA,aACAC,EAAAA,iBACAC,EAAAA,YACAC,EAAAA,oBACAC,EAAAA,cACAC,EAAAA,cACAC,EAAAA,eACAC,EAAAA,mBACAC,EAAAA,cACAC,EAAAA,gBACAC,EAAAA,kBACAC,EAAAA,eACAC,EAAAA,gBACAC,EAAAA,oBACAC,EAAAA,oBACAC,EAAAA,gBACAC,EAAAA,qBACAC,EAAAA,sBACAC,EAAAA,iBACAC,EAAAA,aACAC,EAAAA,mBACAC,EAAAA,oBACAC,EAAAA,gBAEDC,aAAc,CACbjzB,GACAM,GAEAyvB,GACAmB,GAEA5iB,GACAI,GACAiE,GACAqB,GACAG,GACAU,GACAiB,GACAwC,GACAqB,GACAuI,GACAmB,GACAc,GACAa,GACAK,GACAa,GACAI,GACAW,GACAmB,GACAE,GAEAvP,GACAma,GACAvK,GACA0F,GACAY,GACA7D,GACAmB,GACA2B,GACA4B,GACAznB,IAED8qB,QAAS,CACRnzB,GACAM,GAEAgO,GACAI,GACAiE,GACAqB,GACAG,GACAU,GACAiB,GACAwC,GACAqB,GACAuI,GACAmB,GACAc,GACAa,GACAK,GACAa,GACAI,GACAW,GACAmB,GACAE,GAEAvP,GACAma,GACAvK,GACA0F,GACAY,GACA7D,GACAmB,GACA2B,IAEDkF,QAAS,CACRC,EAAAA,wBAEDC,gBAAiB,CAChBva,GACA+W,GACAznB","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 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 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 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): 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 })\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', { Usuario: usuario, 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 if (config.production)\r\n this._themeService.setTheme(activeTheme || 'default-theme');\r\n\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 = 300;\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\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\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 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 \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 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 \r\n this.cols.split(',').forEach(registro => {\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 });\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, null);\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 });\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, tipo: string) {\r\n if (this.apidownload == null)\r\n alert('API Download está null');\r\n\r\n window.open(this._dataAccessService.getAPIUrl(this.apidownload) + (this.methoddownload != null ? this.methoddownload : (tipo == 'DB' ? \"GetDataBase\" : \"Get\")) + \"?id=\" + arquivoId);\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\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\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 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\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 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): any[] {\r\n if (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).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\r\n @Output() onselecteditem = new EventEmitter();\r\n\r\n selectedValue: any = null;\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\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 } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { AngularEditorConfig } 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 @Input() required: 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 sanitize: false,\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 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 }\r\n\r\n private getGuid() : string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\r\n const r = Math.random() * 16 | 0, v = c === 'x' ? r : ( r & 0x3 | 0x8 );\r\n return v.toString(16);\r\n });\r\n }\r\n \r\n onChangeValue() {\r\n if (this.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 \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\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\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.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}","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\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 }\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 { }"]}
|