dts-backoffice-util 21.2.0 → 21.2.1
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/README.md
CHANGED
|
@@ -12,9 +12,9 @@ Segue abaixo as últimas versões da Biblioteca, conforme a versão do PO-UI e A
|
|
|
12
12
|
|
|
13
13
|
| PO-UI | Angular | Versão dtsBackofficeUtil |
|
|
14
14
|
|-|-|-|
|
|
15
|
-
| v21 | v21 | 21.2.
|
|
16
|
-
| v20 | v20 | 20.2.
|
|
17
|
-
| v19 | v19 | 19.6.
|
|
15
|
+
| v21 | v21 | 21.2.1 |
|
|
16
|
+
| v20 | v20 | 20.2.1 |
|
|
17
|
+
| v19 | v19 | 19.6.1 |
|
|
18
18
|
| v18 | v18 | 18.3.0 |
|
|
19
19
|
| v17 | v17 | 17.2.0 |
|
|
20
20
|
| v16 | v16 | 16.1.0 |
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, EventEmitter, Output, Input, ViewChild, Component, ViewChildren, Pipe, NgModule } from '@angular/core';
|
|
3
3
|
import { of, forkJoin, map as map$1, lastValueFrom } from 'rxjs';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
4
|
import * as i1 from '@angular/common/http';
|
|
6
5
|
import { HttpErrorResponse, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
6
|
+
import { map } from 'rxjs/operators';
|
|
7
7
|
import * as i1$1 from '@po-ui/ng-components';
|
|
8
8
|
import { PoModule } from '@po-ui/ng-components';
|
|
9
9
|
import * as i3 from '@angular/forms';
|
|
@@ -13,23 +13,15 @@ import { CommonModule } from '@angular/common';
|
|
|
13
13
|
class UserLoginService {
|
|
14
14
|
constructor(http) {
|
|
15
15
|
this.http = http;
|
|
16
|
-
this.apiUrl = '/totvs-menu/rest/getSessionInfo';
|
|
17
|
-
this.userLogin = undefined;
|
|
18
16
|
}
|
|
19
17
|
getUserLogin() {
|
|
18
|
+
if (sessionStorage.getItem('username')) {
|
|
19
|
+
return of(sessionStorage.getItem('username'));
|
|
20
|
+
}
|
|
20
21
|
if (localStorage.getItem('username')) {
|
|
21
22
|
return of(localStorage.getItem('username'));
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
-
return of(this.userLogin);
|
|
25
|
-
}
|
|
26
|
-
else {
|
|
27
|
-
return this.http.get(`${this.apiUrl}`)
|
|
28
|
-
.pipe(map((response) => {
|
|
29
|
-
this.userLogin = response.userName;
|
|
30
|
-
return response.userName;
|
|
31
|
-
}));
|
|
32
|
-
}
|
|
24
|
+
return of(undefined);
|
|
33
25
|
}
|
|
34
26
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: UserLoginService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
27
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.9", ngImport: i0, type: UserLoginService, providedIn: 'root' }); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts-backoffice-util.mjs","sources":["../../../projects/dts-backoffice-util/src/lib/services/session-info.service.ts","../../../projects/dts-backoffice-util/src/lib/services/profile.service.ts","../../../projects/dts-backoffice-util/src/lib/services/report.service.ts","../../../projects/dts-backoffice-util/src/lib/services/breadcrumb-control.service.ts","../../../projects/dts-backoffice-util/src/lib/services/menu-datasul.service.ts","../../../projects/dts-backoffice-util/src/lib/services/cache-params.service.ts","../../../projects/dts-backoffice-util/src/lib/services/translate.service.ts","../../../projects/dts-backoffice-util/src/lib/services/validate.service.ts","../../../projects/dts-backoffice-util/src/lib/utils/date.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/disclaimer.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/field-validation.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/filter-range.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/generic-functions.utils.ts","../../../projects/dts-backoffice-util/src/lib/utils/file.util.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.html","../../../projects/dts-backoffice-util/src/lib/components/totvs-map/totvs-map.component.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-map/totvs-map.component.html","../../../projects/dts-backoffice-util/src/lib/pipes/dts-date-format.pipe.ts","../../../projects/dts-backoffice-util/src/lib/dts-backoffice-util.module.ts","../../../projects/dts-backoffice-util/src/public-api.ts","../../../projects/dts-backoffice-util/src/dts-backoffice-util.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ISessionInfo } from '../model/session-info.model';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserLoginService {\r\n\r\n readonly apiUrl = '/totvs-menu/rest/getSessionInfo';\r\n userLogin = undefined;\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getUserLogin(): Observable<string> {\r\n if (localStorage.getItem('username')) {\r\n return of(localStorage.getItem('username'));\r\n }\r\n\r\n if (this.userLogin) {\r\n return of(this.userLogin);\r\n } else {\r\n return this.http.get<ISessionInfo>(`${this.apiUrl}`)\r\n .pipe(map((response) => {\r\n this.userLogin = response.userName;\r\n return response.userName;\r\n }));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport interface IProfile {\r\n pageId: string;\r\n dataCode: string;\r\n userCode: string;\r\n dataValue?: string;\r\n}\r\n\r\nexport interface IProfileResponse {\r\n message: Array<string>;\r\n length: number;\r\n data: Array<any>;\r\n}\r\n\r\nenum EDataType {\r\n STRING = 1,\r\n JSON = 2\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileService {\r\n\r\n readonly apiURL = '/dts/datasul-rest/resources/api/btb/btapi930za';\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n setProfile(profile: IProfile, showLoading = true): Observable<any> {\r\n const headers = { 'X-PO-Screen-Lock': showLoading ? 'true' : 'false' };\r\n const { pageId, userCode } = profile;\r\n\r\n return this.http\r\n .post<any>(`${this.apiURL}/setProfile?userCode=${userCode}&pageId=${pageId}`, profile, { headers });\r\n\r\n }\r\n\r\n getProfileAsString(profile: IProfile, showLoading = false): Observable<string> {\r\n return this.getProfile(profile, EDataType.STRING, showLoading);\r\n }\r\n\r\n getProfileAsJSON(profile: IProfile, showLoading = false): Observable<object> {\r\n return this.getProfile(profile, EDataType.JSON, showLoading);\r\n }\r\n\r\n private getProfile(profile: IProfile, dataType: EDataType, showLoading = false): Observable<any> {\r\n const headers = { 'X-PO-Screen-Lock': showLoading ? 'true' : 'false' };\r\n const { pageId, dataCode, userCode } = profile;\r\n\r\n return this.http\r\n .get<IProfileResponse>(`${this.apiURL}/getProfile?userCode=${userCode}&pageId=${pageId}&dataCode=${dataCode}`,\r\n { headers })\r\n .pipe(map(preference => {\r\n if (preference.data[0]) {\r\n if (dataType === EDataType.STRING) {\r\n return preference.data[0].dataValue;\r\n }\r\n\r\n if (dataType === EDataType.JSON) {\r\n return JSON.parse(preference.data[0].dataValue);\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n }));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport interface IProperty {\r\n name: string;\r\n value: string;\r\n}\r\n\r\nexport interface IReportServiceParams {\r\n reportName: string; // Nome do rptDesign\r\n programName: string; // Programa Progress\r\n properties: Array<IProperty>;\r\n dialect: string;\r\n downloadName: string;\r\n download: boolean;\r\n format: ReportFormats;\r\n}\r\n\r\nexport enum ReportFormats {\r\n XLSX = 'xlsx',\r\n PDF = 'pdf',\r\n DOCX = 'docx',\r\n HTML = 'html'\r\n}\r\n\r\n@Injectable()\r\n\r\nexport class ReportService {\r\n public readonly URL = window.location.href.indexOf('totvs-menu') > 0 ? '/totvs-menu/rest/report/run/'\r\n : '/dts/datasul-report/resources/run/';\r\n\r\n constructor(public httpClient: HttpClient) { }\r\n\r\n generate(params: IReportServiceParams, showLoading: boolean = true): Observable<Blob> {\r\n const headers = { 'X-PO-Screen-Lock': showLoading ? 'true' : 'false' };\r\n\r\n let reportURL = `${this.URL}${params.reportName}`;\r\n\r\n if (params.properties.length > 0) {\r\n reportURL += '?';\r\n\r\n params.properties.forEach((property: IProperty, index: number) => {\r\n if (index > 0) {\r\n reportURL += '&';\r\n }\r\n reportURL += `c_properties=${property.name}&c_values=${property.value}`;\r\n });\r\n }\r\n\r\n reportURL += `&dialect=${params.dialect}&format=${params.format}`;\r\n reportURL += `&program=${params.programName}&resultFileName=${params.downloadName}`;\r\n\r\n return this.httpClient.post(reportURL, {}, { headers, responseType: 'blob' })\r\n .pipe(map(report => {\r\n if (params.download) {\r\n this.download(report, `${params.downloadName}.${params.format}`);\r\n }\r\n return report;\r\n }));\r\n }\r\n\r\n download(file: Blob, fileName: string) {\r\n const binaryData = [file];\r\n const downloadLink = document.createElement('a');\r\n const urlDownload = window.URL.createObjectURL(new Blob(binaryData, { type: file.type }));\r\n\r\n downloadLink.href = urlDownload;\r\n downloadLink.setAttribute('download', fileName);\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n window.URL.revokeObjectURL(urlDownload);\r\n downloadLink.remove();\r\n }\r\n}\r\n","/*\r\nVersão: 1.004\r\nData Criação: 06/08/2018\r\n*/\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { PoBreadcrumb } from '@po-ui/ng-components';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class BreadcrumbControlService {\r\n breadcrumb: PoBreadcrumb;\r\n\r\n constructor() { }\r\n\r\n public newBreadcrumb(): void {\r\n this.breadcrumb = { items: [] };\r\n }\r\n\r\n public addBreadcrumb(literal: string, activatedRoute: ActivatedRoute): void {\r\n this.addBreadcrumbURL(literal, decodeURIComponent(activatedRoute.snapshot['_routerState'].url));\r\n }\r\n\r\n public addBreadcrumbURL(literal: string, url: string): void {\r\n if (!literal || literal === '') { return; }\r\n if (!this.breadcrumb) { this.newBreadcrumb(); }\r\n\r\n const breadcrumbAux = { items: [] };\r\n\r\n for (let idx = 0; idx < this.breadcrumb.items.length; idx++) {\r\n if (this.breadcrumb.items[idx].label !== literal) {\r\n breadcrumbAux.items.push(this.breadcrumb.items[idx]);\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n breadcrumbAux.items.push({ label: literal, link: url });\r\n\r\n this.breadcrumb = breadcrumbAux;\r\n }\r\n\r\n public updBreadcrumbURL(literal: string, valueOld: string, valueNew: string): void {\r\n let currentRouterURL = this.getCurrentRouter();\r\n\r\n if (!currentRouterURL) { return; }\r\n if (!valueOld) { return; }\r\n if (!valueNew) { return; }\r\n\r\n currentRouterURL = currentRouterURL.replace(valueOld, valueNew);\r\n this.addBreadcrumbURL(literal, currentRouterURL);\r\n }\r\n\r\n public delBreadcrumb(literal: string): void {\r\n if (!literal || literal === '') { return; }\r\n if (!this.breadcrumb || !this.breadcrumb.items) { return; }\r\n if (this.breadcrumb.items.length === 0) { return; }\r\n\r\n const breadcrumbAux = { items: [] };\r\n\r\n for (let idx = 0; idx < this.breadcrumb.items.length; idx++) {\r\n if (this.breadcrumb.items[idx].label !== literal) {\r\n breadcrumbAux.items.push(this.breadcrumb.items[idx]);\r\n }\r\n }\r\n\r\n this.breadcrumb = breadcrumbAux;\r\n }\r\n\r\n public getBreadcrumb(): PoBreadcrumb {\r\n if (!this.breadcrumb) { this.newBreadcrumb(); }\r\n return this.breadcrumb;\r\n }\r\n\r\n public getCurrentRouter(): string {\r\n if (!this.breadcrumb) { this.newBreadcrumb(); }\r\n if (this.breadcrumb.items.length <= 0) { return ''; }\r\n\r\n return this.breadcrumb.items[this.breadcrumb.items.length - 1].link;\r\n }\r\n\r\n public getPrevRouter(): string {\r\n if (!this.breadcrumb) { this.newBreadcrumb(); }\r\n if (this.breadcrumb.items.length <= 1) { return ''; }\r\n\r\n return this.breadcrumb.items[this.breadcrumb.items.length - 2].link;\r\n }\r\n\r\n public hasPreviousRouter(): boolean {\r\n return this.breadcrumb.items.length > 1;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { forkJoin, map, Observable } from 'rxjs';\r\nimport { of } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class MenuDatasulService {\r\n\r\n private urlMenuPrograms = '/dts/datasul-rest/resources/prg/fwk/v1/menuPrograms/list';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * var program = {};\r\n * program['prg'] = \"cd0210\";\r\n * program['params'] = '01|123456'\r\n */\r\n public callProgress(program) {\r\n parent.postMessage({ program }, '*');\r\n }\r\n\r\n /**\r\n * var notification = {};\r\n * notification['type'] = 'success';\r\n * notification['title'] = 'Notification Title'\r\n * notification['detail'] = 'Notification Detail'\r\n */\r\n public sendNotification(notification) {\r\n parent.postMessage({ notification }, '*');\r\n }\r\n\r\n public openPath(programName: string, params: any, parent = true): void {\r\n this.openHTMLProgram('THF2', programName, params, parent);\r\n }\r\n\r\n public openTHF(externalName: string, params: any, parent = true): void {\r\n this.openHTMLProgram('THF1', externalName, params, parent);\r\n }\r\n\r\n private openHTMLProgram(type: string, HTMLProgram: string, params: any, parent: boolean): void {\r\n const backendType = sessionStorage.getItem('totvs.product.backend.type');\r\n if (backendType === 'DSS') {\r\n this.openOnDSS(type, HTMLProgram, params, parent);\r\n } else {\r\n this.openOnDTS4THF(type, HTMLProgram, params, parent);\r\n }\r\n }\r\n\r\n private openOnDTS4THF(type: string, HTMLProgram: string, params: any, parent: boolean): void {\r\n const datasulPath = document.referrer.indexOf('totvs-menu') > 0 ? 'totvs-menu' : 'menu-html';\r\n\r\n HTMLProgram = HTMLProgram.replace(/\\\\/g, '/');\r\n if (HTMLProgram.charAt(0) === '/') { HTMLProgram = HTMLProgram.slice(1); }\r\n if (HTMLProgram.charAt(HTMLProgram.length - 1) === '/') { HTMLProgram = HTMLProgram.slice(0, -1); }\r\n\r\n let baseUrl = `/${datasulPath}/#/`;\r\n if (type === 'THF2') {\r\n baseUrl = `${baseUrl}${datasulPath}/program-html/${HTMLProgram}/`;\r\n } else {\r\n baseUrl = `${baseUrl}${HTMLProgram}`;\r\n }\r\n\r\n if (params) {\r\n if (baseUrl.charAt(baseUrl.length - 1) === '/') { baseUrl = baseUrl.slice(0, -1); }\r\n if (type === 'THF2') {\r\n baseUrl = `${baseUrl}/#`;\r\n }\r\n baseUrl = `${baseUrl}/${params}`;\r\n }\r\n\r\n this.openWindow(baseUrl, parent);\r\n }\r\n\r\n private openOnDSS(type: string, HTMLProgram: string, params: any, parent: boolean): void {\r\n let baseUrl = `${HTMLProgram}`;\r\n if (params) {\r\n baseUrl = `${baseUrl}/${params}`;\r\n }\r\n\r\n try {\r\n if (window.top && typeof (window.top as any).navigateSmartX === 'function') {\r\n (window.top as any).navigateSmartX(baseUrl);\r\n } else {\r\n // Se falhar e precisar do window.open, a barra na frente e o smart-x\r\n // são necessários para o navegador não emendar na URL atual do iframe\r\n this.openWindow(`/smart-x/${baseUrl}`, parent);\r\n }\r\n } catch (e) {\r\n this.openWindow(`/smart-x/${baseUrl}`, parent);\r\n }\r\n }\r\n\r\n private openWindow(baseUrl: string, parent: boolean): void {\r\n if (parent) {\r\n window.open(baseUrl, '_parent');\r\n } else {\r\n window.open(baseUrl);\r\n }\r\n }\r\n\r\n public programSecurity(programName: string | Array<string>): Observable<Object> {\r\n let programList = [];\r\n if (Array.isArray(programName)) {\r\n programList = programName;\r\n } else {\r\n if (programName && programName !== '') {\r\n programList.push(programName);\r\n }\r\n }\r\n\r\n if (!programList || programList.length === 0) {\r\n return of({\r\n code: 400,\r\n message: 'Não foi possível validar a Segurança dos Programas, lista vazia !',\r\n detailedMessage: 'A lista de programas indicados para validação de segurança é inválida ou está vazia.'\r\n });\r\n }\r\n\r\n const aRequest = [];\r\n programList.forEach(programSearch => {\r\n aRequest.push(this.http.post<Object>(this.urlMenuPrograms, this.getPayloadSearchProg(programSearch)));\r\n });\r\n\r\n return forkJoin(aRequest).pipe(\r\n map((response: Object) => {\r\n if (!response) { return response; }\r\n if (!Array.isArray(response)) { return response; }\r\n\r\n const responseReturn = new Array<Object>();\r\n\r\n for (let idx = 0; idx < programList.length; idx++) {\r\n const responseProg = response[idx];\r\n let hasAcess = false;\r\n\r\n if (responseProg && responseProg.programs &&\r\n Array.isArray(responseProg.programs) &&\r\n responseProg.programs.length > 0) {\r\n\r\n responseProg.programs.forEach(prog => {\r\n if (prog.prg === programList[idx]) {\r\n hasAcess = true;\r\n }\r\n });\r\n }\r\n\r\n responseReturn.push({\r\n programName: programList[idx],\r\n hasAccess: hasAcess\r\n });\r\n }\r\n\r\n return responseReturn;\r\n })\r\n );\r\n }\r\n\r\n private getPayloadSearchProg(programSearch: string): object {\r\n return { 'codModul': null, 'search': programSearch, 'typeProg': '4,3,1,2', 'groupAplicat': [] };\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CacheParamsService {\r\n\r\n values = {};\r\n\r\n constructor() { }\r\n\r\n public setValue(key: string, value: any) {\r\n this.values[key] = value;\r\n }\r\n\r\n public getValue(key: string): any {\r\n return this.values[key];\r\n }\r\n\r\n public removeValue(key: string): void {\r\n delete this.values[key];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class TranslateService {\r\n\r\n static getSuportLanguage() {\r\n return ['pt-BR', 'pt', 'en-US', 'en', 'es'];\r\n }\r\n\r\n static getDefaultCurrencyCode() {\r\n return '$';\r\n }\r\n\r\n static getCurrentLanguage() {\r\n const locale = localStorage.getItem('user.language') || navigator.language;\r\n\r\n if (locale && this.getSuportLanguage().includes(locale)) { return locale; }\r\n\r\n return 'en-US';\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { PoDynamicFormField, PoDynamicFormFieldChanged, PoDynamicFormValidation } from '@po-ui/ng-components';\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ValidateService {\r\n constructor(private http: HttpClient) { }\r\n\r\n async validate(url: string, value: PoDynamicFormFieldChanged) {\r\n return await lastValueFrom(this.http.post<PoDynamicFormValidation>(url, value));\r\n }\r\n\r\n updateFormFields(validation: PoDynamicFormValidation, fields: Array<PoDynamicFormField>) {\r\n let changedField: any;\r\n\r\n if(validation?.fields){\r\n validation.fields.forEach(validField => {\r\n changedField = fields.find(field => field.property === validField.property);\r\n if(changedField){\r\n Object.keys(validField).forEach(function(key) {\r\n if (key !== 'property'){\r\n changedField[key] = validField[key]\r\n }\r\n });\r\n }\r\n });\r\n }\r\n return fields;\r\n }\r\n\r\n updateFormValue(validation: PoDynamicFormValidation, value: any): any{\r\n if(validation?.value){\r\n Object.keys(validation.value).forEach(function(key) {\r\n value[key] = validation.value[key]\r\n });\r\n }\r\n return value;\r\n } \r\n}\r\n","/*\r\nVersão: 1.000\r\nData Criação: 18/04/2019\r\n*/\r\n\r\nexport class DateUtil {\r\n\r\n constructor(\r\n ) { }\r\n\r\n /* Transforma data para o padrão YYYY-MM-DD */\r\n static dateToQueryParam(date: Date): string {\r\n const iDay = date.getDate();\r\n const iMonth = date.getMonth() + 1;\r\n const iYear = date.getFullYear();\r\n\r\n return `${iYear}-${this.pad(iMonth)}-${this.pad(iDay)}`;\r\n }\r\n\r\n /* Transforma data no padrão YYYY-MM-DD para DATE */\r\n static queryParamToDate(param: string): Date {\r\n const iDay = +param.split('-')[2];\r\n const iMonth = +param.split('-')[1];\r\n const iYear = +param.split('-')[0];\r\n\r\n return new Date(iYear, iMonth - 1, iDay);\r\n }\r\n\r\n /* Valida se foi informado uma data válida */\r\n static isValidDate(date: Date) {\r\n return date instanceof Date && !isNaN(date.getTime());\r\n }\r\n\r\n /* Ajusta a data retornando o padrão DATE */\r\n static ajustDate(param: any): Date {\r\n if (param instanceof Date) { return param; }\r\n if (!param) { return param; }\r\n\r\n return this.queryParamToDate(param.split('T')[0]);\r\n }\r\n\r\n /* Ajusta a data para o padrão DATE - utilizada nos construtores dos modelos */\r\n static ajustDateToModel(values: Object = {}, fieldName: string): Date {\r\n if (values.hasOwnProperty(fieldName) && (values[fieldName])) {\r\n if (values[fieldName].indexOf('T') >= 0) {\r\n return new Date(values[fieldName]);\r\n }\r\n\r\n const iDay = +values[fieldName].split('-')[2];\r\n const iMonth = +values[fieldName].split('-')[1];\r\n const iYear = +values[fieldName].split('-')[0];\r\n return new Date(iYear, iMonth - 1, iDay);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /* Adicona zero a esquerda do número */\r\n static pad(number) {\r\n if (number < 10) {\r\n return '0' + number;\r\n }\r\n return number;\r\n }\r\n}\r\n","/*\r\nVersão: 1.009\r\nData Criação: 06/08/2018\r\n*/\r\n\r\nimport { PoDisclaimer, PoI18nPipe, PoCheckboxGroupOption, PoMultiselectOption, PoDatepickerRange } from '@po-ui/ng-components';\r\nimport { IFilterRangeCharacter, IFilterRangeNumber, IFilterRangeDate } from '../../lib/interfaces/filter-range.interface';\r\nimport { PoNotificationService } from '@po-ui/ng-components';\r\n\r\nexport class DisclaimerUtil {\r\n poNotification: PoNotificationService;\r\n poI18nPipe: PoI18nPipe;\r\n literals: any = {};\r\n\r\n constructor(\r\n poNotification: PoNotificationService,\r\n poI18nPipe: PoI18nPipe,\r\n literals: Object\r\n ) {\r\n this.poNotification = poNotification;\r\n this.poI18nPipe = poI18nPipe;\r\n this.literals = literals;\r\n }\r\n\r\n public makeDisclaimer(property: string, value: string, hideClose = false, tradValue = false, vldBlank = false): PoDisclaimer {\r\n if (value === null || value === undefined) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (vldBlank && value === '') {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${tradValue ? this.literals[value] : value}`,\r\n property: `${property}`,\r\n value: `${value}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromNumber(property: string, value: number, hideClose = false, vldBlank = false, options = new Array<any>()): PoDisclaimer {\r\n let opt = null;\r\n let label = '';\r\n\r\n if (value === null || value === undefined) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (vldBlank && value === 0) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n label = `${this.literals[property]}:`;\r\n\r\n if (options && options.length > 0) {\r\n opt = options.find(itOpt => itOpt.value === value);\r\n label = `${label} ${opt ? opt.label : value}`;\r\n } else {\r\n label = `${label} ${value}`;\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${label}`,\r\n property: `${property}`,\r\n value: `${value}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromBoolean(property: string, value: boolean, hideClose = false): PoDisclaimer {\r\n if (value === null || value === undefined) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${value ? this.literals['yes'] : this.literals['no']}`,\r\n property: `${property}`,\r\n value: `${value}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromDate(property: string, value: Date, hideClose = false): PoDisclaimer {\r\n const dDate: Date = this.ajustDate(value);\r\n\r\n if (!this.isValidDate(dDate)) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${dDate.toLocaleDateString()}`,\r\n property: `${property}`,\r\n value: `${this.dateToQueryParam(dDate)}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromMultiSelect(property: string, value: Array<any>, length = 0,\r\n hideClose = false, tradValue = false): PoDisclaimer {\r\n let lstLabels = '';\r\n let lstValues = '';\r\n\r\n if (!value) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (value.length === 0 || (length > 0 && value.length === length)) {\r\n lstLabels = this.literals['all'];\r\n lstValues = 'all';\r\n } else {\r\n value.map(item => {\r\n if (lstLabels !== '') { lstLabels = `${lstLabels}, `; }\r\n if (lstValues !== '') { lstValues = `${lstValues},`; }\r\n lstLabels = `${lstLabels}${tradValue ? this.literals[item] : item}`;\r\n lstValues = `${lstValues}${item}`;\r\n });\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${lstLabels}`,\r\n property: `${property}`,\r\n value: `${lstValues}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromMultiSelectNumber(property: string, value: Array<any>, options: Array<any>,\r\n length = 0, hideClose = false): PoDisclaimer {\r\n let lstLabels = '';\r\n let lstValues = '';\r\n let opt = null;\r\n\r\n if (!value || !options) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (value.length === 0 || (length > 0 && value.length === length)) {\r\n lstLabels = this.literals['all'];\r\n lstValues = 'all';\r\n } else {\r\n value.map(item => {\r\n if (lstLabels !== '') { lstLabels = `${lstLabels}, `; }\r\n if (lstValues !== '') { lstValues = `${lstValues},`; }\r\n\r\n opt = options.find(itOpt => itOpt.value === item);\r\n lstLabels = `${lstLabels}${opt ? opt.label : item}`;\r\n lstValues = `${lstValues}${item}`;\r\n });\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${lstLabels}`,\r\n property: `${property}`,\r\n value: `${lstValues}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromCheckboxGroup(property: string, value: Array<string>, length = 0, hideClose = false): PoDisclaimer {\r\n let lstLabels = '';\r\n let lstValues = '';\r\n\r\n if (!value) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (value.length === 0) {\r\n lstLabels = this.literals['none'];\r\n lstValues = 'none';\r\n } else if (length > 0 && value.length === length) {\r\n lstLabels = this.literals['all'];\r\n lstValues = 'all';\r\n } else {\r\n value.map(checkParam => {\r\n if (lstLabels !== '') { lstLabels = `${lstLabels}, `; }\r\n if (lstValues !== '') { lstValues = `${lstValues},`; }\r\n lstLabels = `${lstLabels}${this.literals[checkParam]}`;\r\n lstValues = `${lstValues}${checkParam}`;\r\n });\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${lstLabels}`,\r\n property: `${property}`,\r\n value: `${lstValues}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromRangeCharacter(property: string, value: IFilterRangeCharacter, hideClose = false,\r\n validateEqual = true): PoDisclaimer {\r\n if (value.valInitial === null || value.valInitial === undefined) { value.valInitial = value.iniInitial; }\r\n if (value.valFinal === null || value.valFinal === undefined) { value.valFinal = value.iniFinal; }\r\n\r\n if (validateEqual &&\r\n value.iniInitial === value.valInitial &&\r\n value.iniFinal === value.valFinal) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: this.poI18nPipe.transform(\r\n this.literals['filterRange'],\r\n [this.literals[property], `'${value.valInitial}'`, `'${value.valFinal}'`]),\r\n property: `${property}`,\r\n value: `${value.valInitial};${value.valFinal}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromRangeNumber(property: string, value: IFilterRangeNumber, hideClose = false,\r\n validateEqual = true): PoDisclaimer {\r\n if (value.valInitial === null || value.valInitial === undefined) { value.valInitial = value.iniInitial; }\r\n if (value.valFinal === null || value.valFinal === undefined) { value.valFinal = value.iniFinal; }\r\n\r\n if (validateEqual &&\r\n value.iniInitial === value.valInitial &&\r\n value.iniFinal === value.valFinal) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: this.poI18nPipe.transform(\r\n this.literals['filterRange'],\r\n [this.literals[property], value.valInitial, value.valFinal]),\r\n property: `${property}`,\r\n value: `${value.valInitial};${value.valFinal}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromDatepickerRange(property: string, value: PoDatepickerRange, hideClose = false): PoDisclaimer {\r\n if (!value) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n let filterRangeDate = {\r\n iniInitial: new Date(1900, 1, 1),\r\n valInitial: this.ajustDate(value.start),\r\n iniFinal: new Date(9999, 11, 31),\r\n valFinal: this.ajustDate(value.end)\r\n }\r\n\r\n return this.makeDisclaimerFromRangeDate(property, filterRangeDate, hideClose, true);\r\n }\r\n\r\n public makeDisclaimerFromRangeDate(property: string, value: IFilterRangeDate, hideClose = false, validateEqual = true): PoDisclaimer {\r\n let valInitDate: Date = this.ajustDate(value.valInitial);\r\n let valFinalDate: Date = this.ajustDate(value.valFinal);\r\n\r\n if (!this.isValidDate(valInitDate)) {\r\n valInitDate = value.iniInitial;\r\n value.valInitial = value.iniInitial;\r\n }\r\n if (!this.isValidDate(valFinalDate)) {\r\n valFinalDate = value.iniFinal;\r\n value.valFinal = value.iniFinal;\r\n }\r\n\r\n if (validateEqual &&\r\n this.dateToQueryParam(value.iniInitial) === this.dateToQueryParam(valInitDate) &&\r\n this.dateToQueryParam(value.iniFinal) === this.dateToQueryParam(valFinalDate)) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: this.poI18nPipe.transform(\r\n this.literals['filterRange'],\r\n [this.literals[property], valInitDate.toLocaleDateString(), valFinalDate.toLocaleDateString()]),\r\n property: `${property}`,\r\n value: `${this.dateToQueryParam(valInitDate)};${this.dateToQueryParam(valFinalDate)}`\r\n };\r\n }\r\n\r\n public atzCharFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string, defaultValue: string): string {\r\n let returnValue = defaultValue;\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n\r\n returnValue = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzNumberFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string, defaultValue: number): number {\r\n let returnValue = defaultValue;\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n\r\n returnValue = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzBooleanFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string, defaultValue: boolean): boolean {\r\n const returnValue = defaultValue;\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n const disclaimerFind = disclaimers.find((item) => item.property === property);\r\n if (disclaimerFind && disclaimerFind.value !== null && disclaimerFind.value !== undefined) {\r\n if (disclaimerFind.value === 'true') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n public atzDateFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string, defaultValue: Date): Date {\r\n let returnValue: Date = this.ajustDate(defaultValue);\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n\r\n returnValue = this.ajustDate(item.value);\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzMultiSelectCharFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n defaultValue: Array<PoMultiselectOption>): Array<string> {\r\n return this.atzMultiSelectFromDisclamer('char', disclaimers, property, defaultValue);\r\n }\r\n\r\n public atzMultiSelectNumberFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n defaultValue: Array<PoMultiselectOption>): Array<number> {\r\n return this.atzMultiSelectFromDisclamer('number', disclaimers, property, defaultValue);\r\n }\r\n\r\n public atzMultiSelectFromDisclamer(type: string, disclaimers: Array<PoDisclaimer>, property: string,\r\n defaultValue: Array<PoMultiselectOption>): Array<any> {\r\n\r\n let returnValue = [];\r\n defaultValue.map(item => {\r\n returnValue.push(item.value);\r\n });\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null || item.value === 'all' || item.value === 'none') { return false; }\r\n\r\n returnValue = [];\r\n item.value.split(',').forEach(itemOpt => {\r\n if (type === 'char') { returnValue.push(itemOpt); }\r\n if (type === 'number') { returnValue.push(+itemOpt); }\r\n });\r\n\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzCheckboxFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n options: Array<PoCheckboxGroupOption>): Array<string> {\r\n\r\n let returnValue = [];\r\n options.map(item => {\r\n returnValue.push(item.value);\r\n });\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null || item.value === 'all' || item.value === 'none') { return false; }\r\n\r\n returnValue = [];\r\n item.value.split(',').forEach(itemOpt => {\r\n returnValue.push(itemOpt);\r\n });\r\n\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzRangeCharFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n rangeChar: IFilterRangeCharacter): IFilterRangeCharacter {\r\n let value = '';\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n value = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return this.atzRangeCharFromQueryParam(value, rangeChar);\r\n }\r\n\r\n public atzRangeNumFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n rangeNum: IFilterRangeNumber): IFilterRangeNumber {\r\n let value = '';\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n value = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return this.atzRangeNumFromQueryParam(value, rangeNum);\r\n }\r\n\r\n public atzDatepickerRangeFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n rangeDate: PoDatepickerRange): PoDatepickerRange {\r\n\r\n let filterRangeDate = {\r\n iniInitial: null,\r\n valInitial: rangeDate ? this.ajustDate(rangeDate.start) : null,\r\n iniFinal: null,\r\n valFinal: rangeDate ? this.ajustDate(rangeDate.end) : null\r\n }\r\n\r\n filterRangeDate = this.atzRangeDateFromDisclamer(disclaimers, property, filterRangeDate);\r\n\r\n if (filterRangeDate.valInitial === null || filterRangeDate.valFinal === null) {\r\n return null;\r\n }\r\n\r\n return {\r\n start: filterRangeDate.valInitial,\r\n end: filterRangeDate.valFinal\r\n }\r\n }\r\n\r\n public atzRangeDateFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n rangeDate: IFilterRangeDate): IFilterRangeDate {\r\n let value = '';\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n value = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return this.atzRangeDateFromQueryParam(value, rangeDate);\r\n }\r\n\r\n public atzRangeCharFromQueryParam(value: string, rangeChar: IFilterRangeCharacter): IFilterRangeCharacter {\r\n rangeChar.valInitial = rangeChar.iniInitial;\r\n rangeChar.valFinal = rangeChar.iniFinal;\r\n\r\n if (!value || value === '') { return rangeChar; }\r\n\r\n rangeChar.valInitial = value.split(';')[0];\r\n rangeChar.valFinal = value.split(';')[1];\r\n if (rangeChar.valFinal === null || rangeChar.valFinal === undefined) { rangeChar.valFinal = rangeChar.iniFinal; }\r\n\r\n return rangeChar;\r\n }\r\n\r\n public atzRangeNumFromQueryParam(value: string, rangeNum: IFilterRangeNumber): IFilterRangeNumber {\r\n rangeNum.valInitial = rangeNum.iniInitial;\r\n rangeNum.valFinal = rangeNum.iniFinal;\r\n\r\n if (!value || value === '') { return rangeNum; }\r\n\r\n rangeNum.valInitial = +value.split(';')[0];\r\n rangeNum.valFinal = +value.split(';')[1];\r\n if (rangeNum.valFinal === null || rangeNum.valFinal === undefined) { rangeNum.valFinal = rangeNum.iniFinal; }\r\n\r\n return rangeNum;\r\n }\r\n\r\n public atzRangeDateFromQueryParam(value: string, rangeDate: IFilterRangeDate): IFilterRangeDate {\r\n rangeDate.valInitial = rangeDate.iniInitial;\r\n rangeDate.valFinal = rangeDate.iniFinal;\r\n\r\n if (!value || value === '') { return rangeDate; }\r\n\r\n rangeDate.valInitial = this.queryParamToDate(value.split(';')[0]);\r\n rangeDate.valFinal = this.queryParamToDate(value.split(';')[1]);\r\n if (rangeDate.valFinal === null || rangeDate.valFinal === undefined) { rangeDate.valFinal = rangeDate.iniFinal; }\r\n\r\n return rangeDate;\r\n }\r\n\r\n public dateToQueryParam(date: Date): string {\r\n if (date === null) { return null; }\r\n\r\n const iDay = date.getDate();\r\n const iMonth = date.getMonth() + 1;\r\n const iYear = date.getFullYear();\r\n\r\n return `${iYear}-${this.pad(iMonth)}-${this.pad(iDay)}`;\r\n }\r\n\r\n public queryParamToDate(param: string): Date {\r\n if (param === null) { return null; }\r\n\r\n const iDay = +param.split('-')[2];\r\n const iMonth = +param.split('-')[1];\r\n const iYear = +param.split('-')[0];\r\n\r\n return new Date(iYear, iMonth - 1, iDay);\r\n }\r\n\r\n public isValidDate(date: Date) {\r\n return date instanceof Date && !isNaN(date.getTime());\r\n }\r\n\r\n public ajustDate(param: any): Date {\r\n if (param === null) { return null; }\r\n if (param instanceof Date) { return param; }\r\n if (!param) { return param; }\r\n\r\n return this.queryParamToDate(param.split('T')[0]);\r\n }\r\n\r\n public pad(number: number) {\r\n if (number < 10) {\r\n return '0' + number;\r\n }\r\n return number;\r\n }\r\n}\r\n","/*\r\nVersão: 1.002\r\nData Criação: 19/02/2019\r\n*/\r\n\r\nimport { PoNotificationService, PoI18nPipe } from '@po-ui/ng-components';\r\nimport { DisclaimerUtil } from './disclaimer.util';\r\n\r\nexport class FieldValidationUtil {\r\n poNotification: PoNotificationService;\r\n poI18nPipe: PoI18nPipe;\r\n literals: any = {};\r\n\r\n disclaimerUtil: DisclaimerUtil;\r\n\r\n constructor(\r\n poNotification: PoNotificationService,\r\n poI18nPipe: PoI18nPipe,\r\n literals: Object\r\n ) {\r\n this.poNotification = poNotification;\r\n this.poI18nPipe = poI18nPipe;\r\n this.literals = literals;\r\n this.disclaimerUtil = new DisclaimerUtil(this.poNotification, this.poI18nPipe, this.literals);\r\n }\r\n\r\n public vldFieldCharacter(field: string, value: string): boolean {\r\n if (!value || value.trim() === '') {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRequered'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Valida uma faixa de caracteres se o inicial é menor que final\r\n public vldRangeCharacter(initialField: string, finalField: string, initialValue: string, finalValue: string): boolean {\r\n if (!initialValue || !finalValue) {\r\n return true;\r\n }\r\n\r\n if (initialValue.trim().toUpperCase() > finalValue.trim().toUpperCase()) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRange'],\r\n [this.literals[initialField], this.literals[finalField]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldNumber(field: string, value: number, vldValue = false, zeroAccept = false): boolean {\r\n if (vldValue && !this.vldValueOfNumber(field, value)) {\r\n return false;\r\n }\r\n\r\n if ((!value) || value <= 0) {\r\n if (value === 0 && zeroAccept === true) {\r\n return true;\r\n }\r\n\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRequered'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldValueOfNumber(field: string, value: number): boolean {\r\n if (value && value < 0) {\r\n this.poNotification.error(\r\n { message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldPercent(field: string, value: number, vldValue = false): boolean {\r\n if (vldValue && !this.vldValueOfPercent(field, value)) {\r\n return false;\r\n }\r\n\r\n if (!this.vldFieldNumber(field, value)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldValueOfPercent(field: string, value: number): boolean {\r\n if (value && value < 0) {\r\n this.poNotification.error(\r\n { message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });\r\n return false;\r\n }\r\n\r\n if (value && value > 100) {\r\n this.poNotification.error(\r\n { message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Valida uma faixa de números se o inicial é menor que final\r\n public vldRangeNumber(initialField: string, finalField: string, initialValue: number, finalValue: number): boolean {\r\n if (!initialValue) { initialValue = 0; }\r\n if (!finalValue) { finalValue = 0; }\r\n\r\n if (initialValue > finalValue) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRange'],\r\n [this.literals[initialField], this.literals[finalField]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldDate(field: string, value: Date): boolean {\r\n const valDate = this.disclaimerUtil.ajustDate(value);\r\n\r\n if (!this.disclaimerUtil.isValidDate(valDate)) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldDate'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Valida uma faixa de datas se o inicial é menor que final\r\n public vldRangeDate(initialField: string, finalField: string, initialValue: Date, finalValue: Date): boolean {\r\n if (!initialValue || !finalValue) {\r\n return true;\r\n }\r\n\r\n const valInitialDate = this.disclaimerUtil.ajustDate(initialValue).getTime();\r\n const valFinalDate = this.disclaimerUtil.ajustDate(finalValue).getTime();\r\n\r\n if (valInitialDate > valFinalDate) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRange'],\r\n [this.literals[initialField], this.literals[finalField]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldMultiSelect(field: string, value: Array<any>): boolean {\r\n if (!value || value.length === 0) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldSelected'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldCheckbox(field: string, value: Array<string>): boolean {\r\n if (!value || value.length === 0) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldSelected'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Valida formato conforme regra: \"9\" apenas números, \"X\" qualquer caracter, \"!\" apenas letras maiúsculas\r\n public vldFieldFormat(field: string, value: string, format: string, replacePoint = false): boolean {\r\n let lOK = true;\r\n let oldFormat: string;\r\n\r\n if (!value) { return lOK; }\r\n\r\n /*Retira os pontos do formato*/\r\n if (replacePoint) {\r\n oldFormat = format;\r\n format = format.replace(/\\./g, '');\r\n }\r\n\r\n if (value.length !== format.length) {\r\n lOK = false;\r\n } else {\r\n for (let idx = 0; idx < format.length; idx++) {\r\n if (format[idx] === '9') {\r\n if (value[idx].replace(/[0-9]/, '9') !== '9') { lOK = false; break; }\r\n }\r\n\r\n if (format[idx] === '!') {\r\n if (value[idx].replace(/[A-Z]/, 'A') !== 'A') { lOK = false; break; }\r\n }\r\n }\r\n }\r\n\r\n if (replacePoint) {\r\n format = oldFormat;\r\n }\r\n\r\n if (!lOK) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldFormat'], [this.literals[field], format])\r\n });\r\n }\r\n\r\n return lOK;\r\n }\r\n}\r\n","/*\r\nVersão: 1.000\r\nData Criação: 06/08/2018\r\n*/\r\n\r\nimport { IFilterRangeCharacter, IFilterRangeNumber, IFilterRangeDate } from '../../lib/interfaces/filter-range.interface';\r\n\r\nexport class FilterRangeUtil {\r\n\r\n constructor() {\r\n }\r\n\r\n public static makeFilterRangeCharacter(iniInitial: string, iniFinal: string): IFilterRangeCharacter {\r\n return {\r\n iniInitial,\r\n iniFinal,\r\n valInitial: iniInitial,\r\n valFinal: iniFinal\r\n };\r\n }\r\n\r\n public static makeFilterRangeNumber(iniInitial: number, iniFinal: number): IFilterRangeNumber {\r\n return {\r\n iniInitial,\r\n iniFinal,\r\n valInitial: iniInitial,\r\n valFinal: iniFinal\r\n };\r\n }\r\n\r\n public static makeFilterRangeDate(iniInitial: Date, iniFinal: Date): IFilterRangeDate {\r\n return {\r\n iniInitial,\r\n iniFinal,\r\n valInitial: iniInitial,\r\n valFinal: iniFinal\r\n };\r\n }\r\n}\r\n","/*\r\nVersão: 1.003\r\nData Criação: 18/04/2019\r\n*/\r\n\r\nimport { PoMultiselectOption, PoSelectOption } from '@po-ui/ng-components';\r\n\r\nexport interface ChartSeries {\r\n name?: string;\r\n data?: Array<number>;\r\n}\r\nexport interface ChartValues {\r\n minValue: number;\r\n maxValue: number;\r\n}\r\n\r\nexport class GenericFunctionsUtils {\r\n\r\n literals: any = {};\r\n\r\n constructor(\r\n literals: Object\r\n ) {\r\n this.literals = literals;\r\n }\r\n\r\n /* Transforma uma Lista separada por \",\" em um Array */\r\n static listToArrayCharacter(list: string): Array<string> {\r\n let returnArray = new Array<string>();\r\n\r\n if (list && list !== '') {\r\n returnArray = list.split(',');\r\n }\r\n\r\n return returnArray;\r\n }\r\n\r\n /* Transforma um Array em uma Lista separada por \",\" */\r\n static ArrayToListCharacter(array: Array<string>): string {\r\n let list = '';\r\n\r\n if (array && array.length > 0) {\r\n list = array.join(',');\r\n }\r\n\r\n return list;\r\n }\r\n\r\n static isEmpty(object: object): boolean {\r\n let isEmpty = true;\r\n\r\n for (const content in object) {\r\n if (object.hasOwnProperty(content)) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n return isEmpty;\r\n }\r\n\r\n static getChartValues(chartData: Array<ChartSeries>): ChartValues {\r\n\r\n let chartValues: ChartValues;\r\n\r\n let maxValue,\r\n minValue;\r\n\r\n maxValue = undefined;\r\n minValue = undefined;\r\n\r\n chartData.map(item => {\r\n if (maxValue === undefined && minValue === undefined) {\r\n maxValue = item.data[0];\r\n minValue = item.data[0];\r\n } else {\r\n if (item.data < minValue) {\r\n minValue = item.data[0];\r\n }\r\n if (item.data > maxValue) {\r\n maxValue = item.data[0];\r\n }\r\n }\r\n });\r\n\r\n if (maxValue > 0 && minValue > 0) {\r\n chartValues = { maxValue: maxValue, minValue: 0 };\r\n }\r\n\r\n if (maxValue > 0 && minValue < 0) {\r\n chartValues = { maxValue: maxValue, minValue: minValue };\r\n }\r\n\r\n if (maxValue < 0 && minValue < 0) {\r\n const max = (minValue / 3) * (- 1);\r\n chartValues = { maxValue: max, minValue: minValue };\r\n }\r\n\r\n if (maxValue > 0 && minValue === 0) {\r\n chartValues = { maxValue: maxValue, minValue: 0 };\r\n }\r\n\r\n if (maxValue === 0 && minValue < 0) {\r\n const max = (minValue / 3) * (- 1);\r\n chartValues = { maxValue: max, minValue: minValue };\r\n }\r\n\r\n if (maxValue === 0 && minValue === 0) {\r\n chartValues = { maxValue: undefined, minValue: undefined };\r\n }\r\n\r\n chartValues.maxValue = Math.round(chartValues.maxValue);\r\n chartValues.minValue = Math.round(chartValues.minValue);\r\n\r\n return chartValues;\r\n }\r\n\r\n /*Deixa no list apenas o itens que existem no options*/\r\n static atzMultiSelectListByOptions(options: Array<PoMultiselectOption>, list: Array<string>): Array<string> {\r\n let idx: number;\r\n let newList: Array<string>;\r\n\r\n if (!list) {\r\n return list;\r\n }\r\n\r\n newList = new Array<string>();\r\n\r\n list.map(item => {\r\n if (item) {\r\n idx = options.findIndex(itemOptions => itemOptions.value === item);\r\n if (idx >= 0) {\r\n newList.push(item);\r\n }\r\n }\r\n });\r\n\r\n return newList;\r\n }\r\n\r\n /*Carrega o Options com os valores defaults passados como parâmetro (list)*/\r\n public loadOptionsMultiSelect(options: Array<PoMultiselectOption>, list: Array<string>): void {\r\n let idx: number;\r\n\r\n if (!list) {\r\n return;\r\n }\r\n\r\n list.map(item => {\r\n if (item) {\r\n idx = options.findIndex(itemOptions => itemOptions.value === item);\r\n if (idx === -1) {\r\n options.push({ label: item === 'all' ? this.literals['all'] : item, value: item });\r\n }\r\n }\r\n });\r\n }\r\n\r\n /*Carrega o Options com os valores defaults passados como parâmetro (list)*/\r\n public loadOptionsSelect(options: Array<PoSelectOption>, selectValue: string, tradValue = false): void {\r\n let idx: number;\r\n\r\n if (!selectValue) {\r\n return;\r\n }\r\n\r\n if (selectValue) {\r\n idx = options.findIndex(itemOptions => itemOptions.value === selectValue);\r\n if (idx === -1) {\r\n options.push({ label: tradValue ? this.literals[selectValue] : selectValue, value: selectValue });\r\n }\r\n }\r\n }\r\n\r\n /*Método que compara 2 objetos e retorna se são iguais ou diferentes*/\r\n public compareObjects(firstObject: Object, secondObject: Object): boolean {\r\n\r\n if (!firstObject || !secondObject) {\r\n return false;\r\n }\r\n\r\n /*Pega a lista de nomes dos campos do objetos e compara*/\r\n if (Object.getOwnPropertyNames(firstObject).length !== Object.getOwnPropertyNames(secondObject).length) {\r\n return false;\r\n }\r\n\r\n for (const content in firstObject) {\r\n if (content.substr(0, 1) === '$' || content.substr(0, 1) === '_') {\r\n continue;\r\n }\r\n\r\n if (firstObject[content] !== secondObject[content]) {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public referenceGeneration(charInd: string, dateRef: Date): string {\r\n let reference: string;\r\n let random: string;\r\n\r\n const iDay = dateRef.getDate();\r\n const iMonth = dateRef.getMonth() + 1;\r\n const iYear = dateRef.getFullYear();\r\n\r\n reference = `${this.pad(iYear)}${this.pad(iMonth)}${this.pad(iDay)}${charInd}`;\r\n\r\n random = btoa(`${(new Date()).getTime()}`);\r\n random = random.replace(/[=]/g, '');\r\n random = random.slice(random.length - 3, random.length);\r\n\r\n return `${reference}${random}`;\r\n }\r\n\r\n public pad(number): string {\r\n if (number < 10) {\r\n return '0' + number;\r\n }\r\n if (number > 99) {\r\n return (number + '').slice(2, 4);\r\n }\r\n return number;\r\n }\r\n\r\n public focusInternalInput(idField: string) {\r\n const fieldComponent = document.getElementById(idField);\r\n const fieldInput = (<HTMLScriptElement[]><any>fieldComponent.getElementsByClassName('po-input'))[0];\r\n fieldInput.focus();\r\n }\r\n}\r\n","export class FileUtil {\r\n\r\n constructor(\r\n ) { }\r\n\r\n static downloadFile(data: any, fileName: string, contentType?: string, base64?: boolean): void {\r\n base64 = (base64 === false) ? false : true;\r\n const dataBlob = base64 ? this.b64toBlob(data, contentType) : data;\r\n this.download(dataBlob, fileName);\r\n }\r\n\r\n static downloadData(data: Array<any>, dwldDataParam: IDownloadDataParams = null): void {\r\n if (!data) { return; }\r\n\r\n if (!dwldDataParam) { dwldDataParam = new DownloadDataParams(); }\r\n if (!dwldDataParam.fileName) { dwldDataParam.fileName = 'data.csv'; }\r\n if (!dwldDataParam.literals) { dwldDataParam.literals = {}; }\r\n if (!dwldDataParam.columnDelimiter) { dwldDataParam.columnDelimiter = ';'; }\r\n if (!dwldDataParam.columnList) { dwldDataParam.columnList = []; }\r\n if (!dwldDataParam.columnExclude) { dwldDataParam.columnExclude = []; }\r\n\r\n const datab64 = btoa(this.jsonToString(data, dwldDataParam));\r\n this.downloadFile(datab64, dwldDataParam.fileName, 'text/csv');\r\n }\r\n\r\n private static download(file: Blob, fileName: string): void {\r\n const binaryData = [file];\r\n const downloadLink = document.createElement('a');\r\n const urlDownload = window.URL.createObjectURL(new Blob(binaryData, { type: file.type }));\r\n\r\n /* Verifica se é ie ou edge, pois o mesmo tem tratamento próprio para arquivos blob */\r\n const nav = (window.navigator as any);\r\n if (nav && nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(file, fileName);\r\n } else {\r\n downloadLink.href = urlDownload;\r\n downloadLink.setAttribute('download', fileName);\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n window.URL.revokeObjectURL(urlDownload);\r\n downloadLink.remove();\r\n }\r\n }\r\n\r\n static b64toBlob(b64Data: any, contentType?: string, sliceSize?: number): Blob {\r\n contentType = contentType || '';\r\n sliceSize = sliceSize || 512;\r\n\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n const blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n\r\n private static jsonToString(jsonData: Array<any>, dwldDataParam: IDownloadDataParams): string {\r\n if (!jsonData || jsonData.length === 0) { return ''; }\r\n\r\n const lineDelimiter = '\\n';\r\n\r\n let columnOrig = null;\r\n let columnHeader = null;\r\n const keys = [];\r\n let includeKey: boolean;\r\n\r\n if (dwldDataParam.columnList &&\r\n dwldDataParam.columnList.length > 0) {\r\n columnOrig = dwldDataParam.columnList;\r\n } else {\r\n columnOrig = Object.keys(jsonData[0]);\r\n }\r\n\r\n columnOrig.forEach(key => {\r\n includeKey = true;\r\n\r\n if (dwldDataParam.columnExclude &&\r\n dwldDataParam.columnExclude.length > 0 &&\r\n dwldDataParam.columnExclude.indexOf(key) !== -1) {\r\n includeKey = false;\r\n }\r\n\r\n if (includeKey) {\r\n keys.push(key);\r\n columnHeader = (!columnHeader) ? '' : columnHeader + dwldDataParam.columnDelimiter;\r\n columnHeader += (dwldDataParam.literals[key]) ? dwldDataParam.literals[key] : key;\r\n }\r\n });\r\n\r\n const lineStr = jsonData.reduce((accLineStr, currentItem) => {\r\n let first = true;\r\n let columnValue = null;\r\n\r\n keys.forEach(key => {\r\n if (!first) { accLineStr += dwldDataParam.columnDelimiter; }\r\n\r\n columnValue = currentItem[key];\r\n if (columnValue === null || columnValue === undefined) { columnValue = ''; }\r\n switch (typeof (columnValue)) {\r\n case 'number':\r\n columnValue = columnValue.toLocaleString();\r\n break;\r\n case 'boolean':\r\n columnValue = (dwldDataParam.literals[`${columnValue}`]) ?\r\n dwldDataParam.literals[`${columnValue}`] : columnValue;\r\n break;\r\n case 'object':\r\n columnValue = JSON.stringify(columnValue);\r\n }\r\n accLineStr += columnValue;\r\n\r\n first = false;\r\n });\r\n\r\n return accLineStr + lineDelimiter;\r\n\r\n }, columnHeader + lineDelimiter);\r\n\r\n return lineStr;\r\n }\r\n\r\n static fileToB64(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = () => {\r\n let cntFile: any;\r\n cntFile = reader.result;\r\n if (!cntFile) {\r\n reject('File not found or Empty');\r\n return;\r\n }\r\n\r\n const aCnt = cntFile.split(',');\r\n if (aCnt && aCnt.length >= 2) {\r\n resolve(aCnt[1]);\r\n } else {\r\n reject('File not found or Empty');\r\n }\r\n\r\n };\r\n\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n}\r\n\r\nexport interface IDownloadDataParams {\r\n fileName: string;\r\n literals: any;\r\n columnDelimiter: string;\r\n columnList: Array<string>;\r\n columnExclude: Array<string>;\r\n}\r\n\r\nexport class DownloadDataParams implements IDownloadDataParams {\r\n fileName: string;\r\n literals: any;\r\n columnDelimiter: string;\r\n columnList: Array<string>;\r\n columnExclude: Array<string>;\r\n}\r\n","export interface IScheduleParameters {\r\n executionType: number;\r\n execAppointDate: Date;\r\n execAppointHour: string;\r\n executionServer: string;\r\n repeatExecution: boolean;\r\n repeatType: number;\r\n frequency: string;\r\n frequencyValue: number;\r\n frequencyType: string;\r\n execAppointHourInit: string;\r\n execAppointHourFinal: string;\r\n selectWeeklys: [];\r\n dayOfMonth: number;\r\n listExecutionID: string[];\r\n}\r\n\r\nexport class ScheduleParameters implements IScheduleParameters {\r\n executionType: number;\r\n execAppointDate: Date;\r\n execAppointHour: string;\r\n executionServer: string;\r\n repeatExecution: boolean;\r\n repeatType: number;\r\n frequency: string;\r\n frequencyValue: number;\r\n frequencyType: string;\r\n execAppointHourInit: string;\r\n execAppointHourFinal: string;\r\n selectWeeklys: [];\r\n dayOfMonth: number;\r\n listExecutionID: string[];\r\n}\r\n\r\nexport interface IExecutionStatus {\r\n jobScheduleID: string;\r\n executionID: string;\r\n startedDate: Date;\r\n error: string;\r\n status: string;\r\n}\r\n\r\nexport class ExecutionStatus implements IExecutionStatus {\r\n jobScheduleID: string;\r\n executionID: string;\r\n startedDate: Date;\r\n error: string;\r\n status: string;\r\n}\r\n\r\nexport interface IExecutionParameters {\r\n executionServer: string;\r\n programName: string;\r\n externalName: string;\r\n programEMS5?: boolean;\r\n programStyle?: number;\r\n programVersion?: string;\r\n businessParams: Array<any>;\r\n paramDigitDef?: Array<any>;\r\n paramDigitData?: Array<any>;\r\n paramSelections?: Array<any>;\r\n}\r\n\r\nexport class ExecutionParameters implements IExecutionParameters {\r\n executionServer: string;\r\n programName: string;\r\n externalName: string;\r\n programEMS5?: boolean;\r\n programStyle?: number;\r\n programVersion?: string;\r\n businessParams: Array<any>;\r\n paramDigitDef?: Array<any>;\r\n paramDigitData?: Array<any>;\r\n paramSelections?: Array<any>;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { PoLookupFilteredItemsParams } from '@po-ui/ng-components';\r\nimport { ExecutionStatus, IExecutionParameters, IExecutionStatus } from './totvs-schedule-execution.model';\r\n\r\n@Injectable()\r\nexport class TotvsScheduleExecutionService {\r\n\r\n private headers = { headers: { 'X-PO-Screen-Lock': 'true' } };\r\n\r\n private urlCadServidor = '/dts/datasul-rest/resources/prg/btb/v1/servidoresExecucao';\r\n private urlJobScheduler = '/dts/datasul-rest/resources/prg/framework/v1/jobScheduler';\r\n private urlJobExecution = '/dts/datasul-rest/resources/prg/framework/v1/jobExecution';\r\n\r\n //private urlCadServidor = '/genericsZoom';\r\n //private urlJobScheduler = '/jobScheduler';\r\n //private urlJobExecution = '/jobExecution';\r\n\r\n private jobExecutionSubscription$: Subscription;\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getFilteredItems(params: PoLookupFilteredItemsParams): Observable<any> {\r\n const urlParams = new Array<string>();\r\n\r\n urlParams.push(`pageSize=${params.pageSize.toString()}`);\r\n urlParams.push(`page=${params.page.toString()}`);\r\n\r\n if (params.filter && params.filter.length > 0) {\r\n urlParams.push(`quickSearch=${params.filter}`);\r\n }\r\n\r\n return this.http.get(`${this.urlCadServidor}?${urlParams.join('&')}`);\r\n }\r\n\r\n getObjectByValue(id: string): Observable<any> {\r\n return this.http.get<any>(`${this.urlCadServidor}/${id}`, this.headers);\r\n }\r\n\r\n createExecution(parameters: object, loading: boolean): Observable<any> {\r\n const params = JSON.parse(JSON.stringify(parameters).replace(/\\\\\\\\/g, '*|'));\r\n\r\n if (params) {\r\n params.svUuidToken = this.getUuidAccessToken();\r\n }\r\n\r\n if (loading) {\r\n return this.http.post(`${this.urlJobScheduler}`, params, this.headers);\r\n } else {\r\n return this.http.post(`${this.urlJobScheduler}`, params);\r\n }\r\n }\r\n\r\n createExecutionForNow(executionParams: IExecutionParameters, loading: boolean): Observable<any> {\r\n let jobScheduleParams: any;\r\n const date = new Date();\r\n\r\n if (!executionParams.programEMS5) { executionParams.programEMS5 = false; }\r\n if (!executionParams.programStyle) { executionParams.programStyle = 0; }\r\n if (!executionParams.programVersion) { executionParams.programVersion = ''; }\r\n if (!executionParams.businessParams || executionParams.businessParams.length === 0) {\r\n executionParams.businessParams = [{ chave: '', valor: '' }];\r\n }\r\n\r\n jobScheduleParams = {};\r\n jobScheduleParams.status = 'active';\r\n jobScheduleParams.processID = executionParams.programName;\r\n jobScheduleParams.firstExecution = `${date.getFullYear()}-${(date.getMonth() + 1)}-${date.getDate()}T${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:00.000Z`;\r\n jobScheduleParams.recurrent = false;\r\n\r\n jobScheduleParams.executionParameter = {\r\n parametros: [\r\n { chave: 'rpwServer', valor: executionParams.executionServer },\r\n { chave: 'RPW_PROGRAM', valor: executionParams.externalName },\r\n { chave: 'RPW_PRG_EMS5', valor: executionParams.programEMS5 ? 'yes' : 'no' },\r\n { chave: 'RPW_PRG_ESTILO', valor: executionParams.programStyle },\r\n { chave: 'RPW_PRG_VERS', valor: executionParams.programVersion },\r\n { parametros_negocio: executionParams.businessParams }\r\n ]\r\n };\r\n\r\n if (executionParams.paramDigitDef && executionParams.paramDigitDef.length > 0) {\r\n jobScheduleParams.executionParameter.parametros.push({\r\n param_digita_def: executionParams.paramDigitDef\r\n });\r\n }\r\n\r\n if (executionParams.paramDigitData && executionParams.paramDigitData.length > 0) {\r\n jobScheduleParams.executionParameter.parametros.push({\r\n param_digita_dados: executionParams.paramDigitData\r\n });\r\n }\r\n\r\n if (executionParams.paramSelections && executionParams.paramSelections.length > 0) {\r\n jobScheduleParams.executionParameter.parametros.push({\r\n selecoes: executionParams.paramSelections\r\n });\r\n }\r\n\r\n return this.createExecution(jobScheduleParams, loading);\r\n }\r\n\r\n getExecutionByJobScheduleID(jobScheduleID: string, loading = false): Observable<IExecutionStatus> {\r\n const url = `${this.urlJobExecution}?jobScheduleID=${jobScheduleID}`;\r\n return this.getExecution(url, loading).pipe(\r\n map((response) => this.transformExecution('jobScheduleID', response))\r\n );\r\n }\r\n\r\n getExecutionByExecutionID(executionID: string, loading = false): Observable<IExecutionStatus> {\r\n const url = `${this.urlJobExecution}/${executionID}`;\r\n return this.getExecution(url, loading).pipe(\r\n map((response) => this.transformExecution('executionID', response))\r\n );\r\n }\r\n\r\n private getExecution(url: string, loading: boolean): Observable<any> {\r\n if (loading) {\r\n return this.http.get(url, this.headers);\r\n } else {\r\n return this.http.get(url);\r\n }\r\n }\r\n\r\n private transformExecution(type: string, response: any): IExecutionStatus {\r\n if (!response || !response.items || response.items.length === 0) { return; }\r\n response = response.items[0];\r\n\r\n const execStatus = new ExecutionStatus();\r\n execStatus.jobScheduleID = response.jobScheduleID;\r\n execStatus.executionID = response.executionID;\r\n execStatus.startedDate = response.startedDate;\r\n execStatus.error = response.error;\r\n execStatus.status = response.status;\r\n\r\n return execStatus;\r\n }\r\n\r\n followUpExcByJobScheduleID(jobScheduleID: string, intervalNum: number, fncCallBack: Function, loading = false): void {\r\n this.followUpExecution('jobScheduleID', jobScheduleID, intervalNum, fncCallBack, loading);\r\n }\r\n\r\n followUpExcByExecutionID(executionID: string, intervalNum: number, fncCallBack: Function, loading = false): void {\r\n this.followUpExecution('executionID', executionID, intervalNum, fncCallBack, loading);\r\n }\r\n\r\n private followUpExecution(type: string, execID: string,\r\n intervalNum: number, fncCallBack: Function, loading: boolean): void {\r\n\r\n this.jobExecutionSubscription$ = null;\r\n\r\n const intervalID = setInterval(() => {\r\n const execStatus = new ExecutionStatus();\r\n execStatus.jobScheduleID = (type === 'jobScheduleID') ? execID : '';\r\n execStatus.executionID = (type === 'executionID') ? execID : '';\r\n execStatus.startedDate = null;\r\n execStatus.error = '';\r\n execStatus.status = 'PENDING'; // PENDING, RUNNING, SUCCESS, FAILURE\r\n\r\n if (this.jobExecutionSubscription$) { return; }\r\n\r\n if (type === 'jobScheduleID') {\r\n this.jobExecutionSubscription$ = this.getExecutionByJobScheduleID(execID, loading)\r\n .subscribe((response: IExecutionStatus) => {\r\n this.followUpExecReturnOk(execID, execStatus, response, intervalID, fncCallBack);\r\n }, (error) => {\r\n this.followUpExecReturnError(error, execStatus, intervalID, fncCallBack);\r\n });\r\n }\r\n\r\n if (type === 'executionID') {\r\n this.jobExecutionSubscription$ = this.getExecutionByExecutionID(execID, loading)\r\n .subscribe((response: IExecutionStatus) => {\r\n this.followUpExecReturnOk(execID, execStatus, response, intervalID, fncCallBack);\r\n }, (error) => {\r\n this.followUpExecReturnError(error, execStatus, intervalID, fncCallBack);\r\n });\r\n }\r\n\r\n }, intervalNum);\r\n }\r\n\r\n private followUpExecReturnOk(execID: string, execStatus: IExecutionStatus, response: IExecutionStatus,\r\n intervalID: any, fncCallBack: Function): void {\r\n\r\n if (response) {\r\n execStatus = response;\r\n } else {\r\n execStatus.error = `Agendamento não encontrado com ID: ${execID}`;\r\n execStatus.status = 'FAILURE';\r\n }\r\n\r\n if (!fncCallBack(execStatus) ||\r\n execStatus.status === 'SUCCESS' ||\r\n execStatus.status === 'FAILURE') {\r\n clearInterval(intervalID);\r\n }\r\n\r\n this.jobExecutionSubscription$ = null;\r\n }\r\n\r\n private followUpExecReturnError(error: any, execStatus: IExecutionStatus,\r\n intervalID: any, fncCallBack: Function): void {\r\n\r\n let erroDesc = '';\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n erroDesc = error.message;\r\n if (error.error) {\r\n erroDesc = '';\r\n if (error.error.code) { erroDesc = error.error.code; }\r\n if (error.error.message) { erroDesc = `${erroDesc} - ${error.error.message}`; }\r\n if (error.error.detailedMessage) { erroDesc = `${erroDesc} - ${error.error.detailedMessage}`; }\r\n }\r\n } else {\r\n erroDesc = error;\r\n }\r\n\r\n execStatus.error = erroDesc;\r\n execStatus.status = 'FAILURE';\r\n fncCallBack(execStatus);\r\n clearInterval(intervalID);\r\n this.jobExecutionSubscription$ = null;\r\n }\r\n\r\n private addZero(num: number): string {\r\n let str = `${num}`;\r\n if (num < 10) { str = `0${num}`; }\r\n return str;\r\n }\r\n\r\n private getUuidAccessToken(): string {\r\n let tokenService = localStorage.getItem('token-service.token');\r\n if (tokenService) {\r\n let jsonTokenService = JSON.parse(tokenService);\r\n let accessToken = jsonTokenService['access_token'];\r\n let payload = accessToken.split(\".\");\r\n let decodedAccessToken = atob(payload[1]);\r\n let jsonDecodedAccessToken = JSON.parse(decodedAccessToken);\r\n return jsonDecodedAccessToken['jti'];\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { PoRadioGroupOption, PoI18nService, PoNotificationService, PoLookupColumn } from '@po-ui/ng-components';\r\nimport { IExecutionStatus, IScheduleParameters, ScheduleParameters } from './totvs-schedule-execution.model';\r\nimport { NgForm } from '@angular/forms';\r\nimport { TotvsScheduleExecutionService } from './totvs-schedule-execution.service';\r\n\r\n@Component({\r\n selector: 'app-totvs-schedule-execution',\r\n templateUrl: './totvs-schedule-execution.component.html',\r\n styleUrls: ['./totvs-schedule-execution.component.css'],\r\n standalone: false\r\n})\r\n\r\nexport class TotvsScheduleExecutionComponent implements OnInit {\r\n @ViewChild('scheduleExecutionForm', { static: true }) scheduleExecutionForm: NgForm;\r\n\r\n @Input() programName: string;\r\n @Input() externalName: string;\r\n @Input() programEMS5 = false;\r\n @Input() programStyle = 0;\r\n @Input() programVersion = '';\r\n @Input() parameters: [];\r\n @Input() paramDigitDef = [];\r\n @Input() paramDigitData = [];\r\n @Input() paramSelections = [];\r\n @Input() disabledParams = false;\r\n @Input() loading = false;\r\n @Input() hideRepeatExecution = false;\r\n @Output() endExecution = new EventEmitter();\r\n\r\n constructor(\r\n public poI18nService: PoI18nService,\r\n public rpwService: TotvsScheduleExecutionService,\r\n public poNotification: PoNotificationService) {\r\n }\r\n\r\n executionTypeOptions: Array<PoRadioGroupOption>;\r\n frequencyOptions: Array<PoRadioGroupOption>;\r\n frequencyTypeOptions: Array<PoRadioGroupOption>;\r\n weeklyOptions: Array<PoRadioGroupOption>;\r\n zoomRpwServiceColumns: Array<PoLookupColumn>;\r\n model: ScheduleParameters;\r\n private jsonObject: any = {};\r\n\r\n literals: any = {};\r\n\r\n ngOnInit() {\r\n /* VERIFICAR COMO FICARÁ A TRADUÇÃO\r\n forkJoin(\r\n this.poI18nService.getLiterals(),\r\n this.poI18nService.getLiterals({ context: 'generalRpw' })\r\n ).subscribe(literals => {\r\n literals.map(item => Object.assign(this.literals, item) );\r\n this.setupComponents();\r\n });*/\r\n\r\n this.setupComponents();\r\n }\r\n\r\n setupComponents() {\r\n this.executionTypeOptions = [\r\n { label: 'Executar Hoje', value: 1 },\r\n { label: 'Agendar Execução', value: 2 }\r\n ];\r\n\r\n this.frequencyOptions = [\r\n { label: 'Uma vez no dia', value: 'no' },\r\n { label: 'Várias vezes no dia', value: 'yes' }\r\n ];\r\n\r\n this.frequencyTypeOptions = [\r\n { label: 'Hora(s)', value: 'hour' },\r\n { label: 'Minuto(s)', value: 'minute' }\r\n ];\r\n\r\n this.weeklyOptions = [\r\n { label: 'Domingo', value: 'Sunday' },\r\n { label: 'Segunda', value: 'Monday' },\r\n { label: 'Terça', value: 'Tuesday' },\r\n { label: 'Quarta', value: 'Wednesday' },\r\n { label: 'Quinta', value: 'Thursday' },\r\n { label: 'Sexta', value: 'Friday' },\r\n { label: 'Sábado', value: 'Saturday' }\r\n ];\r\n\r\n this.zoomRpwServiceColumns = [\r\n { property: 'code', label: 'Servidor', type: 'string', width: '20%' },\r\n { property: 'name', label: 'Descrição', type: 'string', width: '80%' }\r\n ];\r\n\r\n this.model = new ScheduleParameters();\r\n this.model.executionType = 1;\r\n this.model.repeatType = 1;\r\n this.model.repeatExecution = false;\r\n }\r\n\r\n public setScheduleParameters(schParam: IScheduleParameters) {\r\n if (!schParam) { return; }\r\n this.model = schParam;\r\n }\r\n\r\n public getScheduleParameters(): IScheduleParameters {\r\n return this.model;\r\n }\r\n\r\n fieldRpwServiceFormat(value) {\r\n return `${value.code} - ${value.name}`;\r\n }\r\n\r\n isExecutionSchedule(): boolean {\r\n return (this.model.executionType === 2);\r\n }\r\n\r\n isRepeatExecution(): boolean {\r\n return this.model.repeatExecution;\r\n }\r\n\r\n isFrenquency(): boolean {\r\n return (this.model.frequency === 'yes');\r\n }\r\n\r\n changeRepeatExecution() {\r\n const date = new Date();\r\n\r\n if (!this.model.execAppointHourInit) { this.model.execAppointHourInit = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`; }\r\n if (!this.model.execAppointHourFinal) { this.model.execAppointHourFinal = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`; }\r\n this.model.selectWeeklys = [];\r\n this.model.dayOfMonth = 0;\r\n this.model.frequency = 'no';\r\n this.model.frequencyType = 'hour';\r\n this.model.frequencyValue = 0;\r\n }\r\n\r\n changeExecutionType() {\r\n const date = new Date();\r\n\r\n this.model.execAppointDate = date;\r\n this.model.execAppointHour = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;\r\n }\r\n\r\n changeTypeFrequency() {\r\n }\r\n\r\n getActiveTab(codTab: number) {\r\n return (this.model.repeatType === codTab);\r\n }\r\n\r\n setActiveTab(codTab: number) {\r\n this.model.repeatType = codTab;\r\n }\r\n\r\n addZero(num: number): string {\r\n let str = `${num}`;\r\n if (num < 10) { str = `0${num}`; }\r\n return str;\r\n }\r\n\r\n executeSchedule() {\r\n if (this.disabledParams) { return; }\r\n if (!this.validate()) { return; }\r\n\r\n this.createJobScheduleParameters();\r\n\r\n this.model.listExecutionID = [];\r\n\r\n // Executa hoje ou agendada\r\n this.rpwService.createExecution(this.jsonObject, this.loading).subscribe({\r\n next: (response: object) => {\r\n this.finishSchedule(true, true, response);\r\n },\r\n error: () => {\r\n this.finishSchedule(true, false, null);\r\n }\r\n });\r\n }\r\n\r\n createJobScheduleParameters(): void {\r\n let idxParam: number;\r\n\r\n this.jsonObject = {};\r\n this.jsonObject.status = 'active';\r\n this.jsonObject.processID = this.programName;\r\n this.jsonObject.recurrent = this.model.repeatExecution;\r\n this.jsonObject.executionParameter = {};\r\n\r\n if (this.model.executionType === 1) {\r\n const date = new Date();\r\n this.jsonObject.firstExecution = `${date.getFullYear()}-${(date.getMonth() + 1)}-${date.getDate()}T${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:00.000Z`;\r\n }\r\n if (this.model.executionType === 2) {\r\n this.jsonObject.firstExecution = `${this.model.execAppointDate}T${this.model.execAppointHour}:00.000Z`;\r\n }\r\n\r\n this.jsonObject.executionParameter.parametros = [];\r\n\r\n this.jsonObject.executionParameter.parametros[0] = { chave: 'rpwServer', valor: this.model.executionServer };\r\n this.jsonObject.executionParameter.parametros[1] = { chave: 'RPW_PROGRAM', valor: this.externalName };\r\n this.jsonObject.executionParameter.parametros[2] = { chave: 'RPW_PRG_EMS5', valor: this.programEMS5 ? 'yes' : 'no' };\r\n this.jsonObject.executionParameter.parametros[3] = { chave: 'RPW_PRG_ESTILO', valor: this.programStyle };\r\n this.jsonObject.executionParameter.parametros[4] = { chave: 'RPW_PRG_VERS', valor: this.programVersion };\r\n\r\n idxParam = 4;\r\n\r\n if (this.parameters && this.parameters.length > 0) {\r\n idxParam++;\r\n this.jsonObject.executionParameter.parametros[idxParam] = {};\r\n this.jsonObject.executionParameter.parametros[idxParam].parametros_negocio = this.parameters;\r\n }\r\n\r\n if (this.paramDigitDef && this.paramDigitDef.length > 0) {\r\n idxParam++;\r\n this.jsonObject.executionParameter.parametros[idxParam] = {};\r\n this.jsonObject.executionParameter.parametros[idxParam].param_digita_def = this.paramDigitDef;\r\n }\r\n\r\n if (this.paramDigitData && this.paramDigitData.length > 0) {\r\n idxParam++;\r\n this.jsonObject.executionParameter.parametros[idxParam] = {};\r\n this.jsonObject.executionParameter.parametros[idxParam].param_digita_dados = this.paramDigitData;\r\n }\r\n\r\n if (this.paramSelections && this.paramSelections.length > 0) {\r\n idxParam++;\r\n this.jsonObject.executionParameter.parametros[idxParam] = {};\r\n this.jsonObject.executionParameter.parametros[idxParam].selecoes = this.paramSelections;\r\n }\r\n }\r\n\r\n verifyRepeatExecution() {\r\n if (!this.model.repeatExecution) {\r\n this.poNotification.success('Agendamento realizado com sucesso !');\r\n this.endExecution.emit(this.model);\r\n return;\r\n }\r\n\r\n this.createRepeatExecutionParameters();\r\n\r\n // Executa a diária, semanal ou mensal\r\n this.rpwService.createExecution(this.jsonObject, this.loading).subscribe({\r\n next: (response: object) => {\r\n this.finishSchedule(false, true, response);\r\n },\r\n error: () => {\r\n this.finishSchedule(false, false, null);\r\n }\r\n });\r\n }\r\n\r\n createRepeatExecutionParameters(): void {\r\n if (this.model.repeatType === 1) {\r\n this.jsonObject.daily = {\r\n hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),\r\n minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm')\r\n };\r\n }\r\n\r\n if (this.model.repeatType === 2) {\r\n this.jsonObject.weekly = {\r\n hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),\r\n minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm'),\r\n daysOfWeek: this.model.selectWeeklys\r\n };\r\n }\r\n\r\n if (this.model.repeatType === 3) {\r\n this.jsonObject.monthly = {\r\n hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),\r\n minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm'),\r\n day: this.model.dayOfMonth\r\n };\r\n }\r\n\r\n if (this.isFrenquency()) {\r\n this.jsonObject.rangeExecutions = {\r\n frequency: {\r\n type: this.model.frequencyType,\r\n value: this.model.frequencyValue\r\n },\r\n rangeLimit: {\r\n hour: this.getHourOrMinute(this.model.execAppointHourFinal, 'h'),\r\n minute: this.getHourOrMinute(this.model.execAppointHourFinal, 'm')\r\n }\r\n };\r\n }\r\n }\r\n\r\n finishSchedule(firstSchedure: boolean, isOK: boolean, response: object) {\r\n if (!isOK) {\r\n this.endExecution.emit(this.model);\r\n return;\r\n }\r\n\r\n if (!response['jobScheduleID']) {\r\n if (firstSchedure) {\r\n this.verifyRepeatExecution();\r\n } else {\r\n this.poNotification.success('Agendamento realizado com sucesso !');\r\n this.endExecution.emit(this.model);\r\n }\r\n return;\r\n }\r\n\r\n this.rpwService.getExecutionByJobScheduleID(response['jobScheduleID'], this.loading).subscribe({\r\n next: (response: IExecutionStatus) => {\r\n if (response) {\r\n this.model.listExecutionID.push(response.executionID);\r\n }\r\n if (firstSchedure) {\r\n this.verifyRepeatExecution();\r\n } else {\r\n this.poNotification.success('Agendamento realizado com sucesso !');\r\n this.endExecution.emit(this.model);\r\n }\r\n },\r\n error: () => {\r\n if (firstSchedure) {\r\n this.verifyRepeatExecution();\r\n }\r\n }\r\n });\r\n }\r\n\r\n getHourOrMinute(value: string, type: string): number {\r\n if (type === 'h') { return +value.substring(0, 2); }\r\n if (type === 'm') { return +value.substring(3, 6); }\r\n }\r\n\r\n compareHour(hourInit: string, hourFinal: string): boolean {\r\n if (hourInit === hourFinal) { return false; }\r\n if (this.getHourOrMinute(hourInit, 'h') < this.getHourOrMinute(hourFinal, 'h')) { return true; }\r\n if (this.getHourOrMinute(hourInit, 'm') > this.getHourOrMinute(hourFinal, 'm')) { return false; }\r\n return true;\r\n }\r\n\r\n validate(): boolean {\r\n\r\n if (!this.scheduleExecutionForm.valid) {\r\n this.poNotification.error('Verifique as inconsistências em tela.');\r\n return false;\r\n }\r\n\r\n if (!this.model.executionServer) {\r\n this.poNotification.error('Servidor de Execução não foi informado.');\r\n return false;\r\n }\r\n\r\n if (this.isExecutionSchedule() && (!this.model.execAppointDate || !this.model.execAppointHour)) {\r\n this.poNotification.error('Informar a data e a hora para agendamento da execução.');\r\n return false;\r\n }\r\n\r\n if (this.model.repeatExecution) {\r\n if (!this.model.execAppointHourInit) {\r\n this.poNotification.error('Informar a hora de início para a execução.');\r\n return false;\r\n }\r\n\r\n if (this.model.repeatType === 2 && (this.model.selectWeeklys.length === 0)) {\r\n this.poNotification.error('Informar os dias da semana para a execução.');\r\n return false;\r\n }\r\n\r\n if (this.model.repeatType === 3 && (!this.model.dayOfMonth)) {\r\n this.poNotification.error('Informar o dia para a execução.');\r\n return false;\r\n }\r\n\r\n if (this.isFrenquency()) {\r\n if (!this.compareHour(this.model.execAppointHourInit, this.model.execAppointHourFinal)) {\r\n this.poNotification.error('Hora Fim deve ser maior que Hora Início.');\r\n return false;\r\n }\r\n\r\n if (this.model.frequencyValue === 0) {\r\n this.poNotification.error('Informar a frequência de execução (A cada hora/minuto).');\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","<form #scheduleExecutionForm=\"ngForm\">\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-radio-group\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionType\"\r\n p-label=\"Data de Execução\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionType\"\r\n [p-options]=\"executionTypeOptions\"\r\n (p-change)=\"changeExecutionType()\">\r\n </po-radio-group>\r\n\r\n @if (isExecutionSchedule()) {\r\n <po-datepicker\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"model.execAppointDate\"\r\n p-label=\"Agendar para\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointDate\">\r\n </po-datepicker>\r\n }\r\n\r\n @if (isExecutionSchedule()) {\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHour\"\r\n p-label=\"Hora\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHour\">\r\n </po-input>\r\n }\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-lookup\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionServer\"\r\n p-label=\"Servidor de Execução\"\r\n p-placeholder=\"Servidor de Execução\"\r\n [p-columns]=\"zoomRpwServiceColumns\"\r\n [p-field-format]=\"fieldRpwServiceFormat\"\r\n [p-filter-service]=\"rpwService\"\r\n p-field-label=\"name\"\r\n p-field-value=\"code\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionServer\">\r\n </po-lookup>\r\n </div>\r\n\r\n @if (!hideRepeatExecution) {\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-switch\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"repeatExecution\"\r\n p-label=\"Repetir ocorrência ?\"\r\n p-label-off=\"Não\"\r\n p-label-on=\"Sim\"\r\n [(ngModel)]=\"model.repeatExecution\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"changeRepeatExecution()\">\r\n </po-switch>\r\n </div>\r\n }\r\n\r\n @if (isRepeatExecution()) {\r\n <div class=\"po-row\">\r\n <po-tabs>\r\n <po-tab\r\n p-label=\"Diária\"\r\n [p-active]=\"getActiveTab(1)\"\r\n (p-click)=\"setActiveTab(1)\">\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyDaily\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitDaily\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n @if (isFrenquency()) {\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalDaily\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueDaily\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeDaily\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n }\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab\r\n p-label=\"Semanal\"\r\n [p-active]=\"getActiveTab(2)\"\r\n (p-click)=\"setActiveTab(2)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-multiselect\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"selectWeeklys\"\r\n p-label=\"Dias da Semana\"\r\n p-placeholder=\"Escolha os dias da semana\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.selectWeeklys\"\r\n [p-options]=\"weeklyOptions\">\r\n </po-multiselect>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyWeekly\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitWeekly\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n \r\n @if (isFrenquency()) {\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n }\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab\r\n p-label=\"Mensal\"\r\n [p-active]=\"getActiveTab(3)\"\r\n (p-click)=\"setActiveTab(3)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-number\r\n class=\"po-sm-3 po-md-3 po-lg-3 po-xl-3\"\r\n name=\"dayOfMonth\"\r\n p-label=\"Dia do mês\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"2\"\r\n p-min=\"0\"\r\n p-max=\"31\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.dayOfMonth\">\r\n </po-number>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyMonthly\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitMonthly\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n @if (isFrenquency()) {\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n }\r\n </div>\r\n </po-tab>\r\n </po-tabs>\r\n </div>\r\n }\r\n\r\n <div class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\" style=\"padding-top: 15px;\">\r\n <po-button\r\n style=\"float: right;\"\r\n p-label=\"Gerar Agendamento RPW\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"executeSchedule()\">\r\n </po-button>\r\n </div>\r\n</form>\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, Output, QueryList, Renderer2, SimpleChanges, ViewChildren } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-totvs-map',\r\n templateUrl: './totvs-map.component.html',\r\n styleUrls: ['./totvs-map.component.css'],\r\n standalone: false\r\n})\r\nexport class TotvsMapComponent implements AfterViewInit, OnChanges {\r\n literals: any = {};\r\n\r\n @ViewChildren(\"anchorStateElement\") mapLinks: QueryList<ElementRef>;\r\n\r\n @Input({ required: false }) enabledStates!: string[];\r\n @Input({ required: false }) initialSelectedState!: string;\r\n @Output() selectedStateEvent = new EventEmitter<string>();\r\n\r\n constructor(\r\n private renderer: Renderer2\r\n ) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.initStyleOnState();\r\n }\r\n\r\n ngOnChanges(simpleChanges: SimpleChanges) {\r\n this.initStyleOnState();\r\n }\r\n\r\n enableState(parentElement: HTMLElement, stateElement: Element): void {\r\n for (let i = 0; i < parentElement.children.length - 1; i++) {\r\n this.renderer.removeClass(parentElement.children[i], \"disabledState\");\r\n this.renderer.removeClass(parentElement.children[i], \"disableEvents\");\r\n }\r\n this.renderer.removeClass(stateElement, \"disableEvents\");\r\n }\r\n\r\n disableState(parentElement: HTMLElement, stateElement: Element): void {\r\n this.removeClassStyles(parentElement, \"defaultState\");\r\n for (let i = 0; i < parentElement.children.length - 1; i++) {\r\n this.renderer.addClass(parentElement.children[i], \"disabledState\");\r\n this.renderer.addClass(parentElement.children[i], \"disableEvents\");\r\n }\r\n this.renderer.addClass(stateElement, \"disableEvents\");\r\n }\r\n\r\n removeClassStyles(anchorElement: HTMLElement, className: string) {\r\n for (let i = 0; i < anchorElement.children.length; i++) {\r\n this.renderer.removeClass(anchorElement.children[i], className);\r\n this.renderer.removeClass(anchorElement.children[i], className + 'Circle');\r\n }\r\n }\r\n\r\n applyStyleOnState(anchorElement: HTMLElement, originalStyles: boolean): void {\r\n const stateStyle: string = originalStyles ? \"defaultState\" : \"selectedState\";\r\n\r\n if (originalStyles) {\r\n this.removeClassStyles(anchorElement, 'selectedState');\r\n } else {\r\n this.removeClassStyles(anchorElement, 'defaultState');\r\n }\r\n\r\n this.renderer.addClass(anchorElement.children[0], stateStyle)\r\n if (anchorElement.children.length > 2) { // Estados pequenos com o círculo\r\n this.renderer.addClass(anchorElement.children[1], stateStyle + 'Circle');\r\n }\r\n\r\n this.renderer.addClass(anchorElement, 'stateWithText');\r\n this.renderer.addClass(anchorElement.children[anchorElement.children.length - 1], 'text')\r\n }\r\n\r\n initStyleOnState(): void {\r\n this.mapLinks?.forEach((anchor: ElementRef) => {\r\n const anchorElement: HTMLElement = anchor.nativeElement;\r\n const stateElement: Element = anchorElement.children[anchorElement.children.length - 1];\r\n\r\n if (this.enabledStates && !this.enabledStates.includes(stateElement.innerHTML)) {\r\n this.disableState(anchorElement, stateElement);\r\n } else {\r\n this.enableState(anchorElement, stateElement);\r\n }\r\n\r\n this.applyStyleOnState(anchor.nativeElement, true);\r\n });\r\n\r\n this.selectedState(this.initialSelectedState);\r\n }\r\n\r\n selectedState(state: string): void {\r\n if (!state) { return; }\r\n if (!this.mapLinks) { return; }\r\n\r\n this.mapLinks?.forEach((anchor: ElementRef) => {\r\n const anchorElement: HTMLElement = anchor.nativeElement;\r\n const stateElement: Element = anchorElement.children[anchorElement.children.length - 1];\r\n this.applyStyleOnState(anchorElement, stateElement.innerHTML !== state);\r\n });\r\n this.selectedStateEvent.emit(state);\r\n }\r\n}\r\n","<div>\r\n <svg version=\"1.1\" id=\"svg-map\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"450px\" height=\"460px\" viewBox=\"0 0 450 460\" enable-background=\"new 0 0 450 460\" xml:space=\"preserve\">\r\n <g>\r\n <a #anchorStateElement (click)=\"selectedState('TO')\">\r\n <path id=\"teste\" stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M289.558,235.641\r\n c16.104,0.575,44.973-31.647,44.835-45.259c-0.136-13.612-17.227-58.446-22.349-66.088c-5.122-7.628-37.905,2.506-37.905,2.506\r\n S234.852,233.695,289.558,235.641z\"></path>\r\n <text transform=\"matrix(1 0 0 1 287.0137 188.3208)\" fill=\"#FFFFFF\">TO</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('BA')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M313.276,197.775\r\n c2.084-2.739,3.506-7.012,6.464-8.764c1.641-0.973,3.232-4.684,4.271-5.163c2.304-1.014,12.161-25.143,20.706-22.513\r\n c1.095,0.342,29.881,3.478,32.153,7.532c2.246-0.506,17.582-8.804,25.829-4.999c9.172,4.246,11.225,20.679,11.2,20.843\r\n c0.107,0.328-0.823,5.765-0.985,5.929c-1.15,1-5.258-0.807-4.22,2.138c1.317,3.751,5.094,10.583,9.97,6.613\r\n c-3.669,6.574-6.846,16.022-13.966,17.747c-5.808,1.411-4.605,13.421-5.178,18.037c-0.465,3.75,0.192,8.448,1.014,12.117\r\n c1.148,4.959-0.821,8.6-1.808,13.42c-0.822,4.162-0.219,8.299-0.987,12.297c-0.271,1.286-4.407,5.723-5.559,7.148\r\n c-1.616-1.426-63.952-37.248-73.1-36.265c1.149-3.738,2.438-9.559-0.741-12.723c-8.625-8.572-0.135-19.335-0.162-19.432\r\n c-0.546-1.725-5.396-6.079-0.026-7.175c-3.175,0.959-1.944-4.027,0.875-3.012C316.726,200.733,314.044,200.527,313.276,197.775z\"></path>\r\n <text transform=\"matrix(1 0 0 1 359.7324 210.1221)\" fill=\"#FFFFFF\">BA</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('SE')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M408.561,191.735\r\n c0.521-1.505,2.465-0.725,3.533-0.794c2.273-0.164,0.494-2.738,1.095-3.778c2.026-3.793-2.738-5.999-1.998-10.408\r\n c4.024,1.931,9.448,3.397,12.408,6.89c1.343,1.533,5.504,2.656,5.832,4.847c-6.822,0.384-6.901,8.819-11.942,11.572\r\n C413.545,202.212,407.055,193.721,408.561,191.735z\"></path>\r\n <path class=\"circle\" d=\"M417.324,182.854c6.214,0,11.266,5.035,11.266,11.262c0,6.208-5.052,11.261-11.266,11.261\r\n c-6.238,0-11.258-5.053-11.258-11.261C406.063,187.89,411.084,182.854,417.324,182.854z\"></path>\r\n <text transform=\"matrix(1 0 0 1 408.9121 198.6689)\" fill=\"#FFFFFF\">SE</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PE')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M373.011,167.238\r\n c2.709-0.795,6.218-14.106,8.325-15.106c4.136-1.986,17.255-1.437,17.8,4.903c-0.437-0.068,8.189-2.273,7.479-1.466\r\n c1.7-0.711,10.518-4.723,12.599-4.82c0.274-0.013,4.603,0.905,3.068,2.315c-0.464,0.439,4.219,3.698,10.789,3.45\r\n c4.66-0.176,5.179-3.436,8.627-4.409c5.89-1.67,4.737,3.698,5.589,6.943c-1.182,2.684-1.646,5.586-2.74,8.285\r\n c-1.533,3.792-9.804,9.791-13.39,12.119c-7.287,4.778-21.802-4.067-22.762-5.67c-0.602-0.985-2.55-5.121-3.178-5.107\r\n c-0.629,0.356-1.04,0.861-1.287,1.519c-0.904-0.013-7.256-3.533-7.502-4.655c-4.769-1.151-5.425,6.108-8.957,6.19\r\n c0.219,0.108-8.244,6.681-7.506,3.314C383.556,170.4,374.241,168.566,373.011,167.238z\"></path>\r\n <text transform=\"matrix(1 0 0 1 401.3984 165.8003)\" fill=\"#FFFFFF\">PE</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('AL')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M413.953,169.018\r\n c3.78,3.313,9.424,5.505,12.547,5.491c3.229-0.013,5.009-3.328,7.421-4.794c1.177-0.712,10.297-1.93,9.174,1.042\r\n c-1.807,4.848-7.122,8.585-10.024,12.789c-2.792,2-3.423,7.093-6.354,1.864c-3.259,0.424-3.722-4.424-6.957-4.477\r\n c-3.668-2.261-7.998-3.769-11.201-6.342C410.615,172.646,412.751,171.359,413.953,169.018z\"></path>\r\n <path class=\"circle\" d=\"M436.423,168.763c6.236,0,11.258,5.054,11.258,11.278c0,6.207-5.02,11.259-11.258,11.259\r\n c-6.241,0-11.263-5.052-11.263-11.259C425.16,173.816,430.182,168.763,436.423,168.763z\"></path>\r\n <text transform=\"matrix(1 0 0 1 429.7891 183.895)\" fill=\"#FFFFFF\">AL</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('RN')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M404.698,138.795\r\n c2.383-4.027,6.574-6.123,8.49-11.149c1.973-5.107,3.834-5.818,8.764-4.642c5.041,1.207,9.339,0.837,14.57,1.671\r\n c7.534,1.193,6.848,10.968,9.206,16.516c-1.919,1.096-13.972,0.521-15.064-1.657c-1.041-2.067-2.904,7.107-5.094,7.3\r\n c1.532-5.847-12.654,1.78-5.424-8.683c2.545-3.67-6.302-0.808-6.711,0.725C410.121,144.013,407.217,139.151,404.698,138.795z\"></path>\r\n <path class=\"circle\" d=\"M430.827,107.798c6.241,0,11.261,5.039,11.261,11.261c0,6.224-5.02,11.261-11.261,11.261\r\n c-6.209,0-11.26-5.037-11.26-11.261C419.567,112.837,424.618,107.798,430.827,107.798z\"></path>\r\n <text transform=\"matrix(1 0 0 1 422.541 123.9009)\" fill=\"#FFFFFF\">RN</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('CE')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M372.379,104.409\r\n c0.437-1.368,2.961-3.627,1.043-5.025c12.106-1.328,17.581-0.849,27.66,6.723c4.026,3.054,6.822,5.574,10.571,9.147\r\n c1.317,1.273,7.614,4.313,7.914,6.164c-0.054-0.316-5.396,3.696-5.997,5.217c-1.066,2.684-2.659,6.093-4.3,8.298\r\n c0.025-0.055-6.903,3.957-3.532,4.217c-4.41,3.821-1.015,8.135-0.797,11.517c0.196,2.767-4.38,7.587-6.765,5.422\r\n c-2.244-1.999-3.998-5.711-7.779-5.094c-1.998,0.329-5.476,2.189-7.612,0.479c-2.52-2.054,3.669-5.162-0.545-7.354\r\n c-6.987-3.615-1.264-15.393-6.684-20.239c-3.504-3.136,1.753-7.313,0.109-10.749C374.952,111.68,373.694,105.244,372.379,104.409\r\n C373.035,102.314,374.815,105.971,372.379,104.409z\"></path>\r\n <text transform=\"matrix(1 0 0 1 386.8379 129.0347)\" fill=\"#FFFFFF\">CE</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PI')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M320.781,185.478\r\n c2.465-5.149-7.505-20.801-7.505-20.801s47.354-65.868,54.285-66.841c0.299-0.042,6.243,1.768,6.463,2.219\r\n c0.438,0.863-0.821,5.244-0.685,6.587c0.275,2.629,2.879,6.587,2.328,8.684c-1.15,4.736-1.863,6.134,1.369,9.901\r\n c2.794,3.245,0.325,10.16,2.544,14.269c-1.778,4.23,4.768,3.656,3.943,7.613c-0.655,3.163-5.424,7.655-1.176,10.312\r\n c0.274,4.642-4.685,4.983-6.79,7.818c-2.631,2.835-5.535,5.013-7.999,7.888c-0.55,0.671-8.821,4.096-9.998,4.082\r\n c0.302-0.301-17.665-6.449-11.967,2.354c2.463,3.808-1.505,5.56-3.177,8.778c-0.633,2.164-5.836,0.958-7.836,3.205\r\n C328.176,198.748,327.409,180.727,320.781,185.478z\"></path>\r\n <text transform=\"matrix(1 0 0 1 355.127 158.1045)\" fill=\"#FFFFFF\">PI</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('MA')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M288.845,127.827\r\n c4.108-2.726,31.195-48.985,31.386-50.395c1.235,0.397,6.084,7.435,7.562,5.025c0.493,0.013-0.328,2.15-0.547,2.396\r\n c-0.054-0.135,2.189-2.286,2.52-2.436c0.521-0.233,1.948,1.903,3.451-0.726c5.642,1.575,1.314,14.31,9.121,11.694\r\n c-1.147,0.384,1.452,0.74,0.848,1.905c5.095-6.587,8.488-0.027,15.337,1.491c2.025,0.466,6.243,0.575,8.162,0.207\r\n c3.808-0.823-2.082,6.847-2.082,6.887c-1.369,2.986-5.041,1.713-6.818,5.683c-0.684,1.549-3.506,4.327-3.042,6.148\r\n c0.494,1.781,2.081,2.863,0.274,4.629c0.603,2.793,3.066,7.109-0.385,9.12c-4.601,4.383,2.304,7.52,1.316,11.598\r\n c-0.9,3.726-6.244,5.725-9.147,2.78c-4.847-0.11-6.872,3.821-10.406,6.45c-2.74,2.041-8.793,2.493-10.327,5.642\r\n c-1.918,3.929-3.699,8.763-5.341,12.79c-1.699,4.204,6.383,18.762-4.328,15.611c-0.932-0.273-3.396-4.725-3.396-5.738\r\n c-0.081-3.739-2.738-4.176-4.821-7.477c0.356-3.025,2.466-6.929,4.766-8.052c3.342-1.63,1.919-6.629-2.466-4.465\r\n c-3.505,1.726-4.709-2.794-6.958-5.287c0.548,0.59-3.064-4.696-3.146-3.697c0.19-1.89,2.876-5.833,3.341-8.448\r\n c0.575-3.259,0.52-6.764-0.521-10.105c-0.63-2.068-4.656-4.521-6.518-4.437c-1.289,0.287-2.443,0-3.427-0.878\r\n C290.983,125.675,290.983,128.044,288.845,127.827z\"></path>\r\n <text transform=\"matrix(1 0 0 1 318.2754 126.7036)\" fill=\"#FFFFFF\">MA</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('AP')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M225.198,39.089\r\n c3.274,1.165,3.985-1.315,6.572-1.74c3.616-0.603,5.683,2.725,9.037,2.067c4.055-0.78,7.093-8.025,7.314-11.598\r\n c4.492-3.534,5.503-11.258,9.42-14.68c6.055,4.258,6.11,15.788,7.589,22.485c-0.164,0.083,6.57,7.998,7.944,8.682\r\n c3.396,1.657,3.366,6.203,0.078,9.34c-3.777,3.587-7.449,34.275-7.449,34.275h-46.489c0,0,0.932-50.366,0-51.449\r\n C221.814,36.458,223.334,38.417,225.198,39.089z\"></path>\r\n <text transform=\"matrix(1 0 0 1 245.9023 52.6099)\" fill=\"#FFFFFF\">AP</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PA')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M173.378,50.619\r\n c2.259,2.63,5.629-4.478,7.901-3.82c3.19,0.918,1.478-1.108,5.026-1.752c1.931,0.806,3.096,0.273,3.519-1.631\r\n c0.535-1.26,1.453-1.726,2.725-1.384c1.768-1.684,13.558,3.603,14.68,0.384c0.629-1.821-4.287-5.709-0.302-6.997\r\n c1.643-0.533,6.012,0.808,8.75-0.068c3.986-1.288,4.876,2.684,4.382,6.066c0.631,3.587,13.145,5.766,12.982,7.97\r\n c3.589-1.518,5.354,12.763,7.105,14.447c0.357,4.26,6.304,8.585,7.07,12.544c0.628,3.396,7.065,3.616,8.213,0.095\r\n c2.578-8.133,9.696-10.022,13.475-16.651c4.603-8.038,3.725,3.752,8.955,1.067c2.11,0.411,2.876,3.629,4.574,4.724\r\n c3.18,2.027,7.779,0.974,10.572,3.013c-4.192,4.382,8.188,3.752,9.231,3.875c4.682,0.575,8.104,2.383,11.855,3.629\r\n c-0.164-0.069,4.792,0.52,5.178,1.245c2.026,3.767-4.904,19.214-6.382,21.486c-1.121,1.713-2.932,4.985-3.727,6.834\r\n c-0.902,2.026-4.764,7.313-4.655,9.229c-1.888,0.972-2.248,4.835-5.012,4.328c-3.096,3.026-8.187,4.999-10.27,8.956\r\n c2.057,0.781,8.325,1.041,5.311,4.272c-0.821,0.877-1.094,5.533-1.615,6.833c-0.575,1.384-4.464,4.779-6.108,5.34\r\n c-4.107,1.426-2.736,4.135-4.271,7.655c-0.933,2.054-0.546,3.491,1.756,4.339c-0.083,2.835-0.988,5.575-2.385,7.998\r\n c-3.041,5.245-9.009,9.818-10.079,16.27c-3.261,3.408-87.066-1.22-87.464-2.644c-1.423-5.012,1.508-24.006-2.808-27.88\r\n c-0.19-2.082-29.893-6.299-30.714-8.081C150.016,140.479,173.173,58.561,173.378,50.619z M319.139,77.664\r\n C319.302,76.912,319.74,78.76,319.139,77.664z\"></path>\r\n <text transform=\"matrix(1 0 0 1 232.7725 122.5137)\" fill=\"#FFFFFF\">PA</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('RR')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M113.18,24.107\r\n c-0.972-2.753-7.861-5.889-6.999-8.984c0.068-0.232,13.229,6.053,12.79,2.808c0.398,1.329,1.219,1.889,2.439,1.685\r\n c1.889-1.301,7.148,4.204,8.216,1.889c0.438-0.959-1.657-3.753,0.74-3.848c1.026,0.438,1.534,0.164,1.52-0.822\r\n c0.835-1.752,3.575,0.219,4.793,0.083c0.767-1.056,10.625-3.026,9.037-5.094c1.37,0.438,4.574,0.808,4.63-1.547\r\n c4.546-2.054,1.15-4.409,2.644-6.354c2.177-2.82,9.791,0.809,7.327,5.738c-1.972,3.93,7.121,4.027,5.724,9.366\r\n c-0.452,1.686-2.479,2.724-3.423,3.971c-1.179,1.546-1.836,9.243-1.356,11.53c1.041,4.889,3.231,8.695,6.134,12.16\r\n c1.712,2.027,5.614,2.261,5.724,4.369c0.164,2.945,1.165,6.177,0.329,9.092c-1.547,5.424-36.618,30.471-36.618,30.471\r\n s-12.517-52.736-20.335-54.063C115.261,36.417,111.523,25.682,113.18,24.107z\"></path>\r\n <text transform=\"matrix(1 0 0 1 136.2939 42.3862)\" fill=\"#FFFFFF\">RR</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('AM')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M10.078,136.412\r\n c1.15-4.972,4.258-10.394,8.215-13.105c4.41-3.027,7.656-5.71,13.105-6.082c2.165-0.149,10.216-5.75,11.983-2.984\r\n c3.711,5.765,4.998-3.739,5.574-7.025c1.726-9.667,3.697-19.322,4.86-29.086c-0.342-1.356-2.013-6.231-2.833-7.163\r\n c-1.453-1.616-4.287-2.122-4.768-4.544c-0.272-1.452-0.574-7.258,1.109-8.121c3.494-1.768,6.547-0.042,9.737-0.89\r\n c-2.561-4.053,0.302-4.327-5.532-5.135c-3.438-0.466-3.971-2.466-2.738-6.368c1.053-3.3,15.898-1,19.088-1.396\r\n c-1.534,0.178-1.11-2.479-0.042-2.616c1.274-0.165,1.576,2.684,3.165,0.998c1.286-1.395,3.189-2.915,4.6-3.751\r\n c2.438-1.45,4.533,8.217,4.465,9.833c-0.041,0.78-0.137,2.438,1.177,2.246c3.012-0.466,4.219,2.849,7.273,4.231\r\n c3.778,1.713,3.929-1.355,7.023-2.068c4.301-0.985,0.711,3.396,2.383,3.793c1.589,0.385,3.806-4.969,4.821-5.572\r\n c0.93-0.533,3.725-0.753,4.846-1.602c3.013-2.245,1.933-1.686,3.492-1.206c3.478,1.041,2.233-8.367,6.491-7.066\r\n c1.822-0.466,3.643-2.34,5.533-2.423c1.041-0.043,6.066,2.287,6.544,3.147c0.589,1.465,0.316,2.795-0.793,3.986\r\n c1.575,1.425,2.698,3.149,3.355,5.162c0.904,2.862-1.286,6.807,0.588,9.299c-0.22,6.655,4.808,7.887-0.396,12.597\r\n c0.192-0.178,6.711,7.067,7.121,8.039c0.971-0.711,4.066,0.849,4.381,1.535c-1.658-3.629,0.547-17.09,6.628-10.915\r\n c7.203,7.327,5.491-3.615,9.148-8.627c2.834-3.875,14.597-3.136,14.077,3.246c-1.082,3.273,6.271,14.256,9.667,11.436\r\n c2.26,5.737,6.889,4.285,10.407,8.051c5.094,5.464,4.37,3.396,11.313,2.848c-2.259,3.602-3.425,4.808-5.272,8.86\r\n c-3.149,6.862-6.15,13.776-9.204,20.678c-2.437,5.505-14.843,23.471-11.105,28.442c4.806,6.395,9.339,30.183,11.324,29.934\r\n c-6.162-0.26-48.079-10.625-51.652-8.105c-1.453,1.013-53.626,10.503-55.9,10.819c-6.369,0.875-18.09-7.272-23.719-10.136\r\n c-8.601-4.381-16.61-8.981-26.088-11.05c-10.282-2.259-20.635-4.793-29.878-10.011C4.121,145.766,12.433,144.779,10.078,136.412z\"></path>\r\n <text transform=\"matrix(1 0 0 1 98.1406 119.0591)\" fill=\"#FFFFFF\">AM</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('AC')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.656,148.545\r\n c12.557,7.544,27.524,8.367,41.082,13.2c12.802,8.065,27.278,12.845,40.616,19.872c-2.834,1.205-7.587,4.382-9.983,6.395\r\n c-2.93,2.45-1.3,2.04-4.628,1.957c-2.93-0.069-3.957,4.615-7.203,5.259c-2.999,0.603-7.161-1.958-10.995-1.697\r\n c-1.905,0.136-11.969-0.056-12.64,0.603c0.313-3.642-0.385-7.299-0.165-10.941c0.096-1.439,1.998-6.533,1.245-7.451\r\n c-6.82,3.149-8.339,7.19-16.733,7.013c-2.136-0.042-2.562-2.492-3.081-4.001c-1.247-3.572-7.218-3.422-10.559-3.778\r\n c6.299-3.41-3.107-11.9-5.216-15.679c-0.52-0.918-3.588-4.655-3.629-5.957C1.642,150.174,6.612,151.968,3.656,148.545z\"></path>\r\n <text transform=\"matrix(1 0 0 1 47.7017 184.9355)\" fill=\"#FFFFFF\">AC</text>\r\n </a><a #anchorStateElement (click)=\"selectedState('RO')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M83.34,180.232\r\n c0.931-1.574,5.341-4.668,6.312-4.656c1.355-0.067,2.671,0.138,3.958,0.603c3.012,1.44,2.039-1.135,5.341-0.123\r\n c-1.274-2.287,3.793-2.943,2.86-0.315c3.068,0.247,2.725-4.683,6.668-5.12c4.438-0.508,5.054-0.646,7.122-4.534\r\n c0.135-0.246,2.628-5.519,2.752-5.025c2.191-6.491,14.585-0.878,15.638,3.355c0.397,1.615,1.834,3.137,3.642,4.369\r\n c1.246,0.862,6.327-3.999,6.134,1.314c-0.78,1.274,26.663,7.656,30.005,19.282c3.82,13.338-16.421,32.167-18.173,34.043\r\n c-4.464,1.191-2.039,1.726-6.6,0.15c-2.574-0.875-6.422,0.986-9.08,0.289c-2.409-0.645-3.041-3.957-5.86-4.683\r\n c-3.055-0.78-5.423-1.795-7.654-3.93c-4.041-3.876-8.983-2.645-14.475-3.808c-1.835-0.083-6.053-6.779-7.874-5.327\r\n c-1.821-0.438-5.381-9.094-3.397-11.204c0.124-1.67-0.26-3.204-1.163-4.627c-0.986-2.644,1.041-5.026,0.863-7.806\r\n c-0.384-6.081-1.028-1.986-3.382-1.903C94.336,180.686,85.957,181.671,83.34,180.232z\"></path>\r\n <text transform=\"matrix(1 0 0 1 118.1299 195.3193)\" fill=\"#FFFFFF\">RO</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('MT')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M142.237,173.962\r\n c4-0.316-1.888-6.452,5-5.738c7.914,0.808,16.295,0.328,24.279,0.218c1.629-0.013,8.902,1.288,7.395-1.833\r\n c-1.192-2.453,1.821-6.425,0.425-9.725c2.027-0.864,1.289-3.807,2.629-5.107c1.151-1.123,4.176,7.244,4.436,7.819\r\n c1.097,2.451,0.398,5.478,1.932,7.654c1.41,1.987,4.574,2.136,5.889,4.259c3.136,5.136,10.845,4.137,17.13,4.657\r\n c20.159,1.656,40.356,2.669,60.486,4.752c-3.48,7.763-3.999,14.912-5.122,22.552c-0.437,2.972,1.863,7.163-0.056,10.065\r\n c1.945,1.287,1.346,2.753,1.424,4.409c1.151,25.129-20.429,60.186-33.548,58.569c-10.914-1.369-45.3,0.058-46.928-3.396\r\n c-1.165-3.944-6.136-2.658-8.395-6.603c-2.301-4.051,0.684-6.299,0.737-10.242c-6.997,0.603-14.09-0.384-21.102-0.324\r\n c0.793-5.016-3.725-9.288-2.929-13.809c0.519-3.025,2.726-2.916,0.932-6.79c-1.206-2.589-0.261-4.247-0.699-6.382\r\n c-0.289-1.385-1.042-1.876-2.124-2.424c-2.931-1.493,1.246-2.48,2.056-3.644c1.726-2.465,3.299-11.394,6.545-11.612\r\n c1.219-1.999-1.781-3.643-1.465-5.56c-3.902-3.588,0.506-4.643,0.369-7.984c-0.151-3.627-9.654-3.944-12.256-3.751\r\n c-1.821,0.137-4.109,0.562-5.888-0.094c0.493-3.521-0.521-6.054-0.535-9.217c-0.014-2.286,1.288-5.177,0.835-7.45\r\n C143.581,176.618,141.937,174.714,142.237,173.962z\"></path>\r\n <text transform=\"matrix(1 0 0 1 200.0244 218.4175)\" fill=\"#FFFFFF\">MT</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('MS')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M183.198,294.536\r\n c2.136-4.464,3.177-9.394,5.312-13.61c1.712-3.344-4.067-7.587-2.423-9.807c0.027-0.026,2.738,3.641,3.917,3.725\r\n c3.204-1.534,4.807-2.272,6.984-5.228c2.615-3.59,10.832-3.014,14.051-0.305c1.259,1.041,3.068,2.107,4.668,2.574\r\n c3.163,0.934,5.889-3.013,8.559-0.873c3.724,2.982,4.626-1.862,7.86-3.509c1.945-1.012-1.768,8.465-2.244,7.781\r\n c2.463,0.959,4.285,0.901,6.82,0.959c3.504,0.081,1.805,1.205,2.436,3.339c0.466,1.564,28.948-5.997,29.416,0.578\r\n c0.302,3.837-0.987,61.813-0.987,61.813s-39.532,5.533-41.602,5.286c-3.889-0.492-3.587-3.231-8.063-0.933\r\n c-2.028,0.329-6.012,1.205-5.177-2.409c-2.013-4.354-0.111-14.625-4.849-17.088c-1.206-0.659-7.092-2.36-7.504-1.945\r\n c-1.699,1.777-3.739,1.562-6.121,1.121c-2.904,0.027-5.629-1.614-8.243-1.203c-4.178,0.656-0.603-2.986-1.645-3.535\r\n c0.932-2.847,1.411-9.912,0.453-11.856c-0.165-0.331-3.52-7.232-2.547-8.108C186.306,297.688,182.334,299.415,183.198,294.536z\"></path>\r\n <text transform=\"matrix(1 0 0 1 213.2939 306.7236)\" fill=\"#FFFFFF\">MS</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('GO')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M237.768,270.519\r\n c0.628-2.904,1.835-7.396,4.709-8.766c1.015-1.644,1.754-5.147,2.275-5.586c2.408-2.247,3.889-3.783,6.63-4.656\r\n c3.723-1.205,3.338-5.342,4.846-8.165c1.504-2.845,4.736-1.15,5.942-3.382c1.479-2.834,0.741-6.161,2.189-8.874\r\n c2.902-5.531,1.862-17.363,8.656-20.567c-4.878,7.641,3.698,4.971,7.201,9.449c2.273,1.738,2.164-1.822,2.71-3.055\r\n c1.618-3.533,2.878,2.247,4.52-1.533c0.413,0.37,4.136,5.765,3.427,5.601c-0.029-0.931,0.326-1.408,1.037-1.438\r\n c0.108,0.534,0.274,1.013,0.602,1.452c-0.602-0.261,9.697-0.095,8.82,1.534c0.36-0.657-0.602-3.11,0.221-3.438\r\n c1.039-0.411,3.971,1.368,6.351,0.438c1.045-0.397,7.889-2.807,7.671-3.683c0.767,0.905,1.262,2.67,2.85,1.286\r\n c-2.632,2.274-2.576,4.466,1.258,3.821c-1.861,1.438-2.846,4.341-2.382,6.547c0.357,1.643,3.752,5.973,3.478,6.751\r\n c-1.78,0.315,0.602,5.438-2.325,6.078c-3.181,0.701-3.973-5.53-4.3,0.688c-0.164,1.48-1.097,1.67-2.768,0.576\r\n c-3.288,0.327-0.549,2.19-1.121,3.888c-0.988,2.902,2.792,6.437-2.411,6.764c-3.586,0.219-2.682,1.341-2.682-2.739\r\n c-0.028-4.573-12.054-3.643-10.218,0.521c-4.901,6.355,12.05-0.326,9.668,6.355c-1.313,3.752,15.83,28.211,10.406,25.416\r\n c-1.944-0.986-50.804,10.271-49.982,12.105c-5.012-2.136-11.804-7.941-17.391-8.162c-0.438-2.189-3.618-1.284-5.095-1.533\r\n c-3.724-0.604,1.04-3.231,0.22-4.109c-1.89-1.916-4.382,1.756-3.588-3.012C239.602,274.627,237.055,273.038,237.768,270.519z\"></path>\r\n <text transform=\"matrix(1 0 0 1 266.9111 254.2139)\" fill=\"#FFFFFF\">GO</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PR')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M222.225,363.694\r\n c1.807-2.138,1.889-4.881,2.424-7.479c0.301-1.453,0.465-7.86,1.369-8.736c2.3-0.684,2.3-3.315,2.726-5.204\r\n c0.616-2.738,2.821-2.958,3.984-5.616c4.369-9.91,38.947-9.529,46.476-9.227c4.658,0.193,15.775,34.563,17.916,33.794\r\n c-1.728,2.19-5.754,8.929-8.41,8.984c-4.054,0.057-14.215,14.68-14.215,14.68s-37.329-12.05-40.287-11.285\r\n c-3.875-1.449-2.698-6.491-6.054-8.216C226.663,364.623,222.498,367.8,222.225,363.694z\"></path>\r\n <text transform=\"matrix(1 0 0 1 248.4453 356.1045)\" fill=\"#FFFFFF\">PR</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('SC')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M231.029,383.959\r\n c1.669-3.338-0.284-10.516,4.573-10.569c6.631-0.109,13.639,3.559,20.402,3.888c1.317,0.055,5.231,2.163,4.357-1.15\r\n c-1.095-4.164,3.945-1.863,5.67-3.179c2.274-1.724,8.187-4.106,11.311-1.367c1.423,1.809,20.05-5.395,13.284,3.946\r\n c-1.368,1.395,0.713,10.789,0.466,10.734c-3.449,4.438,1.726,11.666-5.096,15.334c-2.901,1.536-7.284,7.779-9.64,9.995\r\n C276.085,411.866,233.534,382.918,231.029,383.959z\"></path>\r\n <text transform=\"matrix(1 0 0 1 266.9111 387.7646)\" fill=\"#FFFFFF\">SC</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('RS')\"> \r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M191.236,416.881\r\n c0.52-2.684,7.38-8.409,9.477-10.351c0.37-0.359,8.599-10.08,9.174-8.329c-1.301-3.89,2.781-1.589,3.917-4.819\r\n c0.26-0.521,7.04-4.821,7.109-4.795c1.436-0.191,6.721-3.695,7.421-3.257c1.204-2.028,8.927-1.479,8.653-0.824\r\n c1.165-0.38,2.284-0.877,3.326-1.479c0.221-0.821,22.459,7.533,24.319,11.531c2.523,5.34,12.217,2.822,13.15,5.563\r\n c0.106,0.275-5.809,9.339-3.89,9.173c-0.985,0.08,3.204-2.875,3.834,0.409c-2.793,3.619-4.6,7.834-6.571,11.944\r\n c-3.696,7.614-8.872,12.765-15.886,17.42c-7.394,4.902-7.339,11.941-13.257,17.693c-8.091,7.942-10.159-0.574-4.08-5.752\r\n c3.806-3.231-22.527-19.746-25.578-22.732c-1.918-1.862-2.384,0.274-4.219,1.15c-2.547,1.205-1.917-2.822-3.588-4.273\r\n c-2.3-1.999-4.793-5.479-7.737-6.68c-3.478-1.367-5.615,5.145-9.052,0.821C189.168,418.854,190.332,418.032,191.236,416.881z\"></path>\r\n <text transform=\"matrix(1 0 0 1 231.0313 414.4658)\" fill=\"#FFFFFF\">RS</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('SP')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M239.3,330.554\r\n c3.26-4.356,9.56-5.039,11.531-10.792c1.369-3.942,3.889-8.818,6.135-13.036c1.561-2.957,7.749-7.121,10.517-8.65\r\n c0.383-0.196,32.974-6.138,42.234-1.701c20.265,9.724,26.017,33.879,27.854,33.304c4.408-1.425,5.34,3.778,2.106,4.49\r\n c-1.754,0.413-6.519,1.479-6.49,3.399c0.027,3.448,0.521,1.615-2.931,3.639c-2.189-1.42-3.34,4.111-4.763,3.426\r\n c-4.271-2.244-6.958,2.96-9.258,1.918c-4.271-1.918-16.98,13.092-19.638,15.336c0.245-0.218-1.148-1.479-1.587-2.685\r\n c-0.466-1.369-2.658,0.385-4.025,0.082c-0.986-0.192,1.751-4.079-2.303-4.52c-1.369-0.164-3.753,0.303-4.929,0.084\r\n c-2.903-0.547,0.108-2.41-0.439-3.862c-1.067-2.986-3.013-4.931-3.751-7.779c-0.52-1.945,0.165-7.531-3.615-7.395\r\n c-0.848-2.956-6.628-1.451-9.066-1.862c-0.162,0.163-8.846-2.684-10.079-2.684c-1.616-0.029-6.791-3.396-7.121-0.274\r\n C247.982,330.386,239.876,331.21,239.3,330.554z\"></path>\r\n <text transform=\"matrix(1 0 0 1 280.6816 327.3193)\" fill=\"#FFFFFF\">SP</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('MG')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M262.881,297.305\r\n c-1.696-5.094,15.531-19.882,18.844-13.421c5.531-7.367,15.886,1.588,19.773-3.944c0.988-1.367,3.015-1.453,3.725-2.957\r\n c0.326-0.711-0.493-2.793-0.056-3.888c1.369-3.398-4.873-2.355-0.109-6.603c4.547-4.053-1.917-4.739-1.204-8.186\r\n c0.957-4.604,1.807-4.713,5.613-6.027c1.943-0.688,0.906-8.272,0.083-8.52c-0.108-2.699,1.974-2.546,3.782-1.617\r\n c2.188-0.135-0.276-3.695,0.957-4.243c-0.357,0.151,5.559,1.999,5.724,2.055c0.986,0.358-0.52,3.534-0.931,3.943\r\n c8.217-2.355,14.514-11.789,23.279-11.242c4.983,0.316-0.327,4.339,5.367,5.544c0.684,1.234,3.34-1.054,4.054-1.189\r\n c2.876-0.536,5.53,3.284,8.106,3.886c2.301,3.578,7.503,0.537,10.298,3.001c1.755,1.589,2.188,3.397,3.396,5.313\r\n c1.314,2.052,3.86-0.465,5.726-0.109c3.257,0.656,6.326,2.026,9.338,3.723c2.19,1.205,0.768,3.179-0.548,4.573\r\n c-0.765,0.796-3.259,6.165-2.627,5.643c-2.138,1.781-2.628-1.669-3.397,2.764c-0.628,3.674,0.164,4.714,3.149,7.015\r\n c4.901,3.229-6.765,3.12-6.71,3.504c0.22,0.601-2.846,41.96-3.835,42.179c-6.737,1.562-14.513,5.311-21.744,7.012\r\n c-12.736,2.985-24.295,3.778-29.471,4.656c0,1.452-5.367,6.872-8.518,1.259c0,0-3.041-7.285-2.821-7.229\r\n c0.105-0.027,2.138-5.506,2.244-6.137c0.768-3.504-5.042-0.765-5.749-2.188c-0.878-1.81-2.358-4.576-2.166-6.628\r\n c1.699-1.205,1.672-2.383-0.08-3.562c-1.04-1.095-1.205-2.303-0.521-3.672c-2.329-1.424-3.065-2.683-5.698-2.462\r\n c-1.479,0.138-4.055,3.668-5.506,0.629c0.878,2.108-4.188,0.769-5.094,1.56c-2.354-1.202-1.779,2.028-2.384,3.069\r\n c-0.137,0.22-1.014-2.904-1.065-2.961c-1.149-1.175-2.767,4.165-3.505-0.055c0.766-4.105-4.657-2.709-7.67-2.93\r\n c-4.708-0.353-5.53-1.613-9.858,0.631C262.993,300.562,262.336,299.274,262.881,297.305z\"></path>\r\n <text transform=\"matrix(1 0 0 1 328.4063 286.4561)\" fill=\"#FFFFFF\">MG</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('RJ')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M332.886,337.429\r\n c-1.26-2.768,8.409-4.795,7.89-6.71c-3.177-1.864-4.602,1.148-6.63-2.959c4.274-0.686,9.533-4.49,13.831-3.562\r\n c0.548-0.219,4.902-1.753,4.96,0.167c2.546-1.566,5.479-2.412,8.105-3.837c2.246-1.206,0.932-8.218,3.725-9.643\r\n c6.054-3.123,1.398,1.836,7.066,2.959c5.888,1.205,5.395,1.48,5.641,7.067c0.247,5.642-8.763,4.381-11.063,8.764\r\n c-1.039,1.999,1.698,5.368-3.368,4.903c-4.188-0.413-10.628,2.355-9.285-3.18c-1.039-0.08-1.861,0.301-2.464,1.124\r\n c0,0,0.105,2.767-0.74,2.741c-0.766-0.056-7.643,1.094-7.449,0.463c1.398-0.359,2.708-0.684,4.135-0.794\r\n c-1.667-0.713-2.957-1.839-4.901-0.142c0.465,0.195-4.227-0.086-3.379-0.113c-0.521,1.727-3.814,0.699-3.879,3.045\r\n C336.717,337.908,333.927,342.41,332.886,337.429z\"></path>\r\n <path class=\"circle\" d=\"M355.094,318.613c6.209,0,11.263,5.021,11.263,11.259c0,6.208-5.056,11.264-11.263,11.264\r\n c-6.211,0-11.263-5.054-11.263-11.264C343.831,323.634,348.883,318.613,355.094,318.613z\"></path>\r\n <text transform=\"matrix(1 0 0 1 347.4648 334.6807)\" fill=\"#FFFFFF\">RJ</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('ES')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M367.119,308.834\r\n c1.044-1.999-0.298-5.451,1.841-6.326c3.697-1.453,3.858-0.467,5.941-4.49c0.767-1.563,3.999-5.807,2.848-7.835\r\n c-0.439-0.765-3.204-3.613-3.286-4.05c1.04-0.249,2.079-0.219,3.123,0.054c1.366-0.654-6.465-10.519,2.137-8.054\r\n c-1.204-0.655-1.535-1.365-0.932-2.135c4.358-0.138,13.856,0.027,12.845,6.738c-0.577,3.835,0.933,8.079-0.577,11.804\r\n c-0.218,0.576-5.861,8.954-5.831,8.954c0.985,3.289-5.18,5.808-6.054,8.165c-1.313,3.56-2.135,3.013-5.614,2.573\r\n c-1.64-0.274-3.202-0.768-4.736-1.451C368.819,311.297,369.424,309.055,367.119,308.834z\"></path>\r\n <path class=\"circle\" d=\"M381.917,284.723c6.21,0,11.261,5.055,11.261,11.262c0,6.212-5.051,11.261-11.261,11.261\r\n c-6.212,0-11.263-5.049-11.263-11.261C370.654,289.777,375.705,284.723,381.917,284.723z\"></path>\r\n <text transform=\"matrix(1 0 0 1 373.3047 300.4971)\" fill=\"#FFFFFF\">ES</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('DF')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M292.461,246.197\r\n c0,0,12.929-2.903,14.188,0c1.233,2.903,0.659,10.683-1.424,11.504c-2.08,0.849-14.296-1.806-14.023-3.313\r\n C291.503,252.853,292.461,246.197,292.461,246.197z\"></path>\r\n <path class=\"circle\" d=\"M300.735,238.34c6.212,0,11.26,5.035,11.26,11.258c0,6.21-5.048,11.263-11.26,11.263\r\n c-6.209,0-11.261-5.053-11.261-11.263C289.475,243.377,294.523,238.34,300.735,238.34z\"></path>\r\n <text transform=\"matrix(1 0 0 1 292.4141 254.2139)\" fill=\"#FFFFFF\">DF</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PB')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M401.575,141.096\r\n c2.081-3.081,16.791-6.82,19.117-4.616c0,1.918,7.259,1.686,10.133,2.712c-0.492,3.038,12.652,1.533,14.408,2.259\r\n c1.421,0.589,3.833,11.983,1.421,12.202c-0.874-1.124-2.083-1.739-3.586-1.835c-2.957-0.027-2.546,1.863-4.383,3.108\r\n c-2.626,1.767-6.571,1.917-9.558,2.109c-0.162,1.232-3.943,4.438-5.259,4.916c-3.122,1.149-2.657-2.727-5.095-3.602\r\n c0.713-1.124,4.082-5.203,3.725-6.205c-1.423-3.846-12.051,5.52-14.981,3.506c-1.396-0.973-6.218,1.493-3.476-2.588\r\n C405.574,150.776,400.398,142.889,401.575,141.096z\"></path>\r\n <path class=\"circle\" d=\"M433.797,133.597c6.237,0,11.26,5.051,11.26,11.261c0,6.226-5.022,11.262-11.26,11.262\r\n c-6.208,0-11.257-5.036-11.257-11.262C422.54,138.647,427.589,133.597,433.797,133.597z\"></path>\r\n <text transform=\"matrix(1 0 0 1 425.2129 148.9893)\" fill=\"#FFFFFF\">PB</text>\r\n </a>\r\n </g>\r\n </svg>\r\n </div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dtsDateFormat',\r\n standalone: false\r\n})\r\n\r\nexport class DtsDateFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, format: string = 'dd/MM/yyyy'): any {\r\n const { 0: year, 1: month, 2: day } = value.split('-');\r\n\r\n const formattedDate = format.replace('dd', day)\r\n .replace('MM', month)\r\n .replace('yyyy', year);\r\n\r\n return formattedDate;\r\n }\r\n\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { TotvsScheduleExecutionComponent } from './components/totvs-schedule-execution/totvs-schedule-execution.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PoModule } from '@po-ui/ng-components';\r\nimport { CommonModule } from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { TotvsScheduleExecutionService } from './components/totvs-schedule-execution/totvs-schedule-execution.service';\r\nimport { TotvsMapComponent } from './components/totvs-map/totvs-map.component';\r\nimport { DtsDateFormatPipe } from './pipes/dts-date-format.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n TotvsScheduleExecutionComponent,\r\n TotvsMapComponent,\r\n DtsDateFormatPipe\r\n ],\r\n exports: [\r\n TotvsScheduleExecutionComponent,\r\n TotvsMapComponent,\r\n DtsDateFormatPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n PoModule,\r\n FormsModule\r\n ],\r\n providers: [\r\n TotvsScheduleExecutionService,\r\n provideHttpClient(withInterceptorsFromDi())\r\n ]\r\n})\r\n\r\nexport class DtsBackofficeUtilsModule {\r\n static forRoot(): ModuleWithProviders<DtsBackofficeUtilsModule> {\r\n return {\r\n ngModule: DtsBackofficeUtilsModule,\r\n providers: [TotvsScheduleExecutionService]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of dts-backoffice-util\r\n */\r\n\r\n// Services\r\nexport * from './lib/services/session-info.service';\r\nexport * from './lib/services/profile.service';\r\nexport * from './lib/services/report.service';\r\nexport * from './lib/services/breadcrumb-control.service';\r\nexport * from './lib/services/menu-datasul.service';\r\nexport * from './lib/services/cache-params.service';\r\nexport * from './lib/services/translate.service';\r\nexport * from './lib/services/validate.service';\r\n// Services\r\n\r\n// Utils\r\nexport * from './lib/utils/date.util';\r\nexport * from './lib/utils/disclaimer.util';\r\nexport * from './lib/utils/field-validation.util';\r\nexport * from './lib/utils/filter-range.util';\r\nexport * from './lib/utils/generic-functions.utils';\r\nexport * from './lib/utils/file.util';\r\n// Utils\r\n\r\n// Interfaces\r\nexport * from './lib/interfaces/totvs-response.interface';\r\nexport * from './lib/interfaces/filter-range.interface';\r\n// Interfaces\r\n\r\n// Schedule Execution\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.component';\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.model';\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.service';\r\n// Schedule Execution\r\n\r\n// Map\r\nexport * from './lib/components/totvs-map/totvs-map.component';\r\n// Map\r\n\r\n// Pipes\r\nexport * from './lib/pipes/dts-date-format.pipe';\r\n// Pipes\r\n\r\n// Utils Module\r\nexport * from './lib/dts-backoffice-util.module';\r\n// Utils Module\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","i1","i2.TotvsScheduleExecutionService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dts-backoffice-util.mjs","sources":["../../../projects/dts-backoffice-util/src/lib/services/session-info.service.ts","../../../projects/dts-backoffice-util/src/lib/services/profile.service.ts","../../../projects/dts-backoffice-util/src/lib/services/report.service.ts","../../../projects/dts-backoffice-util/src/lib/services/breadcrumb-control.service.ts","../../../projects/dts-backoffice-util/src/lib/services/menu-datasul.service.ts","../../../projects/dts-backoffice-util/src/lib/services/cache-params.service.ts","../../../projects/dts-backoffice-util/src/lib/services/translate.service.ts","../../../projects/dts-backoffice-util/src/lib/services/validate.service.ts","../../../projects/dts-backoffice-util/src/lib/utils/date.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/disclaimer.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/field-validation.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/filter-range.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/generic-functions.utils.ts","../../../projects/dts-backoffice-util/src/lib/utils/file.util.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.html","../../../projects/dts-backoffice-util/src/lib/components/totvs-map/totvs-map.component.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-map/totvs-map.component.html","../../../projects/dts-backoffice-util/src/lib/pipes/dts-date-format.pipe.ts","../../../projects/dts-backoffice-util/src/lib/dts-backoffice-util.module.ts","../../../projects/dts-backoffice-util/src/public-api.ts","../../../projects/dts-backoffice-util/src/dts-backoffice-util.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable, of } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserLoginService {\r\n constructor(public http: HttpClient) { }\r\n\r\n getUserLogin(): Observable<string> {\r\n if (sessionStorage.getItem('username')) {\r\n return of(sessionStorage.getItem('username'));\r\n }\r\n\r\n if (localStorage.getItem('username')) {\r\n return of(localStorage.getItem('username'));\r\n }\r\n\r\n return of(undefined);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport interface IProfile {\r\n pageId: string;\r\n dataCode: string;\r\n userCode: string;\r\n dataValue?: string;\r\n}\r\n\r\nexport interface IProfileResponse {\r\n message: Array<string>;\r\n length: number;\r\n data: Array<any>;\r\n}\r\n\r\nenum EDataType {\r\n STRING = 1,\r\n JSON = 2\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileService {\r\n\r\n readonly apiURL = '/dts/datasul-rest/resources/api/btb/btapi930za';\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n setProfile(profile: IProfile, showLoading = true): Observable<any> {\r\n const headers = { 'X-PO-Screen-Lock': showLoading ? 'true' : 'false' };\r\n const { pageId, userCode } = profile;\r\n\r\n return this.http\r\n .post<any>(`${this.apiURL}/setProfile?userCode=${userCode}&pageId=${pageId}`, profile, { headers });\r\n\r\n }\r\n\r\n getProfileAsString(profile: IProfile, showLoading = false): Observable<string> {\r\n return this.getProfile(profile, EDataType.STRING, showLoading);\r\n }\r\n\r\n getProfileAsJSON(profile: IProfile, showLoading = false): Observable<object> {\r\n return this.getProfile(profile, EDataType.JSON, showLoading);\r\n }\r\n\r\n private getProfile(profile: IProfile, dataType: EDataType, showLoading = false): Observable<any> {\r\n const headers = { 'X-PO-Screen-Lock': showLoading ? 'true' : 'false' };\r\n const { pageId, dataCode, userCode } = profile;\r\n\r\n return this.http\r\n .get<IProfileResponse>(`${this.apiURL}/getProfile?userCode=${userCode}&pageId=${pageId}&dataCode=${dataCode}`,\r\n { headers })\r\n .pipe(map(preference => {\r\n if (preference.data[0]) {\r\n if (dataType === EDataType.STRING) {\r\n return preference.data[0].dataValue;\r\n }\r\n\r\n if (dataType === EDataType.JSON) {\r\n return JSON.parse(preference.data[0].dataValue);\r\n }\r\n } else {\r\n return undefined;\r\n }\r\n }));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport interface IProperty {\r\n name: string;\r\n value: string;\r\n}\r\n\r\nexport interface IReportServiceParams {\r\n reportName: string; // Nome do rptDesign\r\n programName: string; // Programa Progress\r\n properties: Array<IProperty>;\r\n dialect: string;\r\n downloadName: string;\r\n download: boolean;\r\n format: ReportFormats;\r\n}\r\n\r\nexport enum ReportFormats {\r\n XLSX = 'xlsx',\r\n PDF = 'pdf',\r\n DOCX = 'docx',\r\n HTML = 'html'\r\n}\r\n\r\n@Injectable()\r\n\r\nexport class ReportService {\r\n public readonly URL = window.location.href.indexOf('totvs-menu') > 0 ? '/totvs-menu/rest/report/run/'\r\n : '/dts/datasul-report/resources/run/';\r\n\r\n constructor(public httpClient: HttpClient) { }\r\n\r\n generate(params: IReportServiceParams, showLoading: boolean = true): Observable<Blob> {\r\n const headers = { 'X-PO-Screen-Lock': showLoading ? 'true' : 'false' };\r\n\r\n let reportURL = `${this.URL}${params.reportName}`;\r\n\r\n if (params.properties.length > 0) {\r\n reportURL += '?';\r\n\r\n params.properties.forEach((property: IProperty, index: number) => {\r\n if (index > 0) {\r\n reportURL += '&';\r\n }\r\n reportURL += `c_properties=${property.name}&c_values=${property.value}`;\r\n });\r\n }\r\n\r\n reportURL += `&dialect=${params.dialect}&format=${params.format}`;\r\n reportURL += `&program=${params.programName}&resultFileName=${params.downloadName}`;\r\n\r\n return this.httpClient.post(reportURL, {}, { headers, responseType: 'blob' })\r\n .pipe(map(report => {\r\n if (params.download) {\r\n this.download(report, `${params.downloadName}.${params.format}`);\r\n }\r\n return report;\r\n }));\r\n }\r\n\r\n download(file: Blob, fileName: string) {\r\n const binaryData = [file];\r\n const downloadLink = document.createElement('a');\r\n const urlDownload = window.URL.createObjectURL(new Blob(binaryData, { type: file.type }));\r\n\r\n downloadLink.href = urlDownload;\r\n downloadLink.setAttribute('download', fileName);\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n window.URL.revokeObjectURL(urlDownload);\r\n downloadLink.remove();\r\n }\r\n}\r\n","/*\r\nVersão: 1.004\r\nData Criação: 06/08/2018\r\n*/\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { PoBreadcrumb } from '@po-ui/ng-components';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Injectable()\r\nexport class BreadcrumbControlService {\r\n breadcrumb: PoBreadcrumb;\r\n\r\n constructor() { }\r\n\r\n public newBreadcrumb(): void {\r\n this.breadcrumb = { items: [] };\r\n }\r\n\r\n public addBreadcrumb(literal: string, activatedRoute: ActivatedRoute): void {\r\n this.addBreadcrumbURL(literal, decodeURIComponent(activatedRoute.snapshot['_routerState'].url));\r\n }\r\n\r\n public addBreadcrumbURL(literal: string, url: string): void {\r\n if (!literal || literal === '') { return; }\r\n if (!this.breadcrumb) { this.newBreadcrumb(); }\r\n\r\n const breadcrumbAux = { items: [] };\r\n\r\n for (let idx = 0; idx < this.breadcrumb.items.length; idx++) {\r\n if (this.breadcrumb.items[idx].label !== literal) {\r\n breadcrumbAux.items.push(this.breadcrumb.items[idx]);\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n breadcrumbAux.items.push({ label: literal, link: url });\r\n\r\n this.breadcrumb = breadcrumbAux;\r\n }\r\n\r\n public updBreadcrumbURL(literal: string, valueOld: string, valueNew: string): void {\r\n let currentRouterURL = this.getCurrentRouter();\r\n\r\n if (!currentRouterURL) { return; }\r\n if (!valueOld) { return; }\r\n if (!valueNew) { return; }\r\n\r\n currentRouterURL = currentRouterURL.replace(valueOld, valueNew);\r\n this.addBreadcrumbURL(literal, currentRouterURL);\r\n }\r\n\r\n public delBreadcrumb(literal: string): void {\r\n if (!literal || literal === '') { return; }\r\n if (!this.breadcrumb || !this.breadcrumb.items) { return; }\r\n if (this.breadcrumb.items.length === 0) { return; }\r\n\r\n const breadcrumbAux = { items: [] };\r\n\r\n for (let idx = 0; idx < this.breadcrumb.items.length; idx++) {\r\n if (this.breadcrumb.items[idx].label !== literal) {\r\n breadcrumbAux.items.push(this.breadcrumb.items[idx]);\r\n }\r\n }\r\n\r\n this.breadcrumb = breadcrumbAux;\r\n }\r\n\r\n public getBreadcrumb(): PoBreadcrumb {\r\n if (!this.breadcrumb) { this.newBreadcrumb(); }\r\n return this.breadcrumb;\r\n }\r\n\r\n public getCurrentRouter(): string {\r\n if (!this.breadcrumb) { this.newBreadcrumb(); }\r\n if (this.breadcrumb.items.length <= 0) { return ''; }\r\n\r\n return this.breadcrumb.items[this.breadcrumb.items.length - 1].link;\r\n }\r\n\r\n public getPrevRouter(): string {\r\n if (!this.breadcrumb) { this.newBreadcrumb(); }\r\n if (this.breadcrumb.items.length <= 1) { return ''; }\r\n\r\n return this.breadcrumb.items[this.breadcrumb.items.length - 2].link;\r\n }\r\n\r\n public hasPreviousRouter(): boolean {\r\n return this.breadcrumb.items.length > 1;\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { forkJoin, map, Observable } from 'rxjs';\r\nimport { of } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class MenuDatasulService {\r\n\r\n private urlMenuPrograms = '/dts/datasul-rest/resources/prg/fwk/v1/menuPrograms/list';\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * var program = {};\r\n * program['prg'] = \"cd0210\";\r\n * program['params'] = '01|123456'\r\n */\r\n public callProgress(program) {\r\n parent.postMessage({ program }, '*');\r\n }\r\n\r\n /**\r\n * var notification = {};\r\n * notification['type'] = 'success';\r\n * notification['title'] = 'Notification Title'\r\n * notification['detail'] = 'Notification Detail'\r\n */\r\n public sendNotification(notification) {\r\n parent.postMessage({ notification }, '*');\r\n }\r\n\r\n public openPath(programName: string, params: any, parent = true): void {\r\n this.openHTMLProgram('THF2', programName, params, parent);\r\n }\r\n\r\n public openTHF(externalName: string, params: any, parent = true): void {\r\n this.openHTMLProgram('THF1', externalName, params, parent);\r\n }\r\n\r\n private openHTMLProgram(type: string, HTMLProgram: string, params: any, parent: boolean): void {\r\n const backendType = sessionStorage.getItem('totvs.product.backend.type');\r\n if (backendType === 'DSS') {\r\n this.openOnDSS(type, HTMLProgram, params, parent);\r\n } else {\r\n this.openOnDTS4THF(type, HTMLProgram, params, parent);\r\n }\r\n }\r\n\r\n private openOnDTS4THF(type: string, HTMLProgram: string, params: any, parent: boolean): void {\r\n const datasulPath = document.referrer.indexOf('totvs-menu') > 0 ? 'totvs-menu' : 'menu-html';\r\n\r\n HTMLProgram = HTMLProgram.replace(/\\\\/g, '/');\r\n if (HTMLProgram.charAt(0) === '/') { HTMLProgram = HTMLProgram.slice(1); }\r\n if (HTMLProgram.charAt(HTMLProgram.length - 1) === '/') { HTMLProgram = HTMLProgram.slice(0, -1); }\r\n\r\n let baseUrl = `/${datasulPath}/#/`;\r\n if (type === 'THF2') {\r\n baseUrl = `${baseUrl}${datasulPath}/program-html/${HTMLProgram}/`;\r\n } else {\r\n baseUrl = `${baseUrl}${HTMLProgram}`;\r\n }\r\n\r\n if (params) {\r\n if (baseUrl.charAt(baseUrl.length - 1) === '/') { baseUrl = baseUrl.slice(0, -1); }\r\n if (type === 'THF2') {\r\n baseUrl = `${baseUrl}/#`;\r\n }\r\n baseUrl = `${baseUrl}/${params}`;\r\n }\r\n\r\n this.openWindow(baseUrl, parent);\r\n }\r\n\r\n private openOnDSS(type: string, HTMLProgram: string, params: any, parent: boolean): void {\r\n let baseUrl = `${HTMLProgram}`;\r\n if (params) {\r\n baseUrl = `${baseUrl}/${params}`;\r\n }\r\n\r\n try {\r\n if (window.top && typeof (window.top as any).navigateSmartX === 'function') {\r\n (window.top as any).navigateSmartX(baseUrl);\r\n } else {\r\n // Se falhar e precisar do window.open, a barra na frente e o smart-x\r\n // são necessários para o navegador não emendar na URL atual do iframe\r\n this.openWindow(`/smart-x/${baseUrl}`, parent);\r\n }\r\n } catch (e) {\r\n this.openWindow(`/smart-x/${baseUrl}`, parent);\r\n }\r\n }\r\n\r\n private openWindow(baseUrl: string, parent: boolean): void {\r\n if (parent) {\r\n window.open(baseUrl, '_parent');\r\n } else {\r\n window.open(baseUrl);\r\n }\r\n }\r\n\r\n public programSecurity(programName: string | Array<string>): Observable<Object> {\r\n let programList = [];\r\n if (Array.isArray(programName)) {\r\n programList = programName;\r\n } else {\r\n if (programName && programName !== '') {\r\n programList.push(programName);\r\n }\r\n }\r\n\r\n if (!programList || programList.length === 0) {\r\n return of({\r\n code: 400,\r\n message: 'Não foi possível validar a Segurança dos Programas, lista vazia !',\r\n detailedMessage: 'A lista de programas indicados para validação de segurança é inválida ou está vazia.'\r\n });\r\n }\r\n\r\n const aRequest = [];\r\n programList.forEach(programSearch => {\r\n aRequest.push(this.http.post<Object>(this.urlMenuPrograms, this.getPayloadSearchProg(programSearch)));\r\n });\r\n\r\n return forkJoin(aRequest).pipe(\r\n map((response: Object) => {\r\n if (!response) { return response; }\r\n if (!Array.isArray(response)) { return response; }\r\n\r\n const responseReturn = new Array<Object>();\r\n\r\n for (let idx = 0; idx < programList.length; idx++) {\r\n const responseProg = response[idx];\r\n let hasAcess = false;\r\n\r\n if (responseProg && responseProg.programs &&\r\n Array.isArray(responseProg.programs) &&\r\n responseProg.programs.length > 0) {\r\n\r\n responseProg.programs.forEach(prog => {\r\n if (prog.prg === programList[idx]) {\r\n hasAcess = true;\r\n }\r\n });\r\n }\r\n\r\n responseReturn.push({\r\n programName: programList[idx],\r\n hasAccess: hasAcess\r\n });\r\n }\r\n\r\n return responseReturn;\r\n })\r\n );\r\n }\r\n\r\n private getPayloadSearchProg(programSearch: string): object {\r\n return { 'codModul': null, 'search': programSearch, 'typeProg': '4,3,1,2', 'groupAplicat': [] };\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CacheParamsService {\r\n\r\n values = {};\r\n\r\n constructor() { }\r\n\r\n public setValue(key: string, value: any) {\r\n this.values[key] = value;\r\n }\r\n\r\n public getValue(key: string): any {\r\n return this.values[key];\r\n }\r\n\r\n public removeValue(key: string): void {\r\n delete this.values[key];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class TranslateService {\r\n\r\n static getSuportLanguage() {\r\n return ['pt-BR', 'pt', 'en-US', 'en', 'es'];\r\n }\r\n\r\n static getDefaultCurrencyCode() {\r\n return '$';\r\n }\r\n\r\n static getCurrentLanguage() {\r\n const locale = localStorage.getItem('user.language') || navigator.language;\r\n\r\n if (locale && this.getSuportLanguage().includes(locale)) { return locale; }\r\n\r\n return 'en-US';\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { PoDynamicFormField, PoDynamicFormFieldChanged, PoDynamicFormValidation } from '@po-ui/ng-components';\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ValidateService {\r\n constructor(private http: HttpClient) { }\r\n\r\n async validate(url: string, value: PoDynamicFormFieldChanged) {\r\n return await lastValueFrom(this.http.post<PoDynamicFormValidation>(url, value));\r\n }\r\n\r\n updateFormFields(validation: PoDynamicFormValidation, fields: Array<PoDynamicFormField>) {\r\n let changedField: any;\r\n\r\n if(validation?.fields){\r\n validation.fields.forEach(validField => {\r\n changedField = fields.find(field => field.property === validField.property);\r\n if(changedField){\r\n Object.keys(validField).forEach(function(key) {\r\n if (key !== 'property'){\r\n changedField[key] = validField[key]\r\n }\r\n });\r\n }\r\n });\r\n }\r\n return fields;\r\n }\r\n\r\n updateFormValue(validation: PoDynamicFormValidation, value: any): any{\r\n if(validation?.value){\r\n Object.keys(validation.value).forEach(function(key) {\r\n value[key] = validation.value[key]\r\n });\r\n }\r\n return value;\r\n } \r\n}\r\n","/*\r\nVersão: 1.000\r\nData Criação: 18/04/2019\r\n*/\r\n\r\nexport class DateUtil {\r\n\r\n constructor(\r\n ) { }\r\n\r\n /* Transforma data para o padrão YYYY-MM-DD */\r\n static dateToQueryParam(date: Date): string {\r\n const iDay = date.getDate();\r\n const iMonth = date.getMonth() + 1;\r\n const iYear = date.getFullYear();\r\n\r\n return `${iYear}-${this.pad(iMonth)}-${this.pad(iDay)}`;\r\n }\r\n\r\n /* Transforma data no padrão YYYY-MM-DD para DATE */\r\n static queryParamToDate(param: string): Date {\r\n const iDay = +param.split('-')[2];\r\n const iMonth = +param.split('-')[1];\r\n const iYear = +param.split('-')[0];\r\n\r\n return new Date(iYear, iMonth - 1, iDay);\r\n }\r\n\r\n /* Valida se foi informado uma data válida */\r\n static isValidDate(date: Date) {\r\n return date instanceof Date && !isNaN(date.getTime());\r\n }\r\n\r\n /* Ajusta a data retornando o padrão DATE */\r\n static ajustDate(param: any): Date {\r\n if (param instanceof Date) { return param; }\r\n if (!param) { return param; }\r\n\r\n return this.queryParamToDate(param.split('T')[0]);\r\n }\r\n\r\n /* Ajusta a data para o padrão DATE - utilizada nos construtores dos modelos */\r\n static ajustDateToModel(values: Object = {}, fieldName: string): Date {\r\n if (values.hasOwnProperty(fieldName) && (values[fieldName])) {\r\n if (values[fieldName].indexOf('T') >= 0) {\r\n return new Date(values[fieldName]);\r\n }\r\n\r\n const iDay = +values[fieldName].split('-')[2];\r\n const iMonth = +values[fieldName].split('-')[1];\r\n const iYear = +values[fieldName].split('-')[0];\r\n return new Date(iYear, iMonth - 1, iDay);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /* Adicona zero a esquerda do número */\r\n static pad(number) {\r\n if (number < 10) {\r\n return '0' + number;\r\n }\r\n return number;\r\n }\r\n}\r\n","/*\r\nVersão: 1.009\r\nData Criação: 06/08/2018\r\n*/\r\n\r\nimport { PoDisclaimer, PoI18nPipe, PoCheckboxGroupOption, PoMultiselectOption, PoDatepickerRange } from '@po-ui/ng-components';\r\nimport { IFilterRangeCharacter, IFilterRangeNumber, IFilterRangeDate } from '../../lib/interfaces/filter-range.interface';\r\nimport { PoNotificationService } from '@po-ui/ng-components';\r\n\r\nexport class DisclaimerUtil {\r\n poNotification: PoNotificationService;\r\n poI18nPipe: PoI18nPipe;\r\n literals: any = {};\r\n\r\n constructor(\r\n poNotification: PoNotificationService,\r\n poI18nPipe: PoI18nPipe,\r\n literals: Object\r\n ) {\r\n this.poNotification = poNotification;\r\n this.poI18nPipe = poI18nPipe;\r\n this.literals = literals;\r\n }\r\n\r\n public makeDisclaimer(property: string, value: string, hideClose = false, tradValue = false, vldBlank = false): PoDisclaimer {\r\n if (value === null || value === undefined) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (vldBlank && value === '') {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${tradValue ? this.literals[value] : value}`,\r\n property: `${property}`,\r\n value: `${value}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromNumber(property: string, value: number, hideClose = false, vldBlank = false, options = new Array<any>()): PoDisclaimer {\r\n let opt = null;\r\n let label = '';\r\n\r\n if (value === null || value === undefined) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (vldBlank && value === 0) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n label = `${this.literals[property]}:`;\r\n\r\n if (options && options.length > 0) {\r\n opt = options.find(itOpt => itOpt.value === value);\r\n label = `${label} ${opt ? opt.label : value}`;\r\n } else {\r\n label = `${label} ${value}`;\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${label}`,\r\n property: `${property}`,\r\n value: `${value}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromBoolean(property: string, value: boolean, hideClose = false): PoDisclaimer {\r\n if (value === null || value === undefined) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${value ? this.literals['yes'] : this.literals['no']}`,\r\n property: `${property}`,\r\n value: `${value}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromDate(property: string, value: Date, hideClose = false): PoDisclaimer {\r\n const dDate: Date = this.ajustDate(value);\r\n\r\n if (!this.isValidDate(dDate)) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${dDate.toLocaleDateString()}`,\r\n property: `${property}`,\r\n value: `${this.dateToQueryParam(dDate)}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromMultiSelect(property: string, value: Array<any>, length = 0,\r\n hideClose = false, tradValue = false): PoDisclaimer {\r\n let lstLabels = '';\r\n let lstValues = '';\r\n\r\n if (!value) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (value.length === 0 || (length > 0 && value.length === length)) {\r\n lstLabels = this.literals['all'];\r\n lstValues = 'all';\r\n } else {\r\n value.map(item => {\r\n if (lstLabels !== '') { lstLabels = `${lstLabels}, `; }\r\n if (lstValues !== '') { lstValues = `${lstValues},`; }\r\n lstLabels = `${lstLabels}${tradValue ? this.literals[item] : item}`;\r\n lstValues = `${lstValues}${item}`;\r\n });\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${lstLabels}`,\r\n property: `${property}`,\r\n value: `${lstValues}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromMultiSelectNumber(property: string, value: Array<any>, options: Array<any>,\r\n length = 0, hideClose = false): PoDisclaimer {\r\n let lstLabels = '';\r\n let lstValues = '';\r\n let opt = null;\r\n\r\n if (!value || !options) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (value.length === 0 || (length > 0 && value.length === length)) {\r\n lstLabels = this.literals['all'];\r\n lstValues = 'all';\r\n } else {\r\n value.map(item => {\r\n if (lstLabels !== '') { lstLabels = `${lstLabels}, `; }\r\n if (lstValues !== '') { lstValues = `${lstValues},`; }\r\n\r\n opt = options.find(itOpt => itOpt.value === item);\r\n lstLabels = `${lstLabels}${opt ? opt.label : item}`;\r\n lstValues = `${lstValues}${item}`;\r\n });\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${lstLabels}`,\r\n property: `${property}`,\r\n value: `${lstValues}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromCheckboxGroup(property: string, value: Array<string>, length = 0, hideClose = false): PoDisclaimer {\r\n let lstLabels = '';\r\n let lstValues = '';\r\n\r\n if (!value) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n if (value.length === 0) {\r\n lstLabels = this.literals['none'];\r\n lstValues = 'none';\r\n } else if (length > 0 && value.length === length) {\r\n lstLabels = this.literals['all'];\r\n lstValues = 'all';\r\n } else {\r\n value.map(checkParam => {\r\n if (lstLabels !== '') { lstLabels = `${lstLabels}, `; }\r\n if (lstValues !== '') { lstValues = `${lstValues},`; }\r\n lstLabels = `${lstLabels}${this.literals[checkParam]}`;\r\n lstValues = `${lstValues}${checkParam}`;\r\n });\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${lstLabels}`,\r\n property: `${property}`,\r\n value: `${lstValues}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromRangeCharacter(property: string, value: IFilterRangeCharacter, hideClose = false,\r\n validateEqual = true): PoDisclaimer {\r\n if (value.valInitial === null || value.valInitial === undefined) { value.valInitial = value.iniInitial; }\r\n if (value.valFinal === null || value.valFinal === undefined) { value.valFinal = value.iniFinal; }\r\n\r\n if (validateEqual &&\r\n value.iniInitial === value.valInitial &&\r\n value.iniFinal === value.valFinal) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: this.poI18nPipe.transform(\r\n this.literals['filterRange'],\r\n [this.literals[property], `'${value.valInitial}'`, `'${value.valFinal}'`]),\r\n property: `${property}`,\r\n value: `${value.valInitial};${value.valFinal}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromRangeNumber(property: string, value: IFilterRangeNumber, hideClose = false,\r\n validateEqual = true): PoDisclaimer {\r\n if (value.valInitial === null || value.valInitial === undefined) { value.valInitial = value.iniInitial; }\r\n if (value.valFinal === null || value.valFinal === undefined) { value.valFinal = value.iniFinal; }\r\n\r\n if (validateEqual &&\r\n value.iniInitial === value.valInitial &&\r\n value.iniFinal === value.valFinal) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: this.poI18nPipe.transform(\r\n this.literals['filterRange'],\r\n [this.literals[property], value.valInitial, value.valFinal]),\r\n property: `${property}`,\r\n value: `${value.valInitial};${value.valFinal}`\r\n };\r\n }\r\n\r\n public makeDisclaimerFromDatepickerRange(property: string, value: PoDatepickerRange, hideClose = false): PoDisclaimer {\r\n if (!value) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n let filterRangeDate = {\r\n iniInitial: new Date(1900, 1, 1),\r\n valInitial: this.ajustDate(value.start),\r\n iniFinal: new Date(9999, 11, 31),\r\n valFinal: this.ajustDate(value.end)\r\n }\r\n\r\n return this.makeDisclaimerFromRangeDate(property, filterRangeDate, hideClose, true);\r\n }\r\n\r\n public makeDisclaimerFromRangeDate(property: string, value: IFilterRangeDate, hideClose = false, validateEqual = true): PoDisclaimer {\r\n let valInitDate: Date = this.ajustDate(value.valInitial);\r\n let valFinalDate: Date = this.ajustDate(value.valFinal);\r\n\r\n if (!this.isValidDate(valInitDate)) {\r\n valInitDate = value.iniInitial;\r\n value.valInitial = value.iniInitial;\r\n }\r\n if (!this.isValidDate(valFinalDate)) {\r\n valFinalDate = value.iniFinal;\r\n value.valFinal = value.iniFinal;\r\n }\r\n\r\n if (validateEqual &&\r\n this.dateToQueryParam(value.iniInitial) === this.dateToQueryParam(valInitDate) &&\r\n this.dateToQueryParam(value.iniFinal) === this.dateToQueryParam(valFinalDate)) {\r\n return { label: '', property: '', value: '' };\r\n }\r\n\r\n return {\r\n hideClose,\r\n label: this.poI18nPipe.transform(\r\n this.literals['filterRange'],\r\n [this.literals[property], valInitDate.toLocaleDateString(), valFinalDate.toLocaleDateString()]),\r\n property: `${property}`,\r\n value: `${this.dateToQueryParam(valInitDate)};${this.dateToQueryParam(valFinalDate)}`\r\n };\r\n }\r\n\r\n public atzCharFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string, defaultValue: string): string {\r\n let returnValue = defaultValue;\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n\r\n returnValue = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzNumberFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string, defaultValue: number): number {\r\n let returnValue = defaultValue;\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n\r\n returnValue = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzBooleanFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string, defaultValue: boolean): boolean {\r\n const returnValue = defaultValue;\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n const disclaimerFind = disclaimers.find((item) => item.property === property);\r\n if (disclaimerFind && disclaimerFind.value !== null && disclaimerFind.value !== undefined) {\r\n if (disclaimerFind.value === 'true') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return returnValue;\r\n }\r\n\r\n public atzDateFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string, defaultValue: Date): Date {\r\n let returnValue: Date = this.ajustDate(defaultValue);\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n\r\n returnValue = this.ajustDate(item.value);\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzMultiSelectCharFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n defaultValue: Array<PoMultiselectOption>): Array<string> {\r\n return this.atzMultiSelectFromDisclamer('char', disclaimers, property, defaultValue);\r\n }\r\n\r\n public atzMultiSelectNumberFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n defaultValue: Array<PoMultiselectOption>): Array<number> {\r\n return this.atzMultiSelectFromDisclamer('number', disclaimers, property, defaultValue);\r\n }\r\n\r\n public atzMultiSelectFromDisclamer(type: string, disclaimers: Array<PoDisclaimer>, property: string,\r\n defaultValue: Array<PoMultiselectOption>): Array<any> {\r\n\r\n let returnValue = [];\r\n defaultValue.map(item => {\r\n returnValue.push(item.value);\r\n });\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null || item.value === 'all' || item.value === 'none') { return false; }\r\n\r\n returnValue = [];\r\n item.value.split(',').forEach(itemOpt => {\r\n if (type === 'char') { returnValue.push(itemOpt); }\r\n if (type === 'number') { returnValue.push(+itemOpt); }\r\n });\r\n\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzCheckboxFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n options: Array<PoCheckboxGroupOption>): Array<string> {\r\n\r\n let returnValue = [];\r\n options.map(item => {\r\n returnValue.push(item.value);\r\n });\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null || item.value === 'all' || item.value === 'none') { return false; }\r\n\r\n returnValue = [];\r\n item.value.split(',').forEach(itemOpt => {\r\n returnValue.push(itemOpt);\r\n });\r\n\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return returnValue;\r\n }\r\n\r\n public atzRangeCharFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n rangeChar: IFilterRangeCharacter): IFilterRangeCharacter {\r\n let value = '';\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n value = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return this.atzRangeCharFromQueryParam(value, rangeChar);\r\n }\r\n\r\n public atzRangeNumFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n rangeNum: IFilterRangeNumber): IFilterRangeNumber {\r\n let value = '';\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n value = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return this.atzRangeNumFromQueryParam(value, rangeNum);\r\n }\r\n\r\n public atzDatepickerRangeFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n rangeDate: PoDatepickerRange): PoDatepickerRange {\r\n\r\n let filterRangeDate = {\r\n iniInitial: null,\r\n valInitial: rangeDate ? this.ajustDate(rangeDate.start) : null,\r\n iniFinal: null,\r\n valFinal: rangeDate ? this.ajustDate(rangeDate.end) : null\r\n }\r\n\r\n filterRangeDate = this.atzRangeDateFromDisclamer(disclaimers, property, filterRangeDate);\r\n\r\n if (filterRangeDate.valInitial === null || filterRangeDate.valFinal === null) {\r\n return null;\r\n }\r\n\r\n return {\r\n start: filterRangeDate.valInitial,\r\n end: filterRangeDate.valFinal\r\n }\r\n }\r\n\r\n public atzRangeDateFromDisclamer(disclaimers: Array<PoDisclaimer>, property: string,\r\n rangeDate: IFilterRangeDate): IFilterRangeDate {\r\n let value = '';\r\n\r\n if (disclaimers && disclaimers.length > 0) {\r\n disclaimers.find((item) => {\r\n if (item.property === property) {\r\n if (item.value === null) { return false; }\r\n value = item.value;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n return this.atzRangeDateFromQueryParam(value, rangeDate);\r\n }\r\n\r\n public atzRangeCharFromQueryParam(value: string, rangeChar: IFilterRangeCharacter): IFilterRangeCharacter {\r\n rangeChar.valInitial = rangeChar.iniInitial;\r\n rangeChar.valFinal = rangeChar.iniFinal;\r\n\r\n if (!value || value === '') { return rangeChar; }\r\n\r\n rangeChar.valInitial = value.split(';')[0];\r\n rangeChar.valFinal = value.split(';')[1];\r\n if (rangeChar.valFinal === null || rangeChar.valFinal === undefined) { rangeChar.valFinal = rangeChar.iniFinal; }\r\n\r\n return rangeChar;\r\n }\r\n\r\n public atzRangeNumFromQueryParam(value: string, rangeNum: IFilterRangeNumber): IFilterRangeNumber {\r\n rangeNum.valInitial = rangeNum.iniInitial;\r\n rangeNum.valFinal = rangeNum.iniFinal;\r\n\r\n if (!value || value === '') { return rangeNum; }\r\n\r\n rangeNum.valInitial = +value.split(';')[0];\r\n rangeNum.valFinal = +value.split(';')[1];\r\n if (rangeNum.valFinal === null || rangeNum.valFinal === undefined) { rangeNum.valFinal = rangeNum.iniFinal; }\r\n\r\n return rangeNum;\r\n }\r\n\r\n public atzRangeDateFromQueryParam(value: string, rangeDate: IFilterRangeDate): IFilterRangeDate {\r\n rangeDate.valInitial = rangeDate.iniInitial;\r\n rangeDate.valFinal = rangeDate.iniFinal;\r\n\r\n if (!value || value === '') { return rangeDate; }\r\n\r\n rangeDate.valInitial = this.queryParamToDate(value.split(';')[0]);\r\n rangeDate.valFinal = this.queryParamToDate(value.split(';')[1]);\r\n if (rangeDate.valFinal === null || rangeDate.valFinal === undefined) { rangeDate.valFinal = rangeDate.iniFinal; }\r\n\r\n return rangeDate;\r\n }\r\n\r\n public dateToQueryParam(date: Date): string {\r\n if (date === null) { return null; }\r\n\r\n const iDay = date.getDate();\r\n const iMonth = date.getMonth() + 1;\r\n const iYear = date.getFullYear();\r\n\r\n return `${iYear}-${this.pad(iMonth)}-${this.pad(iDay)}`;\r\n }\r\n\r\n public queryParamToDate(param: string): Date {\r\n if (param === null) { return null; }\r\n\r\n const iDay = +param.split('-')[2];\r\n const iMonth = +param.split('-')[1];\r\n const iYear = +param.split('-')[0];\r\n\r\n return new Date(iYear, iMonth - 1, iDay);\r\n }\r\n\r\n public isValidDate(date: Date) {\r\n return date instanceof Date && !isNaN(date.getTime());\r\n }\r\n\r\n public ajustDate(param: any): Date {\r\n if (param === null) { return null; }\r\n if (param instanceof Date) { return param; }\r\n if (!param) { return param; }\r\n\r\n return this.queryParamToDate(param.split('T')[0]);\r\n }\r\n\r\n public pad(number: number) {\r\n if (number < 10) {\r\n return '0' + number;\r\n }\r\n return number;\r\n }\r\n}\r\n","/*\r\nVersão: 1.002\r\nData Criação: 19/02/2019\r\n*/\r\n\r\nimport { PoNotificationService, PoI18nPipe } from '@po-ui/ng-components';\r\nimport { DisclaimerUtil } from './disclaimer.util';\r\n\r\nexport class FieldValidationUtil {\r\n poNotification: PoNotificationService;\r\n poI18nPipe: PoI18nPipe;\r\n literals: any = {};\r\n\r\n disclaimerUtil: DisclaimerUtil;\r\n\r\n constructor(\r\n poNotification: PoNotificationService,\r\n poI18nPipe: PoI18nPipe,\r\n literals: Object\r\n ) {\r\n this.poNotification = poNotification;\r\n this.poI18nPipe = poI18nPipe;\r\n this.literals = literals;\r\n this.disclaimerUtil = new DisclaimerUtil(this.poNotification, this.poI18nPipe, this.literals);\r\n }\r\n\r\n public vldFieldCharacter(field: string, value: string): boolean {\r\n if (!value || value.trim() === '') {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRequered'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Valida uma faixa de caracteres se o inicial é menor que final\r\n public vldRangeCharacter(initialField: string, finalField: string, initialValue: string, finalValue: string): boolean {\r\n if (!initialValue || !finalValue) {\r\n return true;\r\n }\r\n\r\n if (initialValue.trim().toUpperCase() > finalValue.trim().toUpperCase()) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRange'],\r\n [this.literals[initialField], this.literals[finalField]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldNumber(field: string, value: number, vldValue = false, zeroAccept = false): boolean {\r\n if (vldValue && !this.vldValueOfNumber(field, value)) {\r\n return false;\r\n }\r\n\r\n if ((!value) || value <= 0) {\r\n if (value === 0 && zeroAccept === true) {\r\n return true;\r\n }\r\n\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRequered'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldValueOfNumber(field: string, value: number): boolean {\r\n if (value && value < 0) {\r\n this.poNotification.error(\r\n { message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldPercent(field: string, value: number, vldValue = false): boolean {\r\n if (vldValue && !this.vldValueOfPercent(field, value)) {\r\n return false;\r\n }\r\n\r\n if (!this.vldFieldNumber(field, value)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldValueOfPercent(field: string, value: number): boolean {\r\n if (value && value < 0) {\r\n this.poNotification.error(\r\n { message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });\r\n return false;\r\n }\r\n\r\n if (value && value > 100) {\r\n this.poNotification.error(\r\n { message: this.poI18nPipe.transform(this.literals['fieldVldNumber'], [value.toString(), this.literals[field]]) });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Valida uma faixa de números se o inicial é menor que final\r\n public vldRangeNumber(initialField: string, finalField: string, initialValue: number, finalValue: number): boolean {\r\n if (!initialValue) { initialValue = 0; }\r\n if (!finalValue) { finalValue = 0; }\r\n\r\n if (initialValue > finalValue) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRange'],\r\n [this.literals[initialField], this.literals[finalField]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldDate(field: string, value: Date): boolean {\r\n const valDate = this.disclaimerUtil.ajustDate(value);\r\n\r\n if (!this.disclaimerUtil.isValidDate(valDate)) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldDate'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Valida uma faixa de datas se o inicial é menor que final\r\n public vldRangeDate(initialField: string, finalField: string, initialValue: Date, finalValue: Date): boolean {\r\n if (!initialValue || !finalValue) {\r\n return true;\r\n }\r\n\r\n const valInitialDate = this.disclaimerUtil.ajustDate(initialValue).getTime();\r\n const valFinalDate = this.disclaimerUtil.ajustDate(finalValue).getTime();\r\n\r\n if (valInitialDate > valFinalDate) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldRange'],\r\n [this.literals[initialField], this.literals[finalField]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldMultiSelect(field: string, value: Array<any>): boolean {\r\n if (!value || value.length === 0) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldSelected'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public vldFieldCheckbox(field: string, value: Array<string>): boolean {\r\n if (!value || value.length === 0) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldSelected'], [this.literals[field]])\r\n });\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n // Valida formato conforme regra: \"9\" apenas números, \"X\" qualquer caracter, \"!\" apenas letras maiúsculas\r\n public vldFieldFormat(field: string, value: string, format: string, replacePoint = false): boolean {\r\n let lOK = true;\r\n let oldFormat: string;\r\n\r\n if (!value) { return lOK; }\r\n\r\n /*Retira os pontos do formato*/\r\n if (replacePoint) {\r\n oldFormat = format;\r\n format = format.replace(/\\./g, '');\r\n }\r\n\r\n if (value.length !== format.length) {\r\n lOK = false;\r\n } else {\r\n for (let idx = 0; idx < format.length; idx++) {\r\n if (format[idx] === '9') {\r\n if (value[idx].replace(/[0-9]/, '9') !== '9') { lOK = false; break; }\r\n }\r\n\r\n if (format[idx] === '!') {\r\n if (value[idx].replace(/[A-Z]/, 'A') !== 'A') { lOK = false; break; }\r\n }\r\n }\r\n }\r\n\r\n if (replacePoint) {\r\n format = oldFormat;\r\n }\r\n\r\n if (!lOK) {\r\n this.poNotification.error({\r\n message: this.poI18nPipe.transform(this.literals['fieldVldFormat'], [this.literals[field], format])\r\n });\r\n }\r\n\r\n return lOK;\r\n }\r\n}\r\n","/*\r\nVersão: 1.000\r\nData Criação: 06/08/2018\r\n*/\r\n\r\nimport { IFilterRangeCharacter, IFilterRangeNumber, IFilterRangeDate } from '../../lib/interfaces/filter-range.interface';\r\n\r\nexport class FilterRangeUtil {\r\n\r\n constructor() {\r\n }\r\n\r\n public static makeFilterRangeCharacter(iniInitial: string, iniFinal: string): IFilterRangeCharacter {\r\n return {\r\n iniInitial,\r\n iniFinal,\r\n valInitial: iniInitial,\r\n valFinal: iniFinal\r\n };\r\n }\r\n\r\n public static makeFilterRangeNumber(iniInitial: number, iniFinal: number): IFilterRangeNumber {\r\n return {\r\n iniInitial,\r\n iniFinal,\r\n valInitial: iniInitial,\r\n valFinal: iniFinal\r\n };\r\n }\r\n\r\n public static makeFilterRangeDate(iniInitial: Date, iniFinal: Date): IFilterRangeDate {\r\n return {\r\n iniInitial,\r\n iniFinal,\r\n valInitial: iniInitial,\r\n valFinal: iniFinal\r\n };\r\n }\r\n}\r\n","/*\r\nVersão: 1.003\r\nData Criação: 18/04/2019\r\n*/\r\n\r\nimport { PoMultiselectOption, PoSelectOption } from '@po-ui/ng-components';\r\n\r\nexport interface ChartSeries {\r\n name?: string;\r\n data?: Array<number>;\r\n}\r\nexport interface ChartValues {\r\n minValue: number;\r\n maxValue: number;\r\n}\r\n\r\nexport class GenericFunctionsUtils {\r\n\r\n literals: any = {};\r\n\r\n constructor(\r\n literals: Object\r\n ) {\r\n this.literals = literals;\r\n }\r\n\r\n /* Transforma uma Lista separada por \",\" em um Array */\r\n static listToArrayCharacter(list: string): Array<string> {\r\n let returnArray = new Array<string>();\r\n\r\n if (list && list !== '') {\r\n returnArray = list.split(',');\r\n }\r\n\r\n return returnArray;\r\n }\r\n\r\n /* Transforma um Array em uma Lista separada por \",\" */\r\n static ArrayToListCharacter(array: Array<string>): string {\r\n let list = '';\r\n\r\n if (array && array.length > 0) {\r\n list = array.join(',');\r\n }\r\n\r\n return list;\r\n }\r\n\r\n static isEmpty(object: object): boolean {\r\n let isEmpty = true;\r\n\r\n for (const content in object) {\r\n if (object.hasOwnProperty(content)) {\r\n isEmpty = false;\r\n }\r\n }\r\n\r\n return isEmpty;\r\n }\r\n\r\n static getChartValues(chartData: Array<ChartSeries>): ChartValues {\r\n\r\n let chartValues: ChartValues;\r\n\r\n let maxValue,\r\n minValue;\r\n\r\n maxValue = undefined;\r\n minValue = undefined;\r\n\r\n chartData.map(item => {\r\n if (maxValue === undefined && minValue === undefined) {\r\n maxValue = item.data[0];\r\n minValue = item.data[0];\r\n } else {\r\n if (item.data < minValue) {\r\n minValue = item.data[0];\r\n }\r\n if (item.data > maxValue) {\r\n maxValue = item.data[0];\r\n }\r\n }\r\n });\r\n\r\n if (maxValue > 0 && minValue > 0) {\r\n chartValues = { maxValue: maxValue, minValue: 0 };\r\n }\r\n\r\n if (maxValue > 0 && minValue < 0) {\r\n chartValues = { maxValue: maxValue, minValue: minValue };\r\n }\r\n\r\n if (maxValue < 0 && minValue < 0) {\r\n const max = (minValue / 3) * (- 1);\r\n chartValues = { maxValue: max, minValue: minValue };\r\n }\r\n\r\n if (maxValue > 0 && minValue === 0) {\r\n chartValues = { maxValue: maxValue, minValue: 0 };\r\n }\r\n\r\n if (maxValue === 0 && minValue < 0) {\r\n const max = (minValue / 3) * (- 1);\r\n chartValues = { maxValue: max, minValue: minValue };\r\n }\r\n\r\n if (maxValue === 0 && minValue === 0) {\r\n chartValues = { maxValue: undefined, minValue: undefined };\r\n }\r\n\r\n chartValues.maxValue = Math.round(chartValues.maxValue);\r\n chartValues.minValue = Math.round(chartValues.minValue);\r\n\r\n return chartValues;\r\n }\r\n\r\n /*Deixa no list apenas o itens que existem no options*/\r\n static atzMultiSelectListByOptions(options: Array<PoMultiselectOption>, list: Array<string>): Array<string> {\r\n let idx: number;\r\n let newList: Array<string>;\r\n\r\n if (!list) {\r\n return list;\r\n }\r\n\r\n newList = new Array<string>();\r\n\r\n list.map(item => {\r\n if (item) {\r\n idx = options.findIndex(itemOptions => itemOptions.value === item);\r\n if (idx >= 0) {\r\n newList.push(item);\r\n }\r\n }\r\n });\r\n\r\n return newList;\r\n }\r\n\r\n /*Carrega o Options com os valores defaults passados como parâmetro (list)*/\r\n public loadOptionsMultiSelect(options: Array<PoMultiselectOption>, list: Array<string>): void {\r\n let idx: number;\r\n\r\n if (!list) {\r\n return;\r\n }\r\n\r\n list.map(item => {\r\n if (item) {\r\n idx = options.findIndex(itemOptions => itemOptions.value === item);\r\n if (idx === -1) {\r\n options.push({ label: item === 'all' ? this.literals['all'] : item, value: item });\r\n }\r\n }\r\n });\r\n }\r\n\r\n /*Carrega o Options com os valores defaults passados como parâmetro (list)*/\r\n public loadOptionsSelect(options: Array<PoSelectOption>, selectValue: string, tradValue = false): void {\r\n let idx: number;\r\n\r\n if (!selectValue) {\r\n return;\r\n }\r\n\r\n if (selectValue) {\r\n idx = options.findIndex(itemOptions => itemOptions.value === selectValue);\r\n if (idx === -1) {\r\n options.push({ label: tradValue ? this.literals[selectValue] : selectValue, value: selectValue });\r\n }\r\n }\r\n }\r\n\r\n /*Método que compara 2 objetos e retorna se são iguais ou diferentes*/\r\n public compareObjects(firstObject: Object, secondObject: Object): boolean {\r\n\r\n if (!firstObject || !secondObject) {\r\n return false;\r\n }\r\n\r\n /*Pega a lista de nomes dos campos do objetos e compara*/\r\n if (Object.getOwnPropertyNames(firstObject).length !== Object.getOwnPropertyNames(secondObject).length) {\r\n return false;\r\n }\r\n\r\n for (const content in firstObject) {\r\n if (content.substr(0, 1) === '$' || content.substr(0, 1) === '_') {\r\n continue;\r\n }\r\n\r\n if (firstObject[content] !== secondObject[content]) {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public referenceGeneration(charInd: string, dateRef: Date): string {\r\n let reference: string;\r\n let random: string;\r\n\r\n const iDay = dateRef.getDate();\r\n const iMonth = dateRef.getMonth() + 1;\r\n const iYear = dateRef.getFullYear();\r\n\r\n reference = `${this.pad(iYear)}${this.pad(iMonth)}${this.pad(iDay)}${charInd}`;\r\n\r\n random = btoa(`${(new Date()).getTime()}`);\r\n random = random.replace(/[=]/g, '');\r\n random = random.slice(random.length - 3, random.length);\r\n\r\n return `${reference}${random}`;\r\n }\r\n\r\n public pad(number): string {\r\n if (number < 10) {\r\n return '0' + number;\r\n }\r\n if (number > 99) {\r\n return (number + '').slice(2, 4);\r\n }\r\n return number;\r\n }\r\n\r\n public focusInternalInput(idField: string) {\r\n const fieldComponent = document.getElementById(idField);\r\n const fieldInput = (<HTMLScriptElement[]><any>fieldComponent.getElementsByClassName('po-input'))[0];\r\n fieldInput.focus();\r\n }\r\n}\r\n","export class FileUtil {\r\n\r\n constructor(\r\n ) { }\r\n\r\n static downloadFile(data: any, fileName: string, contentType?: string, base64?: boolean): void {\r\n base64 = (base64 === false) ? false : true;\r\n const dataBlob = base64 ? this.b64toBlob(data, contentType) : data;\r\n this.download(dataBlob, fileName);\r\n }\r\n\r\n static downloadData(data: Array<any>, dwldDataParam: IDownloadDataParams = null): void {\r\n if (!data) { return; }\r\n\r\n if (!dwldDataParam) { dwldDataParam = new DownloadDataParams(); }\r\n if (!dwldDataParam.fileName) { dwldDataParam.fileName = 'data.csv'; }\r\n if (!dwldDataParam.literals) { dwldDataParam.literals = {}; }\r\n if (!dwldDataParam.columnDelimiter) { dwldDataParam.columnDelimiter = ';'; }\r\n if (!dwldDataParam.columnList) { dwldDataParam.columnList = []; }\r\n if (!dwldDataParam.columnExclude) { dwldDataParam.columnExclude = []; }\r\n\r\n const datab64 = btoa(this.jsonToString(data, dwldDataParam));\r\n this.downloadFile(datab64, dwldDataParam.fileName, 'text/csv');\r\n }\r\n\r\n private static download(file: Blob, fileName: string): void {\r\n const binaryData = [file];\r\n const downloadLink = document.createElement('a');\r\n const urlDownload = window.URL.createObjectURL(new Blob(binaryData, { type: file.type }));\r\n\r\n /* Verifica se é ie ou edge, pois o mesmo tem tratamento próprio para arquivos blob */\r\n const nav = (window.navigator as any);\r\n if (nav && nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(file, fileName);\r\n } else {\r\n downloadLink.href = urlDownload;\r\n downloadLink.setAttribute('download', fileName);\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n window.URL.revokeObjectURL(urlDownload);\r\n downloadLink.remove();\r\n }\r\n }\r\n\r\n static b64toBlob(b64Data: any, contentType?: string, sliceSize?: number): Blob {\r\n contentType = contentType || '';\r\n sliceSize = sliceSize || 512;\r\n\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n const blob = new Blob(byteArrays, { type: contentType });\r\n return blob;\r\n }\r\n\r\n private static jsonToString(jsonData: Array<any>, dwldDataParam: IDownloadDataParams): string {\r\n if (!jsonData || jsonData.length === 0) { return ''; }\r\n\r\n const lineDelimiter = '\\n';\r\n\r\n let columnOrig = null;\r\n let columnHeader = null;\r\n const keys = [];\r\n let includeKey: boolean;\r\n\r\n if (dwldDataParam.columnList &&\r\n dwldDataParam.columnList.length > 0) {\r\n columnOrig = dwldDataParam.columnList;\r\n } else {\r\n columnOrig = Object.keys(jsonData[0]);\r\n }\r\n\r\n columnOrig.forEach(key => {\r\n includeKey = true;\r\n\r\n if (dwldDataParam.columnExclude &&\r\n dwldDataParam.columnExclude.length > 0 &&\r\n dwldDataParam.columnExclude.indexOf(key) !== -1) {\r\n includeKey = false;\r\n }\r\n\r\n if (includeKey) {\r\n keys.push(key);\r\n columnHeader = (!columnHeader) ? '' : columnHeader + dwldDataParam.columnDelimiter;\r\n columnHeader += (dwldDataParam.literals[key]) ? dwldDataParam.literals[key] : key;\r\n }\r\n });\r\n\r\n const lineStr = jsonData.reduce((accLineStr, currentItem) => {\r\n let first = true;\r\n let columnValue = null;\r\n\r\n keys.forEach(key => {\r\n if (!first) { accLineStr += dwldDataParam.columnDelimiter; }\r\n\r\n columnValue = currentItem[key];\r\n if (columnValue === null || columnValue === undefined) { columnValue = ''; }\r\n switch (typeof (columnValue)) {\r\n case 'number':\r\n columnValue = columnValue.toLocaleString();\r\n break;\r\n case 'boolean':\r\n columnValue = (dwldDataParam.literals[`${columnValue}`]) ?\r\n dwldDataParam.literals[`${columnValue}`] : columnValue;\r\n break;\r\n case 'object':\r\n columnValue = JSON.stringify(columnValue);\r\n }\r\n accLineStr += columnValue;\r\n\r\n first = false;\r\n });\r\n\r\n return accLineStr + lineDelimiter;\r\n\r\n }, columnHeader + lineDelimiter);\r\n\r\n return lineStr;\r\n }\r\n\r\n static fileToB64(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = () => {\r\n let cntFile: any;\r\n cntFile = reader.result;\r\n if (!cntFile) {\r\n reject('File not found or Empty');\r\n return;\r\n }\r\n\r\n const aCnt = cntFile.split(',');\r\n if (aCnt && aCnt.length >= 2) {\r\n resolve(aCnt[1]);\r\n } else {\r\n reject('File not found or Empty');\r\n }\r\n\r\n };\r\n\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n}\r\n\r\nexport interface IDownloadDataParams {\r\n fileName: string;\r\n literals: any;\r\n columnDelimiter: string;\r\n columnList: Array<string>;\r\n columnExclude: Array<string>;\r\n}\r\n\r\nexport class DownloadDataParams implements IDownloadDataParams {\r\n fileName: string;\r\n literals: any;\r\n columnDelimiter: string;\r\n columnList: Array<string>;\r\n columnExclude: Array<string>;\r\n}\r\n","export interface IScheduleParameters {\r\n executionType: number;\r\n execAppointDate: Date;\r\n execAppointHour: string;\r\n executionServer: string;\r\n repeatExecution: boolean;\r\n repeatType: number;\r\n frequency: string;\r\n frequencyValue: number;\r\n frequencyType: string;\r\n execAppointHourInit: string;\r\n execAppointHourFinal: string;\r\n selectWeeklys: [];\r\n dayOfMonth: number;\r\n listExecutionID: string[];\r\n}\r\n\r\nexport class ScheduleParameters implements IScheduleParameters {\r\n executionType: number;\r\n execAppointDate: Date;\r\n execAppointHour: string;\r\n executionServer: string;\r\n repeatExecution: boolean;\r\n repeatType: number;\r\n frequency: string;\r\n frequencyValue: number;\r\n frequencyType: string;\r\n execAppointHourInit: string;\r\n execAppointHourFinal: string;\r\n selectWeeklys: [];\r\n dayOfMonth: number;\r\n listExecutionID: string[];\r\n}\r\n\r\nexport interface IExecutionStatus {\r\n jobScheduleID: string;\r\n executionID: string;\r\n startedDate: Date;\r\n error: string;\r\n status: string;\r\n}\r\n\r\nexport class ExecutionStatus implements IExecutionStatus {\r\n jobScheduleID: string;\r\n executionID: string;\r\n startedDate: Date;\r\n error: string;\r\n status: string;\r\n}\r\n\r\nexport interface IExecutionParameters {\r\n executionServer: string;\r\n programName: string;\r\n externalName: string;\r\n programEMS5?: boolean;\r\n programStyle?: number;\r\n programVersion?: string;\r\n businessParams: Array<any>;\r\n paramDigitDef?: Array<any>;\r\n paramDigitData?: Array<any>;\r\n paramSelections?: Array<any>;\r\n}\r\n\r\nexport class ExecutionParameters implements IExecutionParameters {\r\n executionServer: string;\r\n programName: string;\r\n externalName: string;\r\n programEMS5?: boolean;\r\n programStyle?: number;\r\n programVersion?: string;\r\n businessParams: Array<any>;\r\n paramDigitDef?: Array<any>;\r\n paramDigitData?: Array<any>;\r\n paramSelections?: Array<any>;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { PoLookupFilteredItemsParams } from '@po-ui/ng-components';\r\nimport { ExecutionStatus, IExecutionParameters, IExecutionStatus } from './totvs-schedule-execution.model';\r\n\r\n@Injectable()\r\nexport class TotvsScheduleExecutionService {\r\n\r\n private headers = { headers: { 'X-PO-Screen-Lock': 'true' } };\r\n\r\n private urlCadServidor = '/dts/datasul-rest/resources/prg/btb/v1/servidoresExecucao';\r\n private urlJobScheduler = '/dts/datasul-rest/resources/prg/framework/v1/jobScheduler';\r\n private urlJobExecution = '/dts/datasul-rest/resources/prg/framework/v1/jobExecution';\r\n\r\n //private urlCadServidor = '/genericsZoom';\r\n //private urlJobScheduler = '/jobScheduler';\r\n //private urlJobExecution = '/jobExecution';\r\n\r\n private jobExecutionSubscription$: Subscription;\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getFilteredItems(params: PoLookupFilteredItemsParams): Observable<any> {\r\n const urlParams = new Array<string>();\r\n\r\n urlParams.push(`pageSize=${params.pageSize.toString()}`);\r\n urlParams.push(`page=${params.page.toString()}`);\r\n\r\n if (params.filter && params.filter.length > 0) {\r\n urlParams.push(`quickSearch=${params.filter}`);\r\n }\r\n\r\n return this.http.get(`${this.urlCadServidor}?${urlParams.join('&')}`);\r\n }\r\n\r\n getObjectByValue(id: string): Observable<any> {\r\n return this.http.get<any>(`${this.urlCadServidor}/${id}`, this.headers);\r\n }\r\n\r\n createExecution(parameters: object, loading: boolean): Observable<any> {\r\n const params = JSON.parse(JSON.stringify(parameters).replace(/\\\\\\\\/g, '*|'));\r\n\r\n if (params) {\r\n params.svUuidToken = this.getUuidAccessToken();\r\n }\r\n\r\n if (loading) {\r\n return this.http.post(`${this.urlJobScheduler}`, params, this.headers);\r\n } else {\r\n return this.http.post(`${this.urlJobScheduler}`, params);\r\n }\r\n }\r\n\r\n createExecutionForNow(executionParams: IExecutionParameters, loading: boolean): Observable<any> {\r\n let jobScheduleParams: any;\r\n const date = new Date();\r\n\r\n if (!executionParams.programEMS5) { executionParams.programEMS5 = false; }\r\n if (!executionParams.programStyle) { executionParams.programStyle = 0; }\r\n if (!executionParams.programVersion) { executionParams.programVersion = ''; }\r\n if (!executionParams.businessParams || executionParams.businessParams.length === 0) {\r\n executionParams.businessParams = [{ chave: '', valor: '' }];\r\n }\r\n\r\n jobScheduleParams = {};\r\n jobScheduleParams.status = 'active';\r\n jobScheduleParams.processID = executionParams.programName;\r\n jobScheduleParams.firstExecution = `${date.getFullYear()}-${(date.getMonth() + 1)}-${date.getDate()}T${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:00.000Z`;\r\n jobScheduleParams.recurrent = false;\r\n\r\n jobScheduleParams.executionParameter = {\r\n parametros: [\r\n { chave: 'rpwServer', valor: executionParams.executionServer },\r\n { chave: 'RPW_PROGRAM', valor: executionParams.externalName },\r\n { chave: 'RPW_PRG_EMS5', valor: executionParams.programEMS5 ? 'yes' : 'no' },\r\n { chave: 'RPW_PRG_ESTILO', valor: executionParams.programStyle },\r\n { chave: 'RPW_PRG_VERS', valor: executionParams.programVersion },\r\n { parametros_negocio: executionParams.businessParams }\r\n ]\r\n };\r\n\r\n if (executionParams.paramDigitDef && executionParams.paramDigitDef.length > 0) {\r\n jobScheduleParams.executionParameter.parametros.push({\r\n param_digita_def: executionParams.paramDigitDef\r\n });\r\n }\r\n\r\n if (executionParams.paramDigitData && executionParams.paramDigitData.length > 0) {\r\n jobScheduleParams.executionParameter.parametros.push({\r\n param_digita_dados: executionParams.paramDigitData\r\n });\r\n }\r\n\r\n if (executionParams.paramSelections && executionParams.paramSelections.length > 0) {\r\n jobScheduleParams.executionParameter.parametros.push({\r\n selecoes: executionParams.paramSelections\r\n });\r\n }\r\n\r\n return this.createExecution(jobScheduleParams, loading);\r\n }\r\n\r\n getExecutionByJobScheduleID(jobScheduleID: string, loading = false): Observable<IExecutionStatus> {\r\n const url = `${this.urlJobExecution}?jobScheduleID=${jobScheduleID}`;\r\n return this.getExecution(url, loading).pipe(\r\n map((response) => this.transformExecution('jobScheduleID', response))\r\n );\r\n }\r\n\r\n getExecutionByExecutionID(executionID: string, loading = false): Observable<IExecutionStatus> {\r\n const url = `${this.urlJobExecution}/${executionID}`;\r\n return this.getExecution(url, loading).pipe(\r\n map((response) => this.transformExecution('executionID', response))\r\n );\r\n }\r\n\r\n private getExecution(url: string, loading: boolean): Observable<any> {\r\n if (loading) {\r\n return this.http.get(url, this.headers);\r\n } else {\r\n return this.http.get(url);\r\n }\r\n }\r\n\r\n private transformExecution(type: string, response: any): IExecutionStatus {\r\n if (!response || !response.items || response.items.length === 0) { return; }\r\n response = response.items[0];\r\n\r\n const execStatus = new ExecutionStatus();\r\n execStatus.jobScheduleID = response.jobScheduleID;\r\n execStatus.executionID = response.executionID;\r\n execStatus.startedDate = response.startedDate;\r\n execStatus.error = response.error;\r\n execStatus.status = response.status;\r\n\r\n return execStatus;\r\n }\r\n\r\n followUpExcByJobScheduleID(jobScheduleID: string, intervalNum: number, fncCallBack: Function, loading = false): void {\r\n this.followUpExecution('jobScheduleID', jobScheduleID, intervalNum, fncCallBack, loading);\r\n }\r\n\r\n followUpExcByExecutionID(executionID: string, intervalNum: number, fncCallBack: Function, loading = false): void {\r\n this.followUpExecution('executionID', executionID, intervalNum, fncCallBack, loading);\r\n }\r\n\r\n private followUpExecution(type: string, execID: string,\r\n intervalNum: number, fncCallBack: Function, loading: boolean): void {\r\n\r\n this.jobExecutionSubscription$ = null;\r\n\r\n const intervalID = setInterval(() => {\r\n const execStatus = new ExecutionStatus();\r\n execStatus.jobScheduleID = (type === 'jobScheduleID') ? execID : '';\r\n execStatus.executionID = (type === 'executionID') ? execID : '';\r\n execStatus.startedDate = null;\r\n execStatus.error = '';\r\n execStatus.status = 'PENDING'; // PENDING, RUNNING, SUCCESS, FAILURE\r\n\r\n if (this.jobExecutionSubscription$) { return; }\r\n\r\n if (type === 'jobScheduleID') {\r\n this.jobExecutionSubscription$ = this.getExecutionByJobScheduleID(execID, loading)\r\n .subscribe((response: IExecutionStatus) => {\r\n this.followUpExecReturnOk(execID, execStatus, response, intervalID, fncCallBack);\r\n }, (error) => {\r\n this.followUpExecReturnError(error, execStatus, intervalID, fncCallBack);\r\n });\r\n }\r\n\r\n if (type === 'executionID') {\r\n this.jobExecutionSubscription$ = this.getExecutionByExecutionID(execID, loading)\r\n .subscribe((response: IExecutionStatus) => {\r\n this.followUpExecReturnOk(execID, execStatus, response, intervalID, fncCallBack);\r\n }, (error) => {\r\n this.followUpExecReturnError(error, execStatus, intervalID, fncCallBack);\r\n });\r\n }\r\n\r\n }, intervalNum);\r\n }\r\n\r\n private followUpExecReturnOk(execID: string, execStatus: IExecutionStatus, response: IExecutionStatus,\r\n intervalID: any, fncCallBack: Function): void {\r\n\r\n if (response) {\r\n execStatus = response;\r\n } else {\r\n execStatus.error = `Agendamento não encontrado com ID: ${execID}`;\r\n execStatus.status = 'FAILURE';\r\n }\r\n\r\n if (!fncCallBack(execStatus) ||\r\n execStatus.status === 'SUCCESS' ||\r\n execStatus.status === 'FAILURE') {\r\n clearInterval(intervalID);\r\n }\r\n\r\n this.jobExecutionSubscription$ = null;\r\n }\r\n\r\n private followUpExecReturnError(error: any, execStatus: IExecutionStatus,\r\n intervalID: any, fncCallBack: Function): void {\r\n\r\n let erroDesc = '';\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n erroDesc = error.message;\r\n if (error.error) {\r\n erroDesc = '';\r\n if (error.error.code) { erroDesc = error.error.code; }\r\n if (error.error.message) { erroDesc = `${erroDesc} - ${error.error.message}`; }\r\n if (error.error.detailedMessage) { erroDesc = `${erroDesc} - ${error.error.detailedMessage}`; }\r\n }\r\n } else {\r\n erroDesc = error;\r\n }\r\n\r\n execStatus.error = erroDesc;\r\n execStatus.status = 'FAILURE';\r\n fncCallBack(execStatus);\r\n clearInterval(intervalID);\r\n this.jobExecutionSubscription$ = null;\r\n }\r\n\r\n private addZero(num: number): string {\r\n let str = `${num}`;\r\n if (num < 10) { str = `0${num}`; }\r\n return str;\r\n }\r\n\r\n private getUuidAccessToken(): string {\r\n let tokenService = localStorage.getItem('token-service.token');\r\n if (tokenService) {\r\n let jsonTokenService = JSON.parse(tokenService);\r\n let accessToken = jsonTokenService['access_token'];\r\n let payload = accessToken.split(\".\");\r\n let decodedAccessToken = atob(payload[1]);\r\n let jsonDecodedAccessToken = JSON.parse(decodedAccessToken);\r\n return jsonDecodedAccessToken['jti'];\r\n }\r\n return '';\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { PoRadioGroupOption, PoI18nService, PoNotificationService, PoLookupColumn } from '@po-ui/ng-components';\r\nimport { IExecutionStatus, IScheduleParameters, ScheduleParameters } from './totvs-schedule-execution.model';\r\nimport { NgForm } from '@angular/forms';\r\nimport { TotvsScheduleExecutionService } from './totvs-schedule-execution.service';\r\n\r\n@Component({\r\n selector: 'app-totvs-schedule-execution',\r\n templateUrl: './totvs-schedule-execution.component.html',\r\n styleUrls: ['./totvs-schedule-execution.component.css'],\r\n standalone: false\r\n})\r\n\r\nexport class TotvsScheduleExecutionComponent implements OnInit {\r\n @ViewChild('scheduleExecutionForm', { static: true }) scheduleExecutionForm: NgForm;\r\n\r\n @Input() programName: string;\r\n @Input() externalName: string;\r\n @Input() programEMS5 = false;\r\n @Input() programStyle = 0;\r\n @Input() programVersion = '';\r\n @Input() parameters: [];\r\n @Input() paramDigitDef = [];\r\n @Input() paramDigitData = [];\r\n @Input() paramSelections = [];\r\n @Input() disabledParams = false;\r\n @Input() loading = false;\r\n @Input() hideRepeatExecution = false;\r\n @Output() endExecution = new EventEmitter();\r\n\r\n constructor(\r\n public poI18nService: PoI18nService,\r\n public rpwService: TotvsScheduleExecutionService,\r\n public poNotification: PoNotificationService) {\r\n }\r\n\r\n executionTypeOptions: Array<PoRadioGroupOption>;\r\n frequencyOptions: Array<PoRadioGroupOption>;\r\n frequencyTypeOptions: Array<PoRadioGroupOption>;\r\n weeklyOptions: Array<PoRadioGroupOption>;\r\n zoomRpwServiceColumns: Array<PoLookupColumn>;\r\n model: ScheduleParameters;\r\n private jsonObject: any = {};\r\n\r\n literals: any = {};\r\n\r\n ngOnInit() {\r\n /* VERIFICAR COMO FICARÁ A TRADUÇÃO\r\n forkJoin(\r\n this.poI18nService.getLiterals(),\r\n this.poI18nService.getLiterals({ context: 'generalRpw' })\r\n ).subscribe(literals => {\r\n literals.map(item => Object.assign(this.literals, item) );\r\n this.setupComponents();\r\n });*/\r\n\r\n this.setupComponents();\r\n }\r\n\r\n setupComponents() {\r\n this.executionTypeOptions = [\r\n { label: 'Executar Hoje', value: 1 },\r\n { label: 'Agendar Execução', value: 2 }\r\n ];\r\n\r\n this.frequencyOptions = [\r\n { label: 'Uma vez no dia', value: 'no' },\r\n { label: 'Várias vezes no dia', value: 'yes' }\r\n ];\r\n\r\n this.frequencyTypeOptions = [\r\n { label: 'Hora(s)', value: 'hour' },\r\n { label: 'Minuto(s)', value: 'minute' }\r\n ];\r\n\r\n this.weeklyOptions = [\r\n { label: 'Domingo', value: 'Sunday' },\r\n { label: 'Segunda', value: 'Monday' },\r\n { label: 'Terça', value: 'Tuesday' },\r\n { label: 'Quarta', value: 'Wednesday' },\r\n { label: 'Quinta', value: 'Thursday' },\r\n { label: 'Sexta', value: 'Friday' },\r\n { label: 'Sábado', value: 'Saturday' }\r\n ];\r\n\r\n this.zoomRpwServiceColumns = [\r\n { property: 'code', label: 'Servidor', type: 'string', width: '20%' },\r\n { property: 'name', label: 'Descrição', type: 'string', width: '80%' }\r\n ];\r\n\r\n this.model = new ScheduleParameters();\r\n this.model.executionType = 1;\r\n this.model.repeatType = 1;\r\n this.model.repeatExecution = false;\r\n }\r\n\r\n public setScheduleParameters(schParam: IScheduleParameters) {\r\n if (!schParam) { return; }\r\n this.model = schParam;\r\n }\r\n\r\n public getScheduleParameters(): IScheduleParameters {\r\n return this.model;\r\n }\r\n\r\n fieldRpwServiceFormat(value) {\r\n return `${value.code} - ${value.name}`;\r\n }\r\n\r\n isExecutionSchedule(): boolean {\r\n return (this.model.executionType === 2);\r\n }\r\n\r\n isRepeatExecution(): boolean {\r\n return this.model.repeatExecution;\r\n }\r\n\r\n isFrenquency(): boolean {\r\n return (this.model.frequency === 'yes');\r\n }\r\n\r\n changeRepeatExecution() {\r\n const date = new Date();\r\n\r\n if (!this.model.execAppointHourInit) { this.model.execAppointHourInit = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`; }\r\n if (!this.model.execAppointHourFinal) { this.model.execAppointHourFinal = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`; }\r\n this.model.selectWeeklys = [];\r\n this.model.dayOfMonth = 0;\r\n this.model.frequency = 'no';\r\n this.model.frequencyType = 'hour';\r\n this.model.frequencyValue = 0;\r\n }\r\n\r\n changeExecutionType() {\r\n const date = new Date();\r\n\r\n this.model.execAppointDate = date;\r\n this.model.execAppointHour = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;\r\n }\r\n\r\n changeTypeFrequency() {\r\n }\r\n\r\n getActiveTab(codTab: number) {\r\n return (this.model.repeatType === codTab);\r\n }\r\n\r\n setActiveTab(codTab: number) {\r\n this.model.repeatType = codTab;\r\n }\r\n\r\n addZero(num: number): string {\r\n let str = `${num}`;\r\n if (num < 10) { str = `0${num}`; }\r\n return str;\r\n }\r\n\r\n executeSchedule() {\r\n if (this.disabledParams) { return; }\r\n if (!this.validate()) { return; }\r\n\r\n this.createJobScheduleParameters();\r\n\r\n this.model.listExecutionID = [];\r\n\r\n // Executa hoje ou agendada\r\n this.rpwService.createExecution(this.jsonObject, this.loading).subscribe({\r\n next: (response: object) => {\r\n this.finishSchedule(true, true, response);\r\n },\r\n error: () => {\r\n this.finishSchedule(true, false, null);\r\n }\r\n });\r\n }\r\n\r\n createJobScheduleParameters(): void {\r\n let idxParam: number;\r\n\r\n this.jsonObject = {};\r\n this.jsonObject.status = 'active';\r\n this.jsonObject.processID = this.programName;\r\n this.jsonObject.recurrent = this.model.repeatExecution;\r\n this.jsonObject.executionParameter = {};\r\n\r\n if (this.model.executionType === 1) {\r\n const date = new Date();\r\n this.jsonObject.firstExecution = `${date.getFullYear()}-${(date.getMonth() + 1)}-${date.getDate()}T${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:00.000Z`;\r\n }\r\n if (this.model.executionType === 2) {\r\n this.jsonObject.firstExecution = `${this.model.execAppointDate}T${this.model.execAppointHour}:00.000Z`;\r\n }\r\n\r\n this.jsonObject.executionParameter.parametros = [];\r\n\r\n this.jsonObject.executionParameter.parametros[0] = { chave: 'rpwServer', valor: this.model.executionServer };\r\n this.jsonObject.executionParameter.parametros[1] = { chave: 'RPW_PROGRAM', valor: this.externalName };\r\n this.jsonObject.executionParameter.parametros[2] = { chave: 'RPW_PRG_EMS5', valor: this.programEMS5 ? 'yes' : 'no' };\r\n this.jsonObject.executionParameter.parametros[3] = { chave: 'RPW_PRG_ESTILO', valor: this.programStyle };\r\n this.jsonObject.executionParameter.parametros[4] = { chave: 'RPW_PRG_VERS', valor: this.programVersion };\r\n\r\n idxParam = 4;\r\n\r\n if (this.parameters && this.parameters.length > 0) {\r\n idxParam++;\r\n this.jsonObject.executionParameter.parametros[idxParam] = {};\r\n this.jsonObject.executionParameter.parametros[idxParam].parametros_negocio = this.parameters;\r\n }\r\n\r\n if (this.paramDigitDef && this.paramDigitDef.length > 0) {\r\n idxParam++;\r\n this.jsonObject.executionParameter.parametros[idxParam] = {};\r\n this.jsonObject.executionParameter.parametros[idxParam].param_digita_def = this.paramDigitDef;\r\n }\r\n\r\n if (this.paramDigitData && this.paramDigitData.length > 0) {\r\n idxParam++;\r\n this.jsonObject.executionParameter.parametros[idxParam] = {};\r\n this.jsonObject.executionParameter.parametros[idxParam].param_digita_dados = this.paramDigitData;\r\n }\r\n\r\n if (this.paramSelections && this.paramSelections.length > 0) {\r\n idxParam++;\r\n this.jsonObject.executionParameter.parametros[idxParam] = {};\r\n this.jsonObject.executionParameter.parametros[idxParam].selecoes = this.paramSelections;\r\n }\r\n }\r\n\r\n verifyRepeatExecution() {\r\n if (!this.model.repeatExecution) {\r\n this.poNotification.success('Agendamento realizado com sucesso !');\r\n this.endExecution.emit(this.model);\r\n return;\r\n }\r\n\r\n this.createRepeatExecutionParameters();\r\n\r\n // Executa a diária, semanal ou mensal\r\n this.rpwService.createExecution(this.jsonObject, this.loading).subscribe({\r\n next: (response: object) => {\r\n this.finishSchedule(false, true, response);\r\n },\r\n error: () => {\r\n this.finishSchedule(false, false, null);\r\n }\r\n });\r\n }\r\n\r\n createRepeatExecutionParameters(): void {\r\n if (this.model.repeatType === 1) {\r\n this.jsonObject.daily = {\r\n hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),\r\n minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm')\r\n };\r\n }\r\n\r\n if (this.model.repeatType === 2) {\r\n this.jsonObject.weekly = {\r\n hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),\r\n minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm'),\r\n daysOfWeek: this.model.selectWeeklys\r\n };\r\n }\r\n\r\n if (this.model.repeatType === 3) {\r\n this.jsonObject.monthly = {\r\n hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),\r\n minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm'),\r\n day: this.model.dayOfMonth\r\n };\r\n }\r\n\r\n if (this.isFrenquency()) {\r\n this.jsonObject.rangeExecutions = {\r\n frequency: {\r\n type: this.model.frequencyType,\r\n value: this.model.frequencyValue\r\n },\r\n rangeLimit: {\r\n hour: this.getHourOrMinute(this.model.execAppointHourFinal, 'h'),\r\n minute: this.getHourOrMinute(this.model.execAppointHourFinal, 'm')\r\n }\r\n };\r\n }\r\n }\r\n\r\n finishSchedule(firstSchedure: boolean, isOK: boolean, response: object) {\r\n if (!isOK) {\r\n this.endExecution.emit(this.model);\r\n return;\r\n }\r\n\r\n if (!response['jobScheduleID']) {\r\n if (firstSchedure) {\r\n this.verifyRepeatExecution();\r\n } else {\r\n this.poNotification.success('Agendamento realizado com sucesso !');\r\n this.endExecution.emit(this.model);\r\n }\r\n return;\r\n }\r\n\r\n this.rpwService.getExecutionByJobScheduleID(response['jobScheduleID'], this.loading).subscribe({\r\n next: (response: IExecutionStatus) => {\r\n if (response) {\r\n this.model.listExecutionID.push(response.executionID);\r\n }\r\n if (firstSchedure) {\r\n this.verifyRepeatExecution();\r\n } else {\r\n this.poNotification.success('Agendamento realizado com sucesso !');\r\n this.endExecution.emit(this.model);\r\n }\r\n },\r\n error: () => {\r\n if (firstSchedure) {\r\n this.verifyRepeatExecution();\r\n }\r\n }\r\n });\r\n }\r\n\r\n getHourOrMinute(value: string, type: string): number {\r\n if (type === 'h') { return +value.substring(0, 2); }\r\n if (type === 'm') { return +value.substring(3, 6); }\r\n }\r\n\r\n compareHour(hourInit: string, hourFinal: string): boolean {\r\n if (hourInit === hourFinal) { return false; }\r\n if (this.getHourOrMinute(hourInit, 'h') < this.getHourOrMinute(hourFinal, 'h')) { return true; }\r\n if (this.getHourOrMinute(hourInit, 'm') > this.getHourOrMinute(hourFinal, 'm')) { return false; }\r\n return true;\r\n }\r\n\r\n validate(): boolean {\r\n\r\n if (!this.scheduleExecutionForm.valid) {\r\n this.poNotification.error('Verifique as inconsistências em tela.');\r\n return false;\r\n }\r\n\r\n if (!this.model.executionServer) {\r\n this.poNotification.error('Servidor de Execução não foi informado.');\r\n return false;\r\n }\r\n\r\n if (this.isExecutionSchedule() && (!this.model.execAppointDate || !this.model.execAppointHour)) {\r\n this.poNotification.error('Informar a data e a hora para agendamento da execução.');\r\n return false;\r\n }\r\n\r\n if (this.model.repeatExecution) {\r\n if (!this.model.execAppointHourInit) {\r\n this.poNotification.error('Informar a hora de início para a execução.');\r\n return false;\r\n }\r\n\r\n if (this.model.repeatType === 2 && (this.model.selectWeeklys.length === 0)) {\r\n this.poNotification.error('Informar os dias da semana para a execução.');\r\n return false;\r\n }\r\n\r\n if (this.model.repeatType === 3 && (!this.model.dayOfMonth)) {\r\n this.poNotification.error('Informar o dia para a execução.');\r\n return false;\r\n }\r\n\r\n if (this.isFrenquency()) {\r\n if (!this.compareHour(this.model.execAppointHourInit, this.model.execAppointHourFinal)) {\r\n this.poNotification.error('Hora Fim deve ser maior que Hora Início.');\r\n return false;\r\n }\r\n\r\n if (this.model.frequencyValue === 0) {\r\n this.poNotification.error('Informar a frequência de execução (A cada hora/minuto).');\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n","<form #scheduleExecutionForm=\"ngForm\">\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-radio-group\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionType\"\r\n p-label=\"Data de Execução\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionType\"\r\n [p-options]=\"executionTypeOptions\"\r\n (p-change)=\"changeExecutionType()\">\r\n </po-radio-group>\r\n\r\n @if (isExecutionSchedule()) {\r\n <po-datepicker\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"model.execAppointDate\"\r\n p-label=\"Agendar para\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointDate\">\r\n </po-datepicker>\r\n }\r\n\r\n @if (isExecutionSchedule()) {\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHour\"\r\n p-label=\"Hora\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHour\">\r\n </po-input>\r\n }\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-lookup\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionServer\"\r\n p-label=\"Servidor de Execução\"\r\n p-placeholder=\"Servidor de Execução\"\r\n [p-columns]=\"zoomRpwServiceColumns\"\r\n [p-field-format]=\"fieldRpwServiceFormat\"\r\n [p-filter-service]=\"rpwService\"\r\n p-field-label=\"name\"\r\n p-field-value=\"code\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionServer\">\r\n </po-lookup>\r\n </div>\r\n\r\n @if (!hideRepeatExecution) {\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-switch\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"repeatExecution\"\r\n p-label=\"Repetir ocorrência ?\"\r\n p-label-off=\"Não\"\r\n p-label-on=\"Sim\"\r\n [(ngModel)]=\"model.repeatExecution\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"changeRepeatExecution()\">\r\n </po-switch>\r\n </div>\r\n }\r\n\r\n @if (isRepeatExecution()) {\r\n <div class=\"po-row\">\r\n <po-tabs>\r\n <po-tab\r\n p-label=\"Diária\"\r\n [p-active]=\"getActiveTab(1)\"\r\n (p-click)=\"setActiveTab(1)\">\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyDaily\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitDaily\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n @if (isFrenquency()) {\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalDaily\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueDaily\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeDaily\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n }\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab\r\n p-label=\"Semanal\"\r\n [p-active]=\"getActiveTab(2)\"\r\n (p-click)=\"setActiveTab(2)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-multiselect\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"selectWeeklys\"\r\n p-label=\"Dias da Semana\"\r\n p-placeholder=\"Escolha os dias da semana\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.selectWeeklys\"\r\n [p-options]=\"weeklyOptions\">\r\n </po-multiselect>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyWeekly\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitWeekly\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n \r\n @if (isFrenquency()) {\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n }\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab\r\n p-label=\"Mensal\"\r\n [p-active]=\"getActiveTab(3)\"\r\n (p-click)=\"setActiveTab(3)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-number\r\n class=\"po-sm-3 po-md-3 po-lg-3 po-xl-3\"\r\n name=\"dayOfMonth\"\r\n p-label=\"Dia do mês\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"2\"\r\n p-min=\"0\"\r\n p-max=\"31\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.dayOfMonth\">\r\n </po-number>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyMonthly\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitMonthly\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n @if (isFrenquency()) {\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n }\r\n </div>\r\n </po-tab>\r\n </po-tabs>\r\n </div>\r\n }\r\n\r\n <div class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\" style=\"padding-top: 15px;\">\r\n <po-button\r\n style=\"float: right;\"\r\n p-label=\"Gerar Agendamento RPW\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"executeSchedule()\">\r\n </po-button>\r\n </div>\r\n</form>\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnChanges, Output, QueryList, Renderer2, SimpleChanges, ViewChildren } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-totvs-map',\r\n templateUrl: './totvs-map.component.html',\r\n styleUrls: ['./totvs-map.component.css'],\r\n standalone: false\r\n})\r\nexport class TotvsMapComponent implements AfterViewInit, OnChanges {\r\n literals: any = {};\r\n\r\n @ViewChildren(\"anchorStateElement\") mapLinks: QueryList<ElementRef>;\r\n\r\n @Input({ required: false }) enabledStates!: string[];\r\n @Input({ required: false }) initialSelectedState!: string;\r\n @Output() selectedStateEvent = new EventEmitter<string>();\r\n\r\n constructor(\r\n private renderer: Renderer2\r\n ) { }\r\n\r\n ngAfterViewInit(): void {\r\n this.initStyleOnState();\r\n }\r\n\r\n ngOnChanges(simpleChanges: SimpleChanges) {\r\n this.initStyleOnState();\r\n }\r\n\r\n enableState(parentElement: HTMLElement, stateElement: Element): void {\r\n for (let i = 0; i < parentElement.children.length - 1; i++) {\r\n this.renderer.removeClass(parentElement.children[i], \"disabledState\");\r\n this.renderer.removeClass(parentElement.children[i], \"disableEvents\");\r\n }\r\n this.renderer.removeClass(stateElement, \"disableEvents\");\r\n }\r\n\r\n disableState(parentElement: HTMLElement, stateElement: Element): void {\r\n this.removeClassStyles(parentElement, \"defaultState\");\r\n for (let i = 0; i < parentElement.children.length - 1; i++) {\r\n this.renderer.addClass(parentElement.children[i], \"disabledState\");\r\n this.renderer.addClass(parentElement.children[i], \"disableEvents\");\r\n }\r\n this.renderer.addClass(stateElement, \"disableEvents\");\r\n }\r\n\r\n removeClassStyles(anchorElement: HTMLElement, className: string) {\r\n for (let i = 0; i < anchorElement.children.length; i++) {\r\n this.renderer.removeClass(anchorElement.children[i], className);\r\n this.renderer.removeClass(anchorElement.children[i], className + 'Circle');\r\n }\r\n }\r\n\r\n applyStyleOnState(anchorElement: HTMLElement, originalStyles: boolean): void {\r\n const stateStyle: string = originalStyles ? \"defaultState\" : \"selectedState\";\r\n\r\n if (originalStyles) {\r\n this.removeClassStyles(anchorElement, 'selectedState');\r\n } else {\r\n this.removeClassStyles(anchorElement, 'defaultState');\r\n }\r\n\r\n this.renderer.addClass(anchorElement.children[0], stateStyle)\r\n if (anchorElement.children.length > 2) { // Estados pequenos com o círculo\r\n this.renderer.addClass(anchorElement.children[1], stateStyle + 'Circle');\r\n }\r\n\r\n this.renderer.addClass(anchorElement, 'stateWithText');\r\n this.renderer.addClass(anchorElement.children[anchorElement.children.length - 1], 'text')\r\n }\r\n\r\n initStyleOnState(): void {\r\n this.mapLinks?.forEach((anchor: ElementRef) => {\r\n const anchorElement: HTMLElement = anchor.nativeElement;\r\n const stateElement: Element = anchorElement.children[anchorElement.children.length - 1];\r\n\r\n if (this.enabledStates && !this.enabledStates.includes(stateElement.innerHTML)) {\r\n this.disableState(anchorElement, stateElement);\r\n } else {\r\n this.enableState(anchorElement, stateElement);\r\n }\r\n\r\n this.applyStyleOnState(anchor.nativeElement, true);\r\n });\r\n\r\n this.selectedState(this.initialSelectedState);\r\n }\r\n\r\n selectedState(state: string): void {\r\n if (!state) { return; }\r\n if (!this.mapLinks) { return; }\r\n\r\n this.mapLinks?.forEach((anchor: ElementRef) => {\r\n const anchorElement: HTMLElement = anchor.nativeElement;\r\n const stateElement: Element = anchorElement.children[anchorElement.children.length - 1];\r\n this.applyStyleOnState(anchorElement, stateElement.innerHTML !== state);\r\n });\r\n this.selectedStateEvent.emit(state);\r\n }\r\n}\r\n","<div>\r\n <svg version=\"1.1\" id=\"svg-map\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" width=\"450px\" height=\"460px\" viewBox=\"0 0 450 460\" enable-background=\"new 0 0 450 460\" xml:space=\"preserve\">\r\n <g>\r\n <a #anchorStateElement (click)=\"selectedState('TO')\">\r\n <path id=\"teste\" stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M289.558,235.641\r\n c16.104,0.575,44.973-31.647,44.835-45.259c-0.136-13.612-17.227-58.446-22.349-66.088c-5.122-7.628-37.905,2.506-37.905,2.506\r\n S234.852,233.695,289.558,235.641z\"></path>\r\n <text transform=\"matrix(1 0 0 1 287.0137 188.3208)\" fill=\"#FFFFFF\">TO</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('BA')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M313.276,197.775\r\n c2.084-2.739,3.506-7.012,6.464-8.764c1.641-0.973,3.232-4.684,4.271-5.163c2.304-1.014,12.161-25.143,20.706-22.513\r\n c1.095,0.342,29.881,3.478,32.153,7.532c2.246-0.506,17.582-8.804,25.829-4.999c9.172,4.246,11.225,20.679,11.2,20.843\r\n c0.107,0.328-0.823,5.765-0.985,5.929c-1.15,1-5.258-0.807-4.22,2.138c1.317,3.751,5.094,10.583,9.97,6.613\r\n c-3.669,6.574-6.846,16.022-13.966,17.747c-5.808,1.411-4.605,13.421-5.178,18.037c-0.465,3.75,0.192,8.448,1.014,12.117\r\n c1.148,4.959-0.821,8.6-1.808,13.42c-0.822,4.162-0.219,8.299-0.987,12.297c-0.271,1.286-4.407,5.723-5.559,7.148\r\n c-1.616-1.426-63.952-37.248-73.1-36.265c1.149-3.738,2.438-9.559-0.741-12.723c-8.625-8.572-0.135-19.335-0.162-19.432\r\n c-0.546-1.725-5.396-6.079-0.026-7.175c-3.175,0.959-1.944-4.027,0.875-3.012C316.726,200.733,314.044,200.527,313.276,197.775z\"></path>\r\n <text transform=\"matrix(1 0 0 1 359.7324 210.1221)\" fill=\"#FFFFFF\">BA</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('SE')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M408.561,191.735\r\n c0.521-1.505,2.465-0.725,3.533-0.794c2.273-0.164,0.494-2.738,1.095-3.778c2.026-3.793-2.738-5.999-1.998-10.408\r\n c4.024,1.931,9.448,3.397,12.408,6.89c1.343,1.533,5.504,2.656,5.832,4.847c-6.822,0.384-6.901,8.819-11.942,11.572\r\n C413.545,202.212,407.055,193.721,408.561,191.735z\"></path>\r\n <path class=\"circle\" d=\"M417.324,182.854c6.214,0,11.266,5.035,11.266,11.262c0,6.208-5.052,11.261-11.266,11.261\r\n c-6.238,0-11.258-5.053-11.258-11.261C406.063,187.89,411.084,182.854,417.324,182.854z\"></path>\r\n <text transform=\"matrix(1 0 0 1 408.9121 198.6689)\" fill=\"#FFFFFF\">SE</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PE')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M373.011,167.238\r\n c2.709-0.795,6.218-14.106,8.325-15.106c4.136-1.986,17.255-1.437,17.8,4.903c-0.437-0.068,8.189-2.273,7.479-1.466\r\n c1.7-0.711,10.518-4.723,12.599-4.82c0.274-0.013,4.603,0.905,3.068,2.315c-0.464,0.439,4.219,3.698,10.789,3.45\r\n c4.66-0.176,5.179-3.436,8.627-4.409c5.89-1.67,4.737,3.698,5.589,6.943c-1.182,2.684-1.646,5.586-2.74,8.285\r\n c-1.533,3.792-9.804,9.791-13.39,12.119c-7.287,4.778-21.802-4.067-22.762-5.67c-0.602-0.985-2.55-5.121-3.178-5.107\r\n c-0.629,0.356-1.04,0.861-1.287,1.519c-0.904-0.013-7.256-3.533-7.502-4.655c-4.769-1.151-5.425,6.108-8.957,6.19\r\n c0.219,0.108-8.244,6.681-7.506,3.314C383.556,170.4,374.241,168.566,373.011,167.238z\"></path>\r\n <text transform=\"matrix(1 0 0 1 401.3984 165.8003)\" fill=\"#FFFFFF\">PE</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('AL')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M413.953,169.018\r\n c3.78,3.313,9.424,5.505,12.547,5.491c3.229-0.013,5.009-3.328,7.421-4.794c1.177-0.712,10.297-1.93,9.174,1.042\r\n c-1.807,4.848-7.122,8.585-10.024,12.789c-2.792,2-3.423,7.093-6.354,1.864c-3.259,0.424-3.722-4.424-6.957-4.477\r\n c-3.668-2.261-7.998-3.769-11.201-6.342C410.615,172.646,412.751,171.359,413.953,169.018z\"></path>\r\n <path class=\"circle\" d=\"M436.423,168.763c6.236,0,11.258,5.054,11.258,11.278c0,6.207-5.02,11.259-11.258,11.259\r\n c-6.241,0-11.263-5.052-11.263-11.259C425.16,173.816,430.182,168.763,436.423,168.763z\"></path>\r\n <text transform=\"matrix(1 0 0 1 429.7891 183.895)\" fill=\"#FFFFFF\">AL</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('RN')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M404.698,138.795\r\n c2.383-4.027,6.574-6.123,8.49-11.149c1.973-5.107,3.834-5.818,8.764-4.642c5.041,1.207,9.339,0.837,14.57,1.671\r\n c7.534,1.193,6.848,10.968,9.206,16.516c-1.919,1.096-13.972,0.521-15.064-1.657c-1.041-2.067-2.904,7.107-5.094,7.3\r\n c1.532-5.847-12.654,1.78-5.424-8.683c2.545-3.67-6.302-0.808-6.711,0.725C410.121,144.013,407.217,139.151,404.698,138.795z\"></path>\r\n <path class=\"circle\" d=\"M430.827,107.798c6.241,0,11.261,5.039,11.261,11.261c0,6.224-5.02,11.261-11.261,11.261\r\n c-6.209,0-11.26-5.037-11.26-11.261C419.567,112.837,424.618,107.798,430.827,107.798z\"></path>\r\n <text transform=\"matrix(1 0 0 1 422.541 123.9009)\" fill=\"#FFFFFF\">RN</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('CE')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M372.379,104.409\r\n c0.437-1.368,2.961-3.627,1.043-5.025c12.106-1.328,17.581-0.849,27.66,6.723c4.026,3.054,6.822,5.574,10.571,9.147\r\n c1.317,1.273,7.614,4.313,7.914,6.164c-0.054-0.316-5.396,3.696-5.997,5.217c-1.066,2.684-2.659,6.093-4.3,8.298\r\n c0.025-0.055-6.903,3.957-3.532,4.217c-4.41,3.821-1.015,8.135-0.797,11.517c0.196,2.767-4.38,7.587-6.765,5.422\r\n c-2.244-1.999-3.998-5.711-7.779-5.094c-1.998,0.329-5.476,2.189-7.612,0.479c-2.52-2.054,3.669-5.162-0.545-7.354\r\n c-6.987-3.615-1.264-15.393-6.684-20.239c-3.504-3.136,1.753-7.313,0.109-10.749C374.952,111.68,373.694,105.244,372.379,104.409\r\n C373.035,102.314,374.815,105.971,372.379,104.409z\"></path>\r\n <text transform=\"matrix(1 0 0 1 386.8379 129.0347)\" fill=\"#FFFFFF\">CE</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PI')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M320.781,185.478\r\n c2.465-5.149-7.505-20.801-7.505-20.801s47.354-65.868,54.285-66.841c0.299-0.042,6.243,1.768,6.463,2.219\r\n c0.438,0.863-0.821,5.244-0.685,6.587c0.275,2.629,2.879,6.587,2.328,8.684c-1.15,4.736-1.863,6.134,1.369,9.901\r\n c2.794,3.245,0.325,10.16,2.544,14.269c-1.778,4.23,4.768,3.656,3.943,7.613c-0.655,3.163-5.424,7.655-1.176,10.312\r\n c0.274,4.642-4.685,4.983-6.79,7.818c-2.631,2.835-5.535,5.013-7.999,7.888c-0.55,0.671-8.821,4.096-9.998,4.082\r\n c0.302-0.301-17.665-6.449-11.967,2.354c2.463,3.808-1.505,5.56-3.177,8.778c-0.633,2.164-5.836,0.958-7.836,3.205\r\n C328.176,198.748,327.409,180.727,320.781,185.478z\"></path>\r\n <text transform=\"matrix(1 0 0 1 355.127 158.1045)\" fill=\"#FFFFFF\">PI</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('MA')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M288.845,127.827\r\n c4.108-2.726,31.195-48.985,31.386-50.395c1.235,0.397,6.084,7.435,7.562,5.025c0.493,0.013-0.328,2.15-0.547,2.396\r\n c-0.054-0.135,2.189-2.286,2.52-2.436c0.521-0.233,1.948,1.903,3.451-0.726c5.642,1.575,1.314,14.31,9.121,11.694\r\n c-1.147,0.384,1.452,0.74,0.848,1.905c5.095-6.587,8.488-0.027,15.337,1.491c2.025,0.466,6.243,0.575,8.162,0.207\r\n c3.808-0.823-2.082,6.847-2.082,6.887c-1.369,2.986-5.041,1.713-6.818,5.683c-0.684,1.549-3.506,4.327-3.042,6.148\r\n c0.494,1.781,2.081,2.863,0.274,4.629c0.603,2.793,3.066,7.109-0.385,9.12c-4.601,4.383,2.304,7.52,1.316,11.598\r\n c-0.9,3.726-6.244,5.725-9.147,2.78c-4.847-0.11-6.872,3.821-10.406,6.45c-2.74,2.041-8.793,2.493-10.327,5.642\r\n c-1.918,3.929-3.699,8.763-5.341,12.79c-1.699,4.204,6.383,18.762-4.328,15.611c-0.932-0.273-3.396-4.725-3.396-5.738\r\n c-0.081-3.739-2.738-4.176-4.821-7.477c0.356-3.025,2.466-6.929,4.766-8.052c3.342-1.63,1.919-6.629-2.466-4.465\r\n c-3.505,1.726-4.709-2.794-6.958-5.287c0.548,0.59-3.064-4.696-3.146-3.697c0.19-1.89,2.876-5.833,3.341-8.448\r\n c0.575-3.259,0.52-6.764-0.521-10.105c-0.63-2.068-4.656-4.521-6.518-4.437c-1.289,0.287-2.443,0-3.427-0.878\r\n C290.983,125.675,290.983,128.044,288.845,127.827z\"></path>\r\n <text transform=\"matrix(1 0 0 1 318.2754 126.7036)\" fill=\"#FFFFFF\">MA</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('AP')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M225.198,39.089\r\n c3.274,1.165,3.985-1.315,6.572-1.74c3.616-0.603,5.683,2.725,9.037,2.067c4.055-0.78,7.093-8.025,7.314-11.598\r\n c4.492-3.534,5.503-11.258,9.42-14.68c6.055,4.258,6.11,15.788,7.589,22.485c-0.164,0.083,6.57,7.998,7.944,8.682\r\n c3.396,1.657,3.366,6.203,0.078,9.34c-3.777,3.587-7.449,34.275-7.449,34.275h-46.489c0,0,0.932-50.366,0-51.449\r\n C221.814,36.458,223.334,38.417,225.198,39.089z\"></path>\r\n <text transform=\"matrix(1 0 0 1 245.9023 52.6099)\" fill=\"#FFFFFF\">AP</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PA')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M173.378,50.619\r\n c2.259,2.63,5.629-4.478,7.901-3.82c3.19,0.918,1.478-1.108,5.026-1.752c1.931,0.806,3.096,0.273,3.519-1.631\r\n c0.535-1.26,1.453-1.726,2.725-1.384c1.768-1.684,13.558,3.603,14.68,0.384c0.629-1.821-4.287-5.709-0.302-6.997\r\n c1.643-0.533,6.012,0.808,8.75-0.068c3.986-1.288,4.876,2.684,4.382,6.066c0.631,3.587,13.145,5.766,12.982,7.97\r\n c3.589-1.518,5.354,12.763,7.105,14.447c0.357,4.26,6.304,8.585,7.07,12.544c0.628,3.396,7.065,3.616,8.213,0.095\r\n c2.578-8.133,9.696-10.022,13.475-16.651c4.603-8.038,3.725,3.752,8.955,1.067c2.11,0.411,2.876,3.629,4.574,4.724\r\n c3.18,2.027,7.779,0.974,10.572,3.013c-4.192,4.382,8.188,3.752,9.231,3.875c4.682,0.575,8.104,2.383,11.855,3.629\r\n c-0.164-0.069,4.792,0.52,5.178,1.245c2.026,3.767-4.904,19.214-6.382,21.486c-1.121,1.713-2.932,4.985-3.727,6.834\r\n c-0.902,2.026-4.764,7.313-4.655,9.229c-1.888,0.972-2.248,4.835-5.012,4.328c-3.096,3.026-8.187,4.999-10.27,8.956\r\n c2.057,0.781,8.325,1.041,5.311,4.272c-0.821,0.877-1.094,5.533-1.615,6.833c-0.575,1.384-4.464,4.779-6.108,5.34\r\n c-4.107,1.426-2.736,4.135-4.271,7.655c-0.933,2.054-0.546,3.491,1.756,4.339c-0.083,2.835-0.988,5.575-2.385,7.998\r\n c-3.041,5.245-9.009,9.818-10.079,16.27c-3.261,3.408-87.066-1.22-87.464-2.644c-1.423-5.012,1.508-24.006-2.808-27.88\r\n c-0.19-2.082-29.893-6.299-30.714-8.081C150.016,140.479,173.173,58.561,173.378,50.619z M319.139,77.664\r\n C319.302,76.912,319.74,78.76,319.139,77.664z\"></path>\r\n <text transform=\"matrix(1 0 0 1 232.7725 122.5137)\" fill=\"#FFFFFF\">PA</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('RR')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M113.18,24.107\r\n c-0.972-2.753-7.861-5.889-6.999-8.984c0.068-0.232,13.229,6.053,12.79,2.808c0.398,1.329,1.219,1.889,2.439,1.685\r\n c1.889-1.301,7.148,4.204,8.216,1.889c0.438-0.959-1.657-3.753,0.74-3.848c1.026,0.438,1.534,0.164,1.52-0.822\r\n c0.835-1.752,3.575,0.219,4.793,0.083c0.767-1.056,10.625-3.026,9.037-5.094c1.37,0.438,4.574,0.808,4.63-1.547\r\n c4.546-2.054,1.15-4.409,2.644-6.354c2.177-2.82,9.791,0.809,7.327,5.738c-1.972,3.93,7.121,4.027,5.724,9.366\r\n c-0.452,1.686-2.479,2.724-3.423,3.971c-1.179,1.546-1.836,9.243-1.356,11.53c1.041,4.889,3.231,8.695,6.134,12.16\r\n c1.712,2.027,5.614,2.261,5.724,4.369c0.164,2.945,1.165,6.177,0.329,9.092c-1.547,5.424-36.618,30.471-36.618,30.471\r\n s-12.517-52.736-20.335-54.063C115.261,36.417,111.523,25.682,113.18,24.107z\"></path>\r\n <text transform=\"matrix(1 0 0 1 136.2939 42.3862)\" fill=\"#FFFFFF\">RR</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('AM')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M10.078,136.412\r\n c1.15-4.972,4.258-10.394,8.215-13.105c4.41-3.027,7.656-5.71,13.105-6.082c2.165-0.149,10.216-5.75,11.983-2.984\r\n c3.711,5.765,4.998-3.739,5.574-7.025c1.726-9.667,3.697-19.322,4.86-29.086c-0.342-1.356-2.013-6.231-2.833-7.163\r\n c-1.453-1.616-4.287-2.122-4.768-4.544c-0.272-1.452-0.574-7.258,1.109-8.121c3.494-1.768,6.547-0.042,9.737-0.89\r\n c-2.561-4.053,0.302-4.327-5.532-5.135c-3.438-0.466-3.971-2.466-2.738-6.368c1.053-3.3,15.898-1,19.088-1.396\r\n c-1.534,0.178-1.11-2.479-0.042-2.616c1.274-0.165,1.576,2.684,3.165,0.998c1.286-1.395,3.189-2.915,4.6-3.751\r\n c2.438-1.45,4.533,8.217,4.465,9.833c-0.041,0.78-0.137,2.438,1.177,2.246c3.012-0.466,4.219,2.849,7.273,4.231\r\n c3.778,1.713,3.929-1.355,7.023-2.068c4.301-0.985,0.711,3.396,2.383,3.793c1.589,0.385,3.806-4.969,4.821-5.572\r\n c0.93-0.533,3.725-0.753,4.846-1.602c3.013-2.245,1.933-1.686,3.492-1.206c3.478,1.041,2.233-8.367,6.491-7.066\r\n c1.822-0.466,3.643-2.34,5.533-2.423c1.041-0.043,6.066,2.287,6.544,3.147c0.589,1.465,0.316,2.795-0.793,3.986\r\n c1.575,1.425,2.698,3.149,3.355,5.162c0.904,2.862-1.286,6.807,0.588,9.299c-0.22,6.655,4.808,7.887-0.396,12.597\r\n c0.192-0.178,6.711,7.067,7.121,8.039c0.971-0.711,4.066,0.849,4.381,1.535c-1.658-3.629,0.547-17.09,6.628-10.915\r\n c7.203,7.327,5.491-3.615,9.148-8.627c2.834-3.875,14.597-3.136,14.077,3.246c-1.082,3.273,6.271,14.256,9.667,11.436\r\n c2.26,5.737,6.889,4.285,10.407,8.051c5.094,5.464,4.37,3.396,11.313,2.848c-2.259,3.602-3.425,4.808-5.272,8.86\r\n c-3.149,6.862-6.15,13.776-9.204,20.678c-2.437,5.505-14.843,23.471-11.105,28.442c4.806,6.395,9.339,30.183,11.324,29.934\r\n c-6.162-0.26-48.079-10.625-51.652-8.105c-1.453,1.013-53.626,10.503-55.9,10.819c-6.369,0.875-18.09-7.272-23.719-10.136\r\n c-8.601-4.381-16.61-8.981-26.088-11.05c-10.282-2.259-20.635-4.793-29.878-10.011C4.121,145.766,12.433,144.779,10.078,136.412z\"></path>\r\n <text transform=\"matrix(1 0 0 1 98.1406 119.0591)\" fill=\"#FFFFFF\">AM</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('AC')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M3.656,148.545\r\n c12.557,7.544,27.524,8.367,41.082,13.2c12.802,8.065,27.278,12.845,40.616,19.872c-2.834,1.205-7.587,4.382-9.983,6.395\r\n c-2.93,2.45-1.3,2.04-4.628,1.957c-2.93-0.069-3.957,4.615-7.203,5.259c-2.999,0.603-7.161-1.958-10.995-1.697\r\n c-1.905,0.136-11.969-0.056-12.64,0.603c0.313-3.642-0.385-7.299-0.165-10.941c0.096-1.439,1.998-6.533,1.245-7.451\r\n c-6.82,3.149-8.339,7.19-16.733,7.013c-2.136-0.042-2.562-2.492-3.081-4.001c-1.247-3.572-7.218-3.422-10.559-3.778\r\n c6.299-3.41-3.107-11.9-5.216-15.679c-0.52-0.918-3.588-4.655-3.629-5.957C1.642,150.174,6.612,151.968,3.656,148.545z\"></path>\r\n <text transform=\"matrix(1 0 0 1 47.7017 184.9355)\" fill=\"#FFFFFF\">AC</text>\r\n </a><a #anchorStateElement (click)=\"selectedState('RO')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M83.34,180.232\r\n c0.931-1.574,5.341-4.668,6.312-4.656c1.355-0.067,2.671,0.138,3.958,0.603c3.012,1.44,2.039-1.135,5.341-0.123\r\n c-1.274-2.287,3.793-2.943,2.86-0.315c3.068,0.247,2.725-4.683,6.668-5.12c4.438-0.508,5.054-0.646,7.122-4.534\r\n c0.135-0.246,2.628-5.519,2.752-5.025c2.191-6.491,14.585-0.878,15.638,3.355c0.397,1.615,1.834,3.137,3.642,4.369\r\n c1.246,0.862,6.327-3.999,6.134,1.314c-0.78,1.274,26.663,7.656,30.005,19.282c3.82,13.338-16.421,32.167-18.173,34.043\r\n c-4.464,1.191-2.039,1.726-6.6,0.15c-2.574-0.875-6.422,0.986-9.08,0.289c-2.409-0.645-3.041-3.957-5.86-4.683\r\n c-3.055-0.78-5.423-1.795-7.654-3.93c-4.041-3.876-8.983-2.645-14.475-3.808c-1.835-0.083-6.053-6.779-7.874-5.327\r\n c-1.821-0.438-5.381-9.094-3.397-11.204c0.124-1.67-0.26-3.204-1.163-4.627c-0.986-2.644,1.041-5.026,0.863-7.806\r\n c-0.384-6.081-1.028-1.986-3.382-1.903C94.336,180.686,85.957,181.671,83.34,180.232z\"></path>\r\n <text transform=\"matrix(1 0 0 1 118.1299 195.3193)\" fill=\"#FFFFFF\">RO</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('MT')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M142.237,173.962\r\n c4-0.316-1.888-6.452,5-5.738c7.914,0.808,16.295,0.328,24.279,0.218c1.629-0.013,8.902,1.288,7.395-1.833\r\n c-1.192-2.453,1.821-6.425,0.425-9.725c2.027-0.864,1.289-3.807,2.629-5.107c1.151-1.123,4.176,7.244,4.436,7.819\r\n c1.097,2.451,0.398,5.478,1.932,7.654c1.41,1.987,4.574,2.136,5.889,4.259c3.136,5.136,10.845,4.137,17.13,4.657\r\n c20.159,1.656,40.356,2.669,60.486,4.752c-3.48,7.763-3.999,14.912-5.122,22.552c-0.437,2.972,1.863,7.163-0.056,10.065\r\n c1.945,1.287,1.346,2.753,1.424,4.409c1.151,25.129-20.429,60.186-33.548,58.569c-10.914-1.369-45.3,0.058-46.928-3.396\r\n c-1.165-3.944-6.136-2.658-8.395-6.603c-2.301-4.051,0.684-6.299,0.737-10.242c-6.997,0.603-14.09-0.384-21.102-0.324\r\n c0.793-5.016-3.725-9.288-2.929-13.809c0.519-3.025,2.726-2.916,0.932-6.79c-1.206-2.589-0.261-4.247-0.699-6.382\r\n c-0.289-1.385-1.042-1.876-2.124-2.424c-2.931-1.493,1.246-2.48,2.056-3.644c1.726-2.465,3.299-11.394,6.545-11.612\r\n c1.219-1.999-1.781-3.643-1.465-5.56c-3.902-3.588,0.506-4.643,0.369-7.984c-0.151-3.627-9.654-3.944-12.256-3.751\r\n c-1.821,0.137-4.109,0.562-5.888-0.094c0.493-3.521-0.521-6.054-0.535-9.217c-0.014-2.286,1.288-5.177,0.835-7.45\r\n C143.581,176.618,141.937,174.714,142.237,173.962z\"></path>\r\n <text transform=\"matrix(1 0 0 1 200.0244 218.4175)\" fill=\"#FFFFFF\">MT</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('MS')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M183.198,294.536\r\n c2.136-4.464,3.177-9.394,5.312-13.61c1.712-3.344-4.067-7.587-2.423-9.807c0.027-0.026,2.738,3.641,3.917,3.725\r\n c3.204-1.534,4.807-2.272,6.984-5.228c2.615-3.59,10.832-3.014,14.051-0.305c1.259,1.041,3.068,2.107,4.668,2.574\r\n c3.163,0.934,5.889-3.013,8.559-0.873c3.724,2.982,4.626-1.862,7.86-3.509c1.945-1.012-1.768,8.465-2.244,7.781\r\n c2.463,0.959,4.285,0.901,6.82,0.959c3.504,0.081,1.805,1.205,2.436,3.339c0.466,1.564,28.948-5.997,29.416,0.578\r\n c0.302,3.837-0.987,61.813-0.987,61.813s-39.532,5.533-41.602,5.286c-3.889-0.492-3.587-3.231-8.063-0.933\r\n c-2.028,0.329-6.012,1.205-5.177-2.409c-2.013-4.354-0.111-14.625-4.849-17.088c-1.206-0.659-7.092-2.36-7.504-1.945\r\n c-1.699,1.777-3.739,1.562-6.121,1.121c-2.904,0.027-5.629-1.614-8.243-1.203c-4.178,0.656-0.603-2.986-1.645-3.535\r\n c0.932-2.847,1.411-9.912,0.453-11.856c-0.165-0.331-3.52-7.232-2.547-8.108C186.306,297.688,182.334,299.415,183.198,294.536z\"></path>\r\n <text transform=\"matrix(1 0 0 1 213.2939 306.7236)\" fill=\"#FFFFFF\">MS</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('GO')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M237.768,270.519\r\n c0.628-2.904,1.835-7.396,4.709-8.766c1.015-1.644,1.754-5.147,2.275-5.586c2.408-2.247,3.889-3.783,6.63-4.656\r\n c3.723-1.205,3.338-5.342,4.846-8.165c1.504-2.845,4.736-1.15,5.942-3.382c1.479-2.834,0.741-6.161,2.189-8.874\r\n c2.902-5.531,1.862-17.363,8.656-20.567c-4.878,7.641,3.698,4.971,7.201,9.449c2.273,1.738,2.164-1.822,2.71-3.055\r\n c1.618-3.533,2.878,2.247,4.52-1.533c0.413,0.37,4.136,5.765,3.427,5.601c-0.029-0.931,0.326-1.408,1.037-1.438\r\n c0.108,0.534,0.274,1.013,0.602,1.452c-0.602-0.261,9.697-0.095,8.82,1.534c0.36-0.657-0.602-3.11,0.221-3.438\r\n c1.039-0.411,3.971,1.368,6.351,0.438c1.045-0.397,7.889-2.807,7.671-3.683c0.767,0.905,1.262,2.67,2.85,1.286\r\n c-2.632,2.274-2.576,4.466,1.258,3.821c-1.861,1.438-2.846,4.341-2.382,6.547c0.357,1.643,3.752,5.973,3.478,6.751\r\n c-1.78,0.315,0.602,5.438-2.325,6.078c-3.181,0.701-3.973-5.53-4.3,0.688c-0.164,1.48-1.097,1.67-2.768,0.576\r\n c-3.288,0.327-0.549,2.19-1.121,3.888c-0.988,2.902,2.792,6.437-2.411,6.764c-3.586,0.219-2.682,1.341-2.682-2.739\r\n c-0.028-4.573-12.054-3.643-10.218,0.521c-4.901,6.355,12.05-0.326,9.668,6.355c-1.313,3.752,15.83,28.211,10.406,25.416\r\n c-1.944-0.986-50.804,10.271-49.982,12.105c-5.012-2.136-11.804-7.941-17.391-8.162c-0.438-2.189-3.618-1.284-5.095-1.533\r\n c-3.724-0.604,1.04-3.231,0.22-4.109c-1.89-1.916-4.382,1.756-3.588-3.012C239.602,274.627,237.055,273.038,237.768,270.519z\"></path>\r\n <text transform=\"matrix(1 0 0 1 266.9111 254.2139)\" fill=\"#FFFFFF\">GO</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PR')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M222.225,363.694\r\n c1.807-2.138,1.889-4.881,2.424-7.479c0.301-1.453,0.465-7.86,1.369-8.736c2.3-0.684,2.3-3.315,2.726-5.204\r\n c0.616-2.738,2.821-2.958,3.984-5.616c4.369-9.91,38.947-9.529,46.476-9.227c4.658,0.193,15.775,34.563,17.916,33.794\r\n c-1.728,2.19-5.754,8.929-8.41,8.984c-4.054,0.057-14.215,14.68-14.215,14.68s-37.329-12.05-40.287-11.285\r\n c-3.875-1.449-2.698-6.491-6.054-8.216C226.663,364.623,222.498,367.8,222.225,363.694z\"></path>\r\n <text transform=\"matrix(1 0 0 1 248.4453 356.1045)\" fill=\"#FFFFFF\">PR</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('SC')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M231.029,383.959\r\n c1.669-3.338-0.284-10.516,4.573-10.569c6.631-0.109,13.639,3.559,20.402,3.888c1.317,0.055,5.231,2.163,4.357-1.15\r\n c-1.095-4.164,3.945-1.863,5.67-3.179c2.274-1.724,8.187-4.106,11.311-1.367c1.423,1.809,20.05-5.395,13.284,3.946\r\n c-1.368,1.395,0.713,10.789,0.466,10.734c-3.449,4.438,1.726,11.666-5.096,15.334c-2.901,1.536-7.284,7.779-9.64,9.995\r\n C276.085,411.866,233.534,382.918,231.029,383.959z\"></path>\r\n <text transform=\"matrix(1 0 0 1 266.9111 387.7646)\" fill=\"#FFFFFF\">SC</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('RS')\"> \r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M191.236,416.881\r\n c0.52-2.684,7.38-8.409,9.477-10.351c0.37-0.359,8.599-10.08,9.174-8.329c-1.301-3.89,2.781-1.589,3.917-4.819\r\n c0.26-0.521,7.04-4.821,7.109-4.795c1.436-0.191,6.721-3.695,7.421-3.257c1.204-2.028,8.927-1.479,8.653-0.824\r\n c1.165-0.38,2.284-0.877,3.326-1.479c0.221-0.821,22.459,7.533,24.319,11.531c2.523,5.34,12.217,2.822,13.15,5.563\r\n c0.106,0.275-5.809,9.339-3.89,9.173c-0.985,0.08,3.204-2.875,3.834,0.409c-2.793,3.619-4.6,7.834-6.571,11.944\r\n c-3.696,7.614-8.872,12.765-15.886,17.42c-7.394,4.902-7.339,11.941-13.257,17.693c-8.091,7.942-10.159-0.574-4.08-5.752\r\n c3.806-3.231-22.527-19.746-25.578-22.732c-1.918-1.862-2.384,0.274-4.219,1.15c-2.547,1.205-1.917-2.822-3.588-4.273\r\n c-2.3-1.999-4.793-5.479-7.737-6.68c-3.478-1.367-5.615,5.145-9.052,0.821C189.168,418.854,190.332,418.032,191.236,416.881z\"></path>\r\n <text transform=\"matrix(1 0 0 1 231.0313 414.4658)\" fill=\"#FFFFFF\">RS</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('SP')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M239.3,330.554\r\n c3.26-4.356,9.56-5.039,11.531-10.792c1.369-3.942,3.889-8.818,6.135-13.036c1.561-2.957,7.749-7.121,10.517-8.65\r\n c0.383-0.196,32.974-6.138,42.234-1.701c20.265,9.724,26.017,33.879,27.854,33.304c4.408-1.425,5.34,3.778,2.106,4.49\r\n c-1.754,0.413-6.519,1.479-6.49,3.399c0.027,3.448,0.521,1.615-2.931,3.639c-2.189-1.42-3.34,4.111-4.763,3.426\r\n c-4.271-2.244-6.958,2.96-9.258,1.918c-4.271-1.918-16.98,13.092-19.638,15.336c0.245-0.218-1.148-1.479-1.587-2.685\r\n c-0.466-1.369-2.658,0.385-4.025,0.082c-0.986-0.192,1.751-4.079-2.303-4.52c-1.369-0.164-3.753,0.303-4.929,0.084\r\n c-2.903-0.547,0.108-2.41-0.439-3.862c-1.067-2.986-3.013-4.931-3.751-7.779c-0.52-1.945,0.165-7.531-3.615-7.395\r\n c-0.848-2.956-6.628-1.451-9.066-1.862c-0.162,0.163-8.846-2.684-10.079-2.684c-1.616-0.029-6.791-3.396-7.121-0.274\r\n C247.982,330.386,239.876,331.21,239.3,330.554z\"></path>\r\n <text transform=\"matrix(1 0 0 1 280.6816 327.3193)\" fill=\"#FFFFFF\">SP</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('MG')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M262.881,297.305\r\n c-1.696-5.094,15.531-19.882,18.844-13.421c5.531-7.367,15.886,1.588,19.773-3.944c0.988-1.367,3.015-1.453,3.725-2.957\r\n c0.326-0.711-0.493-2.793-0.056-3.888c1.369-3.398-4.873-2.355-0.109-6.603c4.547-4.053-1.917-4.739-1.204-8.186\r\n c0.957-4.604,1.807-4.713,5.613-6.027c1.943-0.688,0.906-8.272,0.083-8.52c-0.108-2.699,1.974-2.546,3.782-1.617\r\n c2.188-0.135-0.276-3.695,0.957-4.243c-0.357,0.151,5.559,1.999,5.724,2.055c0.986,0.358-0.52,3.534-0.931,3.943\r\n c8.217-2.355,14.514-11.789,23.279-11.242c4.983,0.316-0.327,4.339,5.367,5.544c0.684,1.234,3.34-1.054,4.054-1.189\r\n c2.876-0.536,5.53,3.284,8.106,3.886c2.301,3.578,7.503,0.537,10.298,3.001c1.755,1.589,2.188,3.397,3.396,5.313\r\n c1.314,2.052,3.86-0.465,5.726-0.109c3.257,0.656,6.326,2.026,9.338,3.723c2.19,1.205,0.768,3.179-0.548,4.573\r\n c-0.765,0.796-3.259,6.165-2.627,5.643c-2.138,1.781-2.628-1.669-3.397,2.764c-0.628,3.674,0.164,4.714,3.149,7.015\r\n c4.901,3.229-6.765,3.12-6.71,3.504c0.22,0.601-2.846,41.96-3.835,42.179c-6.737,1.562-14.513,5.311-21.744,7.012\r\n c-12.736,2.985-24.295,3.778-29.471,4.656c0,1.452-5.367,6.872-8.518,1.259c0,0-3.041-7.285-2.821-7.229\r\n c0.105-0.027,2.138-5.506,2.244-6.137c0.768-3.504-5.042-0.765-5.749-2.188c-0.878-1.81-2.358-4.576-2.166-6.628\r\n c1.699-1.205,1.672-2.383-0.08-3.562c-1.04-1.095-1.205-2.303-0.521-3.672c-2.329-1.424-3.065-2.683-5.698-2.462\r\n c-1.479,0.138-4.055,3.668-5.506,0.629c0.878,2.108-4.188,0.769-5.094,1.56c-2.354-1.202-1.779,2.028-2.384,3.069\r\n c-0.137,0.22-1.014-2.904-1.065-2.961c-1.149-1.175-2.767,4.165-3.505-0.055c0.766-4.105-4.657-2.709-7.67-2.93\r\n c-4.708-0.353-5.53-1.613-9.858,0.631C262.993,300.562,262.336,299.274,262.881,297.305z\"></path>\r\n <text transform=\"matrix(1 0 0 1 328.4063 286.4561)\" fill=\"#FFFFFF\">MG</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('RJ')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M332.886,337.429\r\n c-1.26-2.768,8.409-4.795,7.89-6.71c-3.177-1.864-4.602,1.148-6.63-2.959c4.274-0.686,9.533-4.49,13.831-3.562\r\n c0.548-0.219,4.902-1.753,4.96,0.167c2.546-1.566,5.479-2.412,8.105-3.837c2.246-1.206,0.932-8.218,3.725-9.643\r\n c6.054-3.123,1.398,1.836,7.066,2.959c5.888,1.205,5.395,1.48,5.641,7.067c0.247,5.642-8.763,4.381-11.063,8.764\r\n c-1.039,1.999,1.698,5.368-3.368,4.903c-4.188-0.413-10.628,2.355-9.285-3.18c-1.039-0.08-1.861,0.301-2.464,1.124\r\n c0,0,0.105,2.767-0.74,2.741c-0.766-0.056-7.643,1.094-7.449,0.463c1.398-0.359,2.708-0.684,4.135-0.794\r\n c-1.667-0.713-2.957-1.839-4.901-0.142c0.465,0.195-4.227-0.086-3.379-0.113c-0.521,1.727-3.814,0.699-3.879,3.045\r\n C336.717,337.908,333.927,342.41,332.886,337.429z\"></path>\r\n <path class=\"circle\" d=\"M355.094,318.613c6.209,0,11.263,5.021,11.263,11.259c0,6.208-5.056,11.264-11.263,11.264\r\n c-6.211,0-11.263-5.054-11.263-11.264C343.831,323.634,348.883,318.613,355.094,318.613z\"></path>\r\n <text transform=\"matrix(1 0 0 1 347.4648 334.6807)\" fill=\"#FFFFFF\">RJ</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('ES')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M367.119,308.834\r\n c1.044-1.999-0.298-5.451,1.841-6.326c3.697-1.453,3.858-0.467,5.941-4.49c0.767-1.563,3.999-5.807,2.848-7.835\r\n c-0.439-0.765-3.204-3.613-3.286-4.05c1.04-0.249,2.079-0.219,3.123,0.054c1.366-0.654-6.465-10.519,2.137-8.054\r\n c-1.204-0.655-1.535-1.365-0.932-2.135c4.358-0.138,13.856,0.027,12.845,6.738c-0.577,3.835,0.933,8.079-0.577,11.804\r\n c-0.218,0.576-5.861,8.954-5.831,8.954c0.985,3.289-5.18,5.808-6.054,8.165c-1.313,3.56-2.135,3.013-5.614,2.573\r\n c-1.64-0.274-3.202-0.768-4.736-1.451C368.819,311.297,369.424,309.055,367.119,308.834z\"></path>\r\n <path class=\"circle\" d=\"M381.917,284.723c6.21,0,11.261,5.055,11.261,11.262c0,6.212-5.051,11.261-11.261,11.261\r\n c-6.212,0-11.263-5.049-11.263-11.261C370.654,289.777,375.705,284.723,381.917,284.723z\"></path>\r\n <text transform=\"matrix(1 0 0 1 373.3047 300.4971)\" fill=\"#FFFFFF\">ES</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('DF')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M292.461,246.197\r\n c0,0,12.929-2.903,14.188,0c1.233,2.903,0.659,10.683-1.424,11.504c-2.08,0.849-14.296-1.806-14.023-3.313\r\n C291.503,252.853,292.461,246.197,292.461,246.197z\"></path>\r\n <path class=\"circle\" d=\"M300.735,238.34c6.212,0,11.26,5.035,11.26,11.258c0,6.21-5.048,11.263-11.26,11.263\r\n c-6.209,0-11.261-5.053-11.261-11.263C289.475,243.377,294.523,238.34,300.735,238.34z\"></path>\r\n <text transform=\"matrix(1 0 0 1 292.4141 254.2139)\" fill=\"#FFFFFF\">DF</text>\r\n </a>\r\n <a #anchorStateElement (click)=\"selectedState('PB')\">\r\n <path stroke=\"#FFFFFF\" stroke-width=\"1.0404\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M401.575,141.096\r\n c2.081-3.081,16.791-6.82,19.117-4.616c0,1.918,7.259,1.686,10.133,2.712c-0.492,3.038,12.652,1.533,14.408,2.259\r\n c1.421,0.589,3.833,11.983,1.421,12.202c-0.874-1.124-2.083-1.739-3.586-1.835c-2.957-0.027-2.546,1.863-4.383,3.108\r\n c-2.626,1.767-6.571,1.917-9.558,2.109c-0.162,1.232-3.943,4.438-5.259,4.916c-3.122,1.149-2.657-2.727-5.095-3.602\r\n c0.713-1.124,4.082-5.203,3.725-6.205c-1.423-3.846-12.051,5.52-14.981,3.506c-1.396-0.973-6.218,1.493-3.476-2.588\r\n C405.574,150.776,400.398,142.889,401.575,141.096z\"></path>\r\n <path class=\"circle\" d=\"M433.797,133.597c6.237,0,11.26,5.051,11.26,11.261c0,6.226-5.022,11.262-11.26,11.262\r\n c-6.208,0-11.257-5.036-11.257-11.262C422.54,138.647,427.589,133.597,433.797,133.597z\"></path>\r\n <text transform=\"matrix(1 0 0 1 425.2129 148.9893)\" fill=\"#FFFFFF\">PB</text>\r\n </a>\r\n </g>\r\n </svg>\r\n </div>\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dtsDateFormat',\r\n standalone: false\r\n})\r\n\r\nexport class DtsDateFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, format: string = 'dd/MM/yyyy'): any {\r\n const { 0: year, 1: month, 2: day } = value.split('-');\r\n\r\n const formattedDate = format.replace('dd', day)\r\n .replace('MM', month)\r\n .replace('yyyy', year);\r\n\r\n return formattedDate;\r\n }\r\n\r\n}\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { TotvsScheduleExecutionComponent } from './components/totvs-schedule-execution/totvs-schedule-execution.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PoModule } from '@po-ui/ng-components';\r\nimport { CommonModule } from '@angular/common';\r\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\r\nimport { TotvsScheduleExecutionService } from './components/totvs-schedule-execution/totvs-schedule-execution.service';\r\nimport { TotvsMapComponent } from './components/totvs-map/totvs-map.component';\r\nimport { DtsDateFormatPipe } from './pipes/dts-date-format.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n TotvsScheduleExecutionComponent,\r\n TotvsMapComponent,\r\n DtsDateFormatPipe\r\n ],\r\n exports: [\r\n TotvsScheduleExecutionComponent,\r\n TotvsMapComponent,\r\n DtsDateFormatPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n PoModule,\r\n FormsModule\r\n ],\r\n providers: [\r\n TotvsScheduleExecutionService,\r\n provideHttpClient(withInterceptorsFromDi())\r\n ]\r\n})\r\n\r\nexport class DtsBackofficeUtilsModule {\r\n static forRoot(): ModuleWithProviders<DtsBackofficeUtilsModule> {\r\n return {\r\n ngModule: DtsBackofficeUtilsModule,\r\n providers: [TotvsScheduleExecutionService]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of dts-backoffice-util\r\n */\r\n\r\n// Services\r\nexport * from './lib/services/session-info.service';\r\nexport * from './lib/services/profile.service';\r\nexport * from './lib/services/report.service';\r\nexport * from './lib/services/breadcrumb-control.service';\r\nexport * from './lib/services/menu-datasul.service';\r\nexport * from './lib/services/cache-params.service';\r\nexport * from './lib/services/translate.service';\r\nexport * from './lib/services/validate.service';\r\n// Services\r\n\r\n// Utils\r\nexport * from './lib/utils/date.util';\r\nexport * from './lib/utils/disclaimer.util';\r\nexport * from './lib/utils/field-validation.util';\r\nexport * from './lib/utils/filter-range.util';\r\nexport * from './lib/utils/generic-functions.utils';\r\nexport * from './lib/utils/file.util';\r\n// Utils\r\n\r\n// Interfaces\r\nexport * from './lib/interfaces/totvs-response.interface';\r\nexport * from './lib/interfaces/filter-range.interface';\r\n// Interfaces\r\n\r\n// Schedule Execution\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.component';\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.model';\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.service';\r\n// Schedule Execution\r\n\r\n// Map\r\nexport * from './lib/components/totvs-map/totvs-map.component';\r\n// Map\r\n\r\n// Pipes\r\nexport * from './lib/pipes/dts-date-format.pipe';\r\n// Pipes\r\n\r\n// Utils Module\r\nexport * from './lib/dts-backoffice-util.module';\r\n// Utils Module\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","i1","i2.TotvsScheduleExecutionService"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -11,8 +11,6 @@ import * as i4 from '@angular/common';
|
|
|
11
11
|
|
|
12
12
|
declare class UserLoginService {
|
|
13
13
|
http: HttpClient;
|
|
14
|
-
readonly apiUrl = "/totvs-menu/rest/getSessionInfo";
|
|
15
|
-
userLogin: any;
|
|
16
14
|
constructor(http: HttpClient);
|
|
17
15
|
getUserLogin(): Observable<string>;
|
|
18
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<UserLoginService, never>;
|