dts-backoffice-util 2.8.1 → 2.8.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dts-backoffice-util.js","sources":["ng://dts-backoffice-util/lib/services/session-info.service.ts","ng://dts-backoffice-util/lib/services/profile.service.ts","ng://dts-backoffice-util/lib/services/report.service.ts","ng://dts-backoffice-util/lib/services/breadcrumb-control.service.ts","ng://dts-backoffice-util/lib/services/menu-datasul.service.ts","ng://dts-backoffice-util/lib/services/cache-params.service.ts","ng://dts-backoffice-util/lib/services/translate.service.ts","ng://dts-backoffice-util/lib/utils/date.util.ts","ng://dts-backoffice-util/lib/utils/disclaimer.util.ts","ng://dts-backoffice-util/lib/utils/field-validation.util.ts","ng://dts-backoffice-util/lib/utils/filter-range.util.ts","ng://dts-backoffice-util/lib/utils/generic-functions.utils.ts","ng://dts-backoffice-util/lib/utils/file.util.ts","ng://dts-backoffice-util/lib/interfaces/totvs-response.interface.ts","ng://dts-backoffice-util/lib/interfaces/filter-range.interface.ts","ng://dts-backoffice-util/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.ts","ng://dts-backoffice-util/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.ts","ng://dts-backoffice-util/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.ts","ng://dts-backoffice-util/lib/pipes/dts-date-format.pipe.ts","ng://dts-backoffice-util/lib/dts-backoffice-util.module.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): Observable<any> {\r\n const headers = { 'X-PO-Screen-Lock': 'true' };\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?: boolean): Observable<string> {\r\n return this.getProfile(profile, EDataType.STRING, showLoading ? 'true' : 'false');\r\n }\r\n\r\n getProfileAsJSON(profile: IProfile, showLoading?: boolean): Observable<object> {\r\n return this.getProfile(profile, EDataType.JSON, showLoading ? 'true' : 'false');\r\n }\r\n\r\n private getProfile(profile: IProfile, dataType: EDataType, showLoading?: string): Observable<any> {\r\n const headers = { 'X-PO-Screen-Lock': showLoading };\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.003\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 let idx = 0;\r\n for (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 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 { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MenuDatasulService {\r\n\r\n constructor() { }\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 const datasulPath = document.referrer.indexOf('totvs-menu') > 0 ? 'totvs-menu' : 'menu-html';\r\n let baseUrl = `/${datasulPath}/#/${datasulPath}/program-html/${programName}/#`;\r\n\r\n if (params) {\r\n baseUrl = `${baseUrl}/${params}`;\r\n }\r\n\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","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","/*\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 } 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): PoDisclaimer {\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 return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${value}`,\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 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 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 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 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 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) {\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(datab64: any, fileName: string, contentType?: string): void {\r\n const dataBlob = this.b64toBlob(datab64, contentType);\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 if (navigator.userAgent.toUpperCase().indexOf('.NET') > 0 || navigator.userAgent.toUpperCase().indexOf('EDGE') > 0) {\r\n window.navigator.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 private 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\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 TotvsResponse<T> {\r\n items: T[];\r\n hasNext?: boolean;\r\n}\r\n","export interface IFilterRangeCharacter {\r\n iniInitial: string;\r\n iniFinal: string;\r\n valInitial: string;\r\n valFinal: string;\r\n}\r\n\r\nexport interface IFilterRangeNumber {\r\n iniInitial: number;\r\n iniFinal: number;\r\n valInitial: number;\r\n valFinal: number;\r\n}\r\n\r\nexport interface IFilterRangeDate {\r\n iniInitial: Date;\r\n iniFinal: Date;\r\n valInitial: Date;\r\n valFinal: Date;\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}\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}\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 programVersion: string;\r\n businessParams: 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 programVersion: string;\r\n businessParams: 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\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 (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 const params = JSON.parse(JSON.stringify(executionParams).replace(/\\\\\\\\/g, '*|'));\r\n if (!params.businessParams || params.businessParams.length === 0) {\r\n params.businessParams = [{ chave: '', valor: '' }];\r\n }\r\n\r\n jobScheduleParams = {};\r\n jobScheduleParams.status = 'active';\r\n jobScheduleParams.processID = params.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: params.executionServer },\r\n { chave: 'RPW_PROGRAM', valor: params.externalName },\r\n { chave: 'RPW_PRG_EMS5', valor: params.programEMS5 ? 'yes' : 'no' },\r\n { chave: 'RPW_PRG_VERS', valor: params.programVersion },\r\n { parametros_negocio: params.businessParams }\r\n ]\r\n };\r\n\r\n if (loading) {\r\n return this.http.post(`${this.urlJobScheduler}`, jobScheduleParams, this.headers);\r\n } else {\r\n return this.http.post(`${this.urlJobScheduler}`, jobScheduleParams);\r\n }\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","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { PoRadioGroupOption, PoI18nService, PoNotificationService, PoLookupColumn } from '@po-ui/ng-components';\r\nimport { 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})\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() programVersion = '';\r\n @Input() parameters: [];\r\n @Input() disabledParams = false;\r\n @Input() loading = 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 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.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 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_VERS', valor: this.programVersion };\r\n\r\n this.jsonObject.executionParameter.parametros[4] = {};\r\n this.jsonObject.executionParameter.parametros[4].parametros_negocio = this.parameters;\r\n\r\n // Executa hoje ou agendada\r\n this.rpwService.createExecution(this.jsonObject, this.loading).subscribe(() => {\r\n this.poNotification.success('Agendamento realizado com sucesso !');\r\n });\r\n\r\n if (this.model.repeatExecution) {\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 // Executa a diária, semanal ou mensal\r\n this.rpwService.createExecution(this.jsonObject, this.loading).subscribe(() => {\r\n });\r\n }\r\n\r\n this.endExecution.emit(this.model);\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","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dtsDateFormat'\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 {\r\n TotvsScheduleExecutionComponent\r\n} from './components/totvs-schedule-execution/totvs-schedule-execution.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PoModule, PoI18nService } from '@po-ui/ng-components';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n// import { BrowserModule } from '@angular/platform-browser';\r\nimport { TotvsScheduleExecutionService } from './components/totvs-schedule-execution/totvs-schedule-execution.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DtsDateFormatPipe } from './pipes/dts-date-format.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n TotvsScheduleExecutionComponent,\r\n DtsDateFormatPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n PoModule,\r\n FormsModule,\r\n HttpClientModule\r\n ],\r\n exports: [\r\n TotvsScheduleExecutionComponent,\r\n DtsDateFormatPipe\r\n ],\r\n providers: [\r\n TotvsScheduleExecutionService\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"],"names":[],"mappings":";;;;;;;;;;;;AAAA,MASa,gBAAgB;;;;IAKzB,YAAmB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAH1B,WAAM,GAAG,iCAAiC,CAAC;QACpD,cAAS,GAAG,SAAS,CAAC;KAEkB;;;;IAExC,YAAY;QACR,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAClC,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;SAC/C;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC7B;aAAM;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;iBAC/C,IAAI,CAAC,GAAG;;;;YAAC,CAAC,QAAQ;gBACf,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACnC,OAAO,QAAQ,CAAC,QAAQ,CAAC;aAC5B,EAAC,CAAC,CAAC;SACX;KACJ;;;YAxBJ,UAAU,SAAC;gBACR,UAAU,EAAE,MAAM;aACrB;;;;YAPQ,UAAU;;;;;IAUf,kCAAoD;;IACpD,qCAAsB;;IAEV,gCAAuB;;;;;;;ACdvC;;;AAKA,uBAKC;;;IAJG,0BAAe;;IACf,4BAAiB;;IACjB,4BAAiB;;IACjB,6BAAmB;;;;;AAGvB,+BAIC;;;IAHG,mCAAuB;;IACvB,kCAAe;;IACf,gCAAiB;;;;IAIjB,SAAU;IACV,OAAQ;;;;AAMZ,MAAa,cAAc;;;;IAIvB,YAAmB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAF1B,WAAM,GAAG,gDAAgD,CAAC;KAE3B;;;;;IAExC,UAAU,CAAC,OAAiB;;cAClB,OAAO,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE;cACxC,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO;QAEpC,OAAO,IAAI,CAAC,IAAI;aACX,IAAI,CAAM,GAAG,IAAI,CAAC,MAAM,wBAAwB,QAAQ,WAAW,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;KAE3G;;;;;;IAED,kBAAkB,CAAC,OAAiB,EAAE,WAAqB;QACvD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KACrF;;;;;;IAED,gBAAgB,CAAC,OAAiB,EAAE,WAAqB;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KACnF;;;;;;;;IAEO,UAAU,CAAC,OAAiB,EAAE,QAAmB,EAAE,WAAoB;;cACrE,OAAO,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE;cAC7C,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO;QAE9C,OAAO,IAAI,CAAC,IAAI;aACX,GAAG,CAAmB,GAAG,IAAI,CAAC,MAAM,wBAAwB,QAAQ,WAAW,MAAM,aAAa,QAAQ,EAAE,EACzG,EAAE,OAAO,EAAE,CAAC;aACf,IAAI,CAAC,GAAG;;;;QAAC,UAAU;YAChB,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;gBACpB,IAAI,QAAQ,KAAK,SAAS,CAAC,MAAM,EAAE;oBAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;iBACvC;gBAED,IAAI,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE;oBAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;iBACnD;aACJ;iBAAM;gBACH,OAAO,SAAS,CAAC;aACpB;SACJ,EAAC,CAAC,CAAC;KACX;;;YA9CJ,UAAU,SAAC;gBACR,UAAU,EAAE,MAAM;aACrB;;;;YAvBQ,UAAU;;;;;IA0Bf,gCAAmE;;IAEvD,8BAAuB;;;;;;;AC9BvC;;;AAKA,wBAGC;;;IAFC,yBAAa;;IACb,0BAAc;;;;;AAGhB,mCAQC;;;IAPC,0CAAmB;;IACnB,2CAAoB;;IACpB,0CAA6B;;IAC7B,uCAAgB;;IAChB,4CAAqB;;IACrB,wCAAkB;;IAClB,sCAAsB;;;;IAItB,MAAO,MAAM;IACb,KAAM,KAAK;IACX,MAAO,MAAM;IACb,MAAO,MAAM;;MAKF,aAAa;;;;IAIxB,YAAmB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAHzB,QAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,8BAA8B;cAC7E,oCAAoC,CAAC;KAEf;;;;;;IAE9C,QAAQ,CAAC,MAA4B,EAAE,cAAuB,IAAI;;cAC1D,OAAO,GAAG,EAAE,kBAAkB,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,EAAE;;YAElE,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,UAAU,EAAE;QAEjD,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,SAAS,IAAI,GAAG,CAAC;YAEjB,MAAM,CAAC,UAAU,CAAC,OAAO;;;;;YAAC,CAAC,QAAmB,EAAE,KAAa;gBAC3D,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,SAAS,IAAI,GAAG,CAAC;iBAClB;gBACD,SAAS,IAAI,gBAAgB,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,KAAK,EAAE,CAAC;aACzE,EAAC,CAAC;SACJ;QAED,SAAS,IAAI,YAAY,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,MAAM,EAAE,CAAC;QAClE,SAAS,IAAI,YAAY,MAAM,CAAC,WAAW,mBAAmB,MAAM,CAAC,YAAY,EAAE,CAAC;QAEpF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;aAC1E,IAAI,CAAC,GAAG;;;;QAAC,MAAM;YACd,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;aAClE;YACD,OAAO,MAAM,CAAC;SACf,EAAC,CAAC,CAAC;KACP;;;;;;IAED,QAAQ,CAAC,IAAU,EAAE,QAAgB;;cAC7B,UAAU,GAAG,CAAC,IAAI,CAAC;;cACnB,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;;cAC1C,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzF,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;QAChC,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAChD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACxC,YAAY,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACxC,YAAY,CAAC,MAAM,EAAE,CAAC;KACvB;;;YA/CF,UAAU;;;;YA1BF,UAAU;;;;IA6BjB,4BAC6D;;IAEjD,mCAA6B;;;;;;;MCvB9B,wBAAwB;IAGjC,iBAAiB;;;;IAEV,aAAa;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;KACnC;;;;;;IAEM,aAAa,CAAC,OAAe,EAAE,cAA8B;QAChE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACnG;;;;;;IAEM,gBAAgB,CAAC,OAAe,EAAE,GAAW;QAChD,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,EAAE;YAAE,OAAO;SAAE;QAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SAAE;;cAEzC,aAAa,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE;;YAE/B,GAAG,GAAG,CAAC;QACX,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;YACrD,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE;gBAC9C,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;aACxD;iBAAM;gBACH,MAAM;aACT;SACJ;QAED,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;KACnC;;;;;;;IAEM,gBAAgB,CAAC,OAAe,EAAE,QAAgB,EAAE,QAAgB;;YACnE,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE;QAE9C,IAAI,CAAC,gBAAgB,EAAE;YAAE,OAAO;SAAE;QAClC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;SAAE;QAC1B,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;SAAE;QAE1B,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;KACpD;;;;IAEM,aAAa;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SAAE;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;;;;IAEM,gBAAgB;QACnB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SAAE;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;SAAE;QAErD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;KACvE;;;;IAEM,aAAa;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;SAAE;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;SAAE;QAErD,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;KACvE;;;;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KAC3C;;;YAlEJ,UAAU;;;;;;IAEP,8CAAyB;;;;;;;ACX7B,MAGa,kBAAkB;IAE3B,iBAAiB;;;;;;;;IAOV,YAAY,CAAC,OAAO;QACvB,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;KACxC;;;;;;;;;IAQM,gBAAgB,CAAC,YAAY;QAChC,MAAM,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;KAC7C;;;;;;;IAEM,QAAQ,CAAC,WAAmB,EAAE,MAAW,EAAE,MAAM,GAAG,IAAI;;cACrD,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,WAAW;;YACxF,OAAO,GAAG,IAAI,WAAW,MAAM,WAAW,iBAAiB,WAAW,IAAI;QAE9E,IAAI,MAAM,EAAE;YACR,OAAO,GAAG,GAAG,OAAO,IAAI,MAAM,EAAE,CAAC;SACpC;QAED,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;SACnC;aAAM;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxB;KACJ;;;YArCJ,UAAU;;;;;;;;;ACFX,MAMa,kBAAkB;IAI3B;QAFA,WAAM,GAAG,EAAE,CAAC;KAEK;;;;;;IAEV,QAAQ,CAAC,GAAW,EAAE,KAAU;QACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC5B;;;;;IAEM,QAAQ,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3B;;;;;IAEM,WAAW,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3B;;;YApBJ,UAAU,SAAC;gBACR,UAAU,EAAE,MAAM;aACrB;;;;;;;IAIG,oCAAY;;;;;;;ACRhB,MAGa,gBAAgB;;;;IAEzB,OAAO,iBAAiB;QACpB,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KAC/C;;;;IAED,OAAO,sBAAsB;QACzB,OAAO,GAAG,CAAC;KACd;;;;IAED,OAAO,kBAAkB;;cACf,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC,QAAQ;QAE1E,IAAI,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAAE,OAAO,MAAM,CAAC;SAAE;QAE3E,OAAO,OAAO,CAAC;KAClB;;;YAjBJ,UAAU;;;;;;;;;;;ACGX,MAAa,QAAQ;IAEjB,iBACK;;;;;;IAGL,OAAO,gBAAgB,CAAC,IAAU;;cACxB,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;;cACrB,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;;cAC5B,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;QAEhC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAC3D;;;;;;IAGD,OAAO,gBAAgB,CAAC,KAAa;;cAC3B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;cAC3B,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;cAC7B,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAElC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5C;;;;;;IAGD,OAAO,WAAW,CAAC,IAAU;QACzB,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KACzD;;;;;;IAGD,OAAO,SAAS,CAAC,KAAU;QACvB,IAAI,KAAK,YAAY,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;SAAE;QAC5C,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;SAAE;QAE7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD;;;;;;;IAGD,OAAO,gBAAgB,CAAC,SAAiB,EAAE,EAAE,SAAiB;QAC1D,IAAI,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;YACzD,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;gBACrC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;aACtC;;kBAEK,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;kBACvC,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;kBACzC,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;SAC5C;QAED,OAAO,IAAI,CAAC;KACf;;;;;;IAGD,OAAO,GAAG,CAAC,MAAM;QACb,IAAI,MAAM,GAAG,EAAE,EAAE;YACb,OAAO,GAAG,GAAG,MAAM,CAAC;SACvB;QACD,OAAO,MAAM,CAAC;KACjB;CACJ;;;;;;;;;;ACvDD,MAAa,cAAc;;;;;;IAKvB,YACI,cAAqC,EACrC,UAAsB,EACtB,QAAgB;QALpB,aAAQ,GAAQ,EAAE,CAAC;QAOf,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;;;;;;;;;IAEM,cAAc,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK;QACzG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACvC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,IAAI,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,EAAE;YAChF,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,KAAK,EAAE;SACpB,CAAC;KACL;;;;;;;;IAEM,wBAAwB,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK;QAChG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACvC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,IAAI,QAAQ,IAAI,KAAK,KAAK,CAAC,EAAE;YACzB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;YAC7C,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,KAAK,EAAE;SACpB,CAAC;KACL;;;;;;;IAEM,yBAAyB,CAAC,QAAgB,EAAE,KAAc,EAAE,SAAS,GAAG,KAAK;QAChF,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACvC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC1F,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,KAAK,EAAE;SACpB,CAAC;KACL;;;;;;;IAEM,sBAAsB,CAAC,QAAgB,EAAE,KAAW,EAAE,SAAS,GAAG,KAAK;;cACpE,KAAK,GAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;YAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,CAAC,kBAAkB,EAAE,EAAE;YAClE,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE;SAC3C,CAAC;KACL;;;;;;;;;IAEM,6BAA6B,CAAC,QAAgB,EAAE,KAAiB,EAAE,MAAM,GAAG,CAAC,EAChF,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK;;YAChC,SAAS,GAAG,EAAE;;YACd,SAAS,GAAG,EAAE;QAElB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;YAC/D,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC;SACrB;aAAM;YACH,KAAK,CAAC,GAAG;;;;YAAC,IAAI;gBACV,IAAI,SAAS,KAAK,EAAE,EAAE;oBAAE,SAAS,GAAG,GAAG,SAAS,IAAI,CAAC;iBAAE;gBACvD,IAAI,SAAS,KAAK,EAAE,EAAE;oBAAE,SAAS,GAAG,GAAG,SAAS,GAAG,CAAC;iBAAE;gBACtD,SAAS,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;gBACpE,SAAS,GAAG,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;aACrC,EAAC,CAAC;SACN;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;YACjD,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,SAAS,EAAE;SACxB,CAAC;KACL;;;;;;;;;IAEM,mCAAmC,CAAC,QAAgB,EAAE,KAAiB,EAAE,OAAmB,EAC/F,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK;;YACzB,SAAS,GAAG,EAAE;;YACd,SAAS,GAAG,EAAE;;YACd,GAAG,GAAG,IAAI;QAEd,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;YACpB,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;YAC/D,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC;SACrB;aAAM;YACH,KAAK,CAAC,GAAG;;;;YAAC,IAAI;gBACV,IAAI,SAAS,KAAK,EAAE,EAAE;oBAAE,SAAS,GAAG,GAAG,SAAS,IAAI,CAAC;iBAAE;gBACvD,IAAI,SAAS,KAAK,EAAE,EAAE;oBAAE,SAAS,GAAG,GAAG,SAAS,GAAG,CAAC;iBAAE;gBAEtD,GAAG,GAAG,OAAO,CAAC,IAAI;;;;gBAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAC,CAAC;gBAClD,SAAS,GAAG,GAAG,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;gBACpD,SAAS,GAAG,GAAG,SAAS,GAAG,IAAI,EAAE,CAAC;aACrC,EAAC,CAAC;SACN;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;YACjD,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,SAAS,EAAE;SACxB,CAAC;KACL;;;;;;;;IAEM,+BAA+B,CAAC,QAAgB,EAAE,KAAoB,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK;;YACpG,SAAS,GAAG,EAAE;;YACd,SAAS,GAAG,EAAE;QAElB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,SAAS,GAAG,MAAM,CAAC;SACtB;aAAM,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;YAC9C,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC;SACrB;aAAM;YACH,KAAK,CAAC,GAAG;;;;YAAC,UAAU;gBAChB,IAAI,SAAS,KAAK,EAAE,EAAE;oBAAE,SAAS,GAAG,GAAG,SAAS,IAAI,CAAC;iBAAE;gBACvD,IAAI,SAAS,KAAK,EAAE,EAAE;oBAAE,SAAS,GAAG,GAAG,SAAS,GAAG,CAAC;iBAAE;gBACtD,SAAS,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACvD,SAAS,GAAG,GAAG,SAAS,GAAG,UAAU,EAAE,CAAC;aAC3C,EAAC,CAAC;SACN;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;YACjD,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,SAAS,EAAE;SACxB,CAAC;KACL;;;;;;;;IAEM,gCAAgC,CAAC,QAAgB,EAAE,KAA4B,EAAE,SAAS,GAAG,KAAK,EACrG,aAAa,GAAG,IAAI;QACpB,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;YAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;SAAE;QACzG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;YAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;SAAE;QAEjG,IAAI,aAAa;YACb,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;YACrC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE;YACnC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAC5B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC5B,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI,KAAK,CAAC,UAAU,GAAG,EAAE,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC9E,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE;SACjD,CAAC;KACL;;;;;;;;IAEM,6BAA6B,CAAC,QAAgB,EAAE,KAAyB,EAAE,SAAS,GAAG,KAAK,EAC/F,aAAa,GAAG,IAAI;QACpB,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;YAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;SAAE;QACzG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;YAAE,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;SAAE;QAEjG,IAAI,aAAa;YACb,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;YACrC,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE;YACnC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAC5B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC5B,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAChE,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE;SACjD,CAAC;KACL;;;;;;;;IAEM,2BAA2B,CAAC,QAAgB,EAAE,KAAuB,EAAE,SAAS,GAAG,KAAK,EAAE,aAAa,GAAG,IAAI;;YAC7G,WAAW,GAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC;;YACpD,YAAY,GAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC;QAEvD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;YAChC,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;YAC/B,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;SACvC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;YACjC,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;YAC9B,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;SACnC;QAED,IAAI,aAAa;YACb,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;YAC9E,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE;YAC/E,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;SACjD;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAC5B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC5B,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,kBAAkB,EAAE,EAAE,YAAY,CAAC,kBAAkB,EAAE,CAAC,CAAC;YACnG,QAAQ,EAAE,GAAG,QAAQ,EAAE;YACvB,KAAK,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE;SACxF,CAAC;KACL;;;;;;;IAEM,oBAAoB,CAAC,WAAgC,EAAE,QAAgB,EAAE,YAAoB;;YAC5F,WAAW,GAAG,YAAY;QAE9B,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAE1C,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;oBACzB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB,EAAC,CAAC;SACN;QACD,OAAO,WAAW,CAAC;KACtB;;;;;;;IAEM,sBAAsB,CAAC,WAAgC,EAAE,QAAgB,EAAE,YAAoB;;YAC9F,WAAW,GAAG,YAAY;QAE9B,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAE1C,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;oBACzB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB,EAAC,CAAC;SACN;QACD,OAAO,WAAW,CAAC;KACtB;;;;;;;IAEM,uBAAuB,CAAC,WAAgC,EAAE,QAAgB,EAAE,YAAqB;;cAC9F,WAAW,GAAG,YAAY;QAEhC,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;;kBACjC,cAAc,GAAG,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAC;YAC7E,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,KAAK,IAAI,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,EAAE;gBACvF,IAAI,cAAc,CAAC,KAAK,KAAK,MAAM,EAAE;oBACjC,OAAO,IAAI,CAAC;iBACf;qBAAM;oBACH,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QAED,OAAO,WAAW,CAAC;KACtB;;;;;;;IAEM,oBAAoB,CAAC,WAAgC,EAAE,QAAgB,EAAE,YAAkB;;YAC1F,WAAW,GAAS,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QAEpD,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAE1C,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB,EAAC,CAAC;SACN;QACD,OAAO,WAAW,CAAC;KACtB;;;;;;;IAEM,+BAA+B,CAAC,WAAgC,EAAE,QAAgB,EACrF,YAAwC;QACxC,OAAO,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KACxF;;;;;;;IAEM,iCAAiC,CAAC,WAAgC,EAAE,QAAgB,EACvF,YAAwC;QACxC,OAAO,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC1F;;;;;;;;IAEM,2BAA2B,CAAC,IAAY,EAAE,WAAgC,EAAE,QAAgB,EAC/F,YAAwC;;YAEpC,WAAW,GAAG,EAAE;QACpB,YAAY,CAAC,GAAG;;;;QAAC,IAAI;YACjB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC,EAAC,CAAC;QAEH,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAE3F,WAAW,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO;;;;oBAAC,OAAO;wBACjC,IAAI,IAAI,KAAK,MAAM,EAAE;4BAAE,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;yBAAE;wBACnD,IAAI,IAAI,KAAK,QAAQ,EAAE;4BAAE,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;yBAAE;qBACzD,EAAC,CAAC;oBAEH,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB,EAAC,CAAC;SACN;QACD,OAAO,WAAW,CAAC;KACtB;;;;;;;IAEM,wBAAwB,CAAC,WAAgC,EAAE,QAAgB,EAC9E,OAAqC;;YAEjC,WAAW,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG;;;;QAAC,IAAI;YACZ,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC,EAAC,CAAC;QAEH,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAE3F,WAAW,GAAG,EAAE,CAAC;oBACjB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO;;;;oBAAC,OAAO;wBACjC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBAC7B,EAAC,CAAC;oBAEH,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB,EAAC,CAAC;SACN;QACD,OAAO,WAAW,CAAC;KACtB;;;;;;;IAEM,yBAAyB,CAAC,WAAgC,EAAE,QAAgB,EAC/E,SAAgC;;YAC5B,KAAK,GAAG,EAAE;QAEd,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAC1C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACnB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB,EAAC,CAAC;SACN;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC5D;;;;;;;IAEM,wBAAwB,CAAC,WAAgC,EAAE,QAAgB,EAC9E,QAA4B;;YACxB,KAAK,GAAG,EAAE;QAEd,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAC1C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACnB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB,EAAC,CAAC;SACN;QACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC1D;;;;;;;IAEM,yBAAyB,CAAC,WAAgC,EAAE,QAAgB,EAC/E,SAA2B;;YACvB,KAAK,GAAG,EAAE;QAEd,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YACvC,WAAW,CAAC,IAAI;;;;YAAC,CAAC,IAAI;gBAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;oBAC5B,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;wBAAE,OAAO,KAAK,CAAC;qBAAE;oBAC1C,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBACnB,OAAO,IAAI,CAAC;iBACf;gBACD,OAAO,KAAK,CAAC;aAChB,EAAC,CAAC;SACN;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC5D;;;;;;IAEM,0BAA0B,CAAC,KAAa,EAAE,SAAgC;QAC7E,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QAC5C,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAExC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;YAAE,OAAO,SAAS,CAAC;SAAE;QAEjD,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;YAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;SAAE;QAEjH,OAAO,SAAS,CAAC;KACpB;;;;;;IAEM,yBAAyB,CAAC,KAAa,EAAE,QAA4B;QACxE,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QAC1C,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAEtC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;YAAE,OAAO,QAAQ,CAAC;SAAE;QAEhD,QAAQ,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,QAAQ,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS,EAAE;YAAE,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;SAAE;QAE7G,OAAO,QAAQ,CAAC;KACnB;;;;;;IAEM,0BAA0B,CAAC,KAAa,EAAE,SAA2B;QACxE,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QAC5C,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QAExC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;YAAE,OAAO,SAAS,CAAC;SAAE;QAEjD,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClE,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,IAAI,SAAS,CAAC,QAAQ,KAAK,IAAI,IAAI,SAAS,CAAC,QAAQ,KAAK,SAAS,EAAE;YAAE,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;SAAE;QAEjH,OAAO,SAAS,CAAC;KACpB;;;;;IAEM,gBAAgB,CAAC,IAAU;;cACxB,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE;;cACrB,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;;cAC5B,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE;QAEhC,OAAO,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAC3D;;;;;IAEM,gBAAgB,CAAC,KAAa;;cAC3B,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;cAC3B,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;cAC7B,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAElC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5C;;;;;IAEM,WAAW,CAAC,IAAU;QACzB,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KACzD;;;;;IAEM,SAAS,CAAC,KAAU;QACvB,IAAI,KAAK,YAAY,IAAI,EAAE;YAAE,OAAO,KAAK,CAAC;SAAE;QAC5C,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,KAAK,CAAC;SAAE;QAE7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD;;;;;IAEM,GAAG,CAAC,MAAM;QACb,IAAI,MAAM,GAAG,EAAE,EAAE;YACb,OAAO,GAAG,GAAG,MAAM,CAAC;SACvB;QACD,OAAO,MAAM,CAAC;KACjB;CACJ;;;IA7eG,wCAAsC;;IACtC,oCAAuB;;IACvB,kCAAmB;;;;;;;MCJV,mBAAmB;;;;;;IAO5B,YACI,cAAqC,EACrC,UAAsB,EACtB,QAAgB;QAPpB,aAAQ,GAAQ,EAAE,CAAC;QASf,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACjG;;;;;;IAEM,iBAAiB,CAAC,KAAa,EAAE,KAAa;QACjD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aAChG,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;;;;IAGM,iBAAiB,CAAC,YAAoB,EAAE,UAAkB,EAAE,YAAoB,EAAE,UAAkB;QACvG,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EAAE;YAC9B,OAAO,IAAI,CAAC;SACf;QAED,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;YACrE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAC7D,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;aAChE,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;;;IAEM,cAAc,CAAC,KAAa,EAAE,KAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK;QACpF,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YAClD,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE;YACxB,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,KAAK,IAAI,EAAE;gBACpC,OAAO,IAAI,CAAC;aACf;YAED,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aAChG,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;IAEM,gBAAgB,CAAC,KAAa,EAAE,KAAa;QAChD,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,cAAc,CAAC,KAAK,CACrB,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;;IAEM,eAAe,CAAC,KAAa,EAAE,KAAa,EAAE,QAAQ,GAAG,KAAK;QACjE,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YACnD,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;IAEM,iBAAiB,CAAC,KAAa,EAAE,KAAa;QACjD,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,cAAc,CAAC,KAAK,CACrB,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvH,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,IAAI,KAAK,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,cAAc,CAAC,KAAK,CACrB,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACvH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;;;;IAGM,cAAc,CAAC,YAAoB,EAAE,UAAkB,EAAE,YAAoB,EAAE,UAAkB;QACpG,IAAI,CAAC,YAAY,EAAE;YAAE,YAAY,GAAG,CAAC,CAAC;SAAE;QACxC,IAAI,CAAC,UAAU,EAAE;YAAE,UAAU,GAAG,CAAC,CAAC;SAAE;QAEpC,IAAI,YAAY,GAAG,UAAU,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAC7D,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;aAChE,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;IAEM,YAAY,CAAC,KAAa,EAAE,KAAW;;cACpC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC;QAEpD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;YAC3C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aAC5F,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;;;;IAGM,YAAY,CAAC,YAAoB,EAAE,UAAkB,EAAE,YAAkB,EAAE,UAAgB;QAC9F,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EAAE;YAC9B,OAAO,IAAI,CAAC;SACf;;cAEK,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;;cACtE,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE;QAExE,IAAI,cAAc,GAAG,YAAY,EAAE;YAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,EAC7D,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;aAChE,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;IAEM,mBAAmB,CAAC,KAAa,EAAE,KAAiB;QACvD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aAChG,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;IAEM,gBAAgB,CAAC,KAAa,EAAE,KAAoB;QACvD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;aAChG,CAAC,CAAC;YACH,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,IAAI,CAAC;KACf;;;;;;;;;IAGM,cAAc,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc,EAAE,YAAY,GAAG,KAAK;;YAChF,GAAG,GAAG,IAAI;;YACV,SAAiB;QAErB,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,GAAG,CAAC;SAAE;;QAG3B,IAAI,YAAY,EAAE;YACd,SAAS,GAAG,MAAM,CAAC;YACnB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;SACtC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;YAChC,GAAG,GAAG,KAAK,CAAC;SACf;aAAM;YACH,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;gBAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;oBACrB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE;wBAAE,GAAG,GAAG,KAAK,CAAC;wBAAC,MAAM;qBAAE;iBACxE;gBAED,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;oBACrB,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE;wBAAE,GAAG,GAAG,KAAK,CAAC;wBAAC,MAAM;qBAAE;iBACxE;aACJ;SACJ;QAED,IAAI,YAAY,EAAE;YACd,MAAM,GAAG,SAAS,CAAC;SACtB;QAED,IAAI,CAAC,GAAG,EAAE;YACN,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;gBACtB,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;aACtG,CAAC,CAAC;SACN;QAED,OAAO,GAAG,CAAC;KACd;CACJ;;;IAzMG,6CAAsC;;IACtC,yCAAuB;;IACvB,uCAAmB;;IAEnB,6CAA+B;;;;;;;;;;;ACNnC,MAAa,eAAe;IAExB;KACC;;;;;;IAEM,OAAO,wBAAwB,CAAC,UAAkB,EAAE,QAAgB;QACvE,OAAO;YACH,UAAU;YACV,QAAQ;YACR,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;SACrB,CAAC;KACL;;;;;;IAEM,OAAO,qBAAqB,CAAC,UAAkB,EAAE,QAAgB;QACpE,OAAO;YACH,UAAU;YACV,QAAQ;YACR,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;SACrB,CAAC;KACL;;;;;;IAEM,OAAO,mBAAmB,CAAC,UAAgB,EAAE,QAAc;QAC9D,OAAO;YACH,UAAU;YACV,QAAQ;YACR,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;SACrB,CAAC;KACL;CACJ;;;;;;;;;;;;;AC/BD,0BAGC;;;IAFK,2BAAc;;IACd,2BAAqB;;;;;AAE3B,0BAGC;;;IAFG,+BAAiB;;IACjB,+BAAiB;;AAGrB,MAAa,qBAAqB;;;;IAI9B,YACI,QAAgB;QAHpB,aAAQ,GAAQ,EAAE,CAAC;QAKf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;;;;;;IAGD,OAAO,oBAAoB,CAAC,IAAY;;YAChC,WAAW,GAAG,IAAI,KAAK,EAAU;QAErC,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;YACrB,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACjC;QAED,OAAO,WAAW,CAAC;KACtB;;;;;;IAGD,OAAO,oBAAoB,CAAC,KAAoB;;YACxC,IAAI,GAAG,EAAE;QAEb,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAC1B;QAED,OAAO,IAAI,CAAC;KACf;;;;;IAED,OAAO,OAAO,CAAC,MAAc;;YACrB,OAAO,GAAG,IAAI;QAElB,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;YAC1B,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;gBAChC,OAAO,GAAG,KAAK,CAAC;aACnB;SACJ;QAED,OAAO,OAAO,CAAC;KAClB;;;;;IAED,OAAO,cAAc,CAAC,SAA6B;;YAE3C,WAAwB;;YAExB,QAAQ;;YACR,QAAQ;QAEZ,QAAQ,GAAG,SAAS,CAAC;QACrB,QAAQ,GAAG,SAAS,CAAC;QAErB,SAAS,CAAC,GAAG;;;;QAAC,IAAI;YACd,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAClD,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC3B;iBAAM;gBACH,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE;oBACtB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC3B;gBACD,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE;oBACtB,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC3B;aACJ;SACJ,EAAC,CAAC;QAEH,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAC9B,WAAW,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SACrD;QAED,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAC9B,WAAW,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;SAC5D;QAED,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;;kBACxB,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC;YAClC,WAAW,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;SACvD;QAED,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;YAChC,WAAW,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;SACrD;QAED,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;;kBAC1B,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC;YAClC,WAAW,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;SACvD;QAED,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClC,WAAW,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;SAC9D;QAED,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACxD,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExD,OAAO,WAAW,CAAC;KACtB;;;;;;;IAGD,OAAO,2BAA2B,CAAC,OAAmC,EAAE,IAAmB;;YACnF,GAAW;;YACX,OAAsB;QAE1B,IAAI,CAAC,IAAI,EAAE;YACP,OAAO,IAAI,CAAC;SACf;QAED,OAAO,GAAG,IAAI,KAAK,EAAU,CAAC;QAE9B,IAAI,CAAC,GAAG;;;;QAAC,IAAI;YACT,IAAI,IAAI,EAAE;gBACN,GAAG,GAAG,OAAO,CAAC,SAAS;;;;gBAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAC,CAAC;gBACnE,IAAI,GAAG,IAAI,CAAC,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBACtB;aACJ;SACJ,EAAC,CAAC;QAEH,OAAO,OAAO,CAAC;KAClB;;;;;;;IAGM,sBAAsB,CAAC,OAAmC,EAAE,IAAmB;;YAC9E,GAAW;QAEf,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;SACV;QAED,IAAI,CAAC,GAAG;;;;QAAC,IAAI;YACT,IAAI,IAAI,EAAE;gBACN,GAAG,GAAG,OAAO,CAAC,SAAS;;;;gBAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,EAAC,CAAC;gBACnE,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;oBACZ,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtF;aACJ;SACJ,EAAC,CAAC;KACN;;;;;;;;IAGM,iBAAiB,CAAC,OAA8B,EAAE,WAAmB,EAAE,SAAS,GAAG,KAAK;;YACvF,GAAW;QAEf,IAAI,CAAC,WAAW,EAAE;YACd,OAAO;SACV;QAED,IAAI,WAAW,EAAE;YACb,GAAG,GAAG,OAAO,CAAC,SAAS;;;;YAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,EAAC,CAAC;YAC1E,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;aACrG;SACJ;KACJ;;;;;;;IAGM,cAAc,CAAC,WAAmB,EAAE,YAAoB;QAE3D,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE;YAC/B,OAAO,KAAK,CAAC;SAChB;;QAGD,IAAI,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE;YACpG,OAAO,KAAK,CAAC;SAChB;QAED,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE;YAC/B,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE;gBAC9D,SAAS;aACZ;YAED,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,EAAE;gBAChD,OAAO,KAAK,CAAC;aAChB;SAEJ;QAED,OAAO,IAAI,CAAC;KACf;;;;;;IAEM,mBAAmB,CAAC,OAAe,EAAE,OAAa;;YACjD,SAAiB;;YACjB,MAAc;;cAEZ,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE;;cACxB,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;;cAC/B,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE;QAEnC,SAAS,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;QAE/E,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAExD,OAAO,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;KAClC;;;;;IAEM,GAAG,CAAC,MAAM;QACb,IAAI,MAAM,GAAG,EAAE,EAAE;YACb,OAAO,GAAG,GAAG,MAAM,CAAC;SACvB;QACD,IAAI,MAAM,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACpC;QACD,OAAO,MAAM,CAAC;KACjB;;;;;IAEM,kBAAkB,CAAC,OAAe;;cAC/B,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC;;cACjD,UAAU,GAAG,uCAA2B,cAAc,CAAC,sBAAsB,CAAC,UAAU,CAAC,MAAE,CAAC,CAAC;QACnG,UAAU,CAAC,KAAK,EAAE,CAAC;KACtB;CACJ;;;IArNG,yCAAmB;;;;;;;AClBvB,MAAa,QAAQ;IAEjB,iBACK;;;;;;;IAEL,OAAO,YAAY,CAAC,OAAY,EAAE,QAAgB,EAAE,WAAoB;;cAC9D,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAC;QACrD,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACrC;;;;;;IAED,OAAO,YAAY,CAAC,IAAgB,EAAE,gBAAqC,IAAI;QAC3E,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;SAAE;QAEtB,IAAI,CAAC,aAAa,EAAE;YAAE,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC;SAAE;QACjE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YAAE,aAAa,CAAC,QAAQ,GAAG,UAAU,CAAC;SAAE;QACrE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;YAAE,aAAa,CAAC,QAAQ,GAAG,EAAE,CAAC;SAAE;QAC7D,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;YAAE,aAAa,CAAC,eAAe,GAAG,GAAG,CAAC;SAAE;QAC5E,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;YAAE,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC;SAAE;QACjE,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;YAAE,aAAa,CAAC,aAAa,GAAG,EAAE,CAAC;SAAE;;cAEjE,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QAC5D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAClE;;;;;;;IAEO,OAAO,QAAQ,CAAC,IAAU,EAAE,QAAgB;;cAC1C,UAAU,GAAG,CAAC,IAAI,CAAC;;cACnB,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;;cAC1C,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;QAGzF,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAChH,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACrD;aAAM;YACH,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;YAChC,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACxC,YAAY,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACxC,YAAY,CAAC,MAAM,EAAE,CAAC;SACzB;KACJ;;;;;;;;IAEO,OAAO,SAAS,CAAC,OAAY,EAAE,WAAoB,EAAE,SAAkB;QAC3E,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;QAChC,SAAS,GAAG,SAAS,IAAI,GAAG,CAAC;;cAEvB,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC;;cAC9B,UAAU,GAAG,EAAE;QAErB,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE;;kBAChE,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;;kBAExD,WAAW,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;aACxC;;kBAEK,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAC9B;;cAEK,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC;KACf;;;;;;;IAEO,OAAO,YAAY,CAAC,QAAoB,EAAE,aAAkC;QAChF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;SAAE;;cAEhD,aAAa,GAAG,IAAI;;YAEtB,UAAU,GAAG,IAAI;;YACjB,YAAY,GAAG,IAAI;;cACjB,IAAI,GAAG,EAAE;;YACX,UAAmB;QAEvB,IAAI,aAAa,CAAC,UAAU;YACxB,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;SACzC;aAAM;YACH,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SACzC;QAED,UAAU,CAAC,OAAO;;;;QAAC,GAAG;YAClB,UAAU,GAAG,IAAI,CAAC;YAElB,IAAI,aAAa,CAAC,aAAa;gBAC3B,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;gBACtC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBACjD,UAAU,GAAG,KAAK,CAAC;aACtB;YAED,IAAI,UAAU,EAAE;gBACZ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,YAAY,GAAG,CAAC,CAAC,YAAY,IAAI,EAAE,GAAG,YAAY,GAAG,aAAa,CAAC,eAAe,CAAC;gBACnF,YAAY,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;aACrF;SACJ,EAAC,CAAC;;cAEG,OAAO,GAAG,QAAQ,CAAC,MAAM;;;;;QAAC,CAAC,UAAU,EAAE,WAAW;;gBAChD,KAAK,GAAG,IAAI;;gBACZ,WAAW,GAAG,IAAI;YAEtB,IAAI,CAAC,OAAO;;;;YAAC,GAAG;gBACZ,IAAI,CAAC,KAAK,EAAE;oBAAE,UAAU,IAAI,aAAa,CAAC,eAAe,CAAC;iBAAE;gBAE5D,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC/B,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;oBAAE,WAAW,GAAG,EAAE,CAAC;iBAAE;gBAC5E,QAAQ,QAAQ,WAAW,CAAC;oBACxB,KAAK,QAAQ;wBACT,WAAW,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;wBAC3C,MAAM;oBACV,KAAK,SAAS;wBACV,WAAW,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,CAAC;4BACnD,aAAa,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,WAAW,CAAC;wBAC3D,MAAM;oBACV,KAAK,QAAQ;wBACT,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;iBACjD;gBACD,UAAU,IAAI,WAAW,CAAC;gBAE1B,KAAK,GAAG,KAAK,CAAC;aACjB,EAAC,CAAC;YAEH,OAAO,UAAU,GAAG,aAAa,CAAC;SAErC,GAAE,YAAY,GAAG,aAAa,CAAC;QAEhC,OAAO,OAAO,CAAC;KAClB;CACJ;;;;AAED,kCAMC;;;IALG,uCAAiB;;IACjB,uCAAc;;IACd,8CAAwB;;IACxB,yCAA0B;;IAC1B,4CAA6B;;AAGjC,MAAa,kBAAkB;CAM9B;;;IALG,sCAAiB;;IACjB,sCAAc;;IACd,6CAAwB;;IACxB,wCAA0B;;IAC1B,2CAA6B;;;;;;;;;;;AChJjC,4BAGC;;;IAFG,8BAAW;;IACX,gCAAkB;;;;;;;;;;ACFtB,oCAKC;;;IAJC,2CAAmB;;IACnB,yCAAiB;;IACjB,2CAAmB;;IACnB,yCAAiB;;;;;AAGnB,iCAKC;;;IAJC,wCAAmB;;IACnB,sCAAiB;;IACjB,wCAAmB;;IACnB,sCAAiB;;;;;AAGnB,+BAKC;;;IAJC,sCAAiB;;IACjB,oCAAe;;IACf,sCAAiB;;IACjB,oCAAe;;;;;;;;;;AClBjB,kCAcC;;;IAbG,4CAAsB;;IACtB,8CAAsB;;IACtB,8CAAwB;;IACxB,8CAAwB;;IACxB,8CAAyB;;IACzB,yCAAmB;;IACnB,wCAAkB;;IAClB,6CAAuB;;IACvB,4CAAsB;;IACtB,kDAA4B;;IAC5B,mDAA6B;;IAC7B,4CAAkB;;IAClB,yCAAmB;;AAGvB,MAAa,kBAAkB;CAc9B;;;IAbG,2CAAsB;;IACtB,6CAAsB;;IACtB,6CAAwB;;IACxB,6CAAwB;;IACxB,6CAAyB;;IACzB,wCAAmB;;IACnB,uCAAkB;;IAClB,4CAAuB;;IACvB,2CAAsB;;IACtB,iDAA4B;;IAC5B,kDAA6B;;IAC7B,2CAAkB;;IAClB,wCAAmB;;;;;AAGvB,+BAMC;;;IALG,yCAAsB;;IACtB,uCAAoB;;IACpB,uCAAkB;;IAClB,iCAAc;;IACd,kCAAe;;AAGnB,MAAa,eAAe;CAM3B;;;IALG,wCAAsB;;IACtB,sCAAoB;;IACpB,sCAAkB;;IAClB,gCAAc;;IACd,iCAAe;;;;;AAGnB,mCAOC;;;IANG,+CAAwB;;IACxB,2CAAoB;;IACpB,4CAAqB;;IACrB,2CAAqB;;IACrB,8CAAuB;;IACvB,8CAA2B;;AAG/B,MAAa,mBAAmB;CAO/B;;;IANG,8CAAwB;;IACxB,0CAAoB;;IACpB,2CAAqB;;IACrB,0CAAqB;;IACrB,6CAAuB;;IACvB,6CAA2B;;;;;;;AC/D/B,MAQa,6BAA6B;;;;IAatC,YAAmB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;QAX3B,YAAO,GAAG,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,CAAC;QAEtD,mBAAc,GAAG,2DAA2D,CAAC;QAC7E,oBAAe,GAAG,2DAA2D,CAAC;QAC9E,oBAAe,GAAG,2DAA2D,CAAC;KAO9C;;;;;IAExC,gBAAgB,CAAC,MAAmC;;cAC1C,SAAS,GAAG,IAAI,KAAK,EAAU;QAErC,SAAS,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzD,SAAS,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,SAAS,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;SAClD;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;KACzE;;;;;IAED,gBAAgB,CAAC,EAAU;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC3E;;;;;;IAED,eAAe,CAAC,UAAkB,EAAE,OAAgB;;cAC1C,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE5E,IAAI,OAAO,EAAE;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC1E;aAAM;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;SAC5D;KACJ;;;;;;IAED,qBAAqB,CAAC,eAAqC,EAAE,OAAgB;;YACrE,iBAAsB;;cACpB,IAAI,GAAG,IAAI,IAAI,EAAE;;cAEjB,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YAC9D,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;SACtD;QAED,iBAAiB,GAAG,EAAE,CAAC;QACvB,iBAAiB,CAAC,MAAM,GAAG,QAAQ,CAAC;QACpC,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QACjD,iBAAiB,CAAC,cAAc,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC;QAClL,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;QAEpC,iBAAiB,CAAC,kBAAkB,GAAG;YACnC,UAAU,EAAE;gBACR,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,eAAe,EAAE;gBACrD,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE;gBACpD,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE;gBACnE,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,CAAC,cAAc,EAAE;gBACvD,EAAE,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE;aAChD;SACJ,CAAC;QAEF,IAAI,OAAO,EAAE;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACrF;aAAM;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,iBAAiB,CAAC,CAAC;SACvE;KACJ;;;;;;IAED,2BAA2B,CAAC,aAAqB,EAAE,OAAO,GAAG,KAAK;;cACxD,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,kBAAkB,aAAa,EAAE;QACpE,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CACvC,GAAG;;;;QAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAC,CACxE,CAAC;KACL;;;;;;IAED,yBAAyB,CAAC,WAAmB,EAAE,OAAO,GAAG,KAAK;;cACpD,GAAG,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,WAAW,EAAE;QACpD,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CACvC,GAAG;;;;QAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,EAAC,CACtE,CAAC;KACL;;;;;;;IAEO,YAAY,CAAC,GAAW,EAAE,OAAgB;QAC9C,IAAI,OAAO,EAAE;YACT,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC3C;aAAM;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SAC7B;KACJ;;;;;;;IAEO,kBAAkB,CAAC,IAAY,EAAE,QAAa;QAClD,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE,OAAO;SAAE;QAC5E,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;cAEvB,UAAU,GAAG,IAAI,eAAe,EAAE;QACxC,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;QAClD,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAC9C,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QAC9C,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QAClC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAEpC,OAAO,UAAU,CAAC;KACrB;;;;;;;;IAED,0BAA0B,CAAC,aAAqB,EAAE,WAAmB,EAAE,WAAqB,EAAE,OAAO,GAAG,KAAK;QACzG,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;KAC7F;;;;;;;;IAED,wBAAwB,CAAC,WAAmB,EAAE,WAAmB,EAAE,WAAqB,EAAE,OAAO,GAAG,KAAK;QACrG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;KACzF;;;;;;;;;;IAEO,iBAAiB,CAAC,IAAY,EAAE,MAAc,EAClD,WAAmB,EAAE,WAAqB,EAAE,OAAgB;QAE5D,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;;cAEhC,UAAU,GAAG,WAAW;;;QAAC;;kBACrB,UAAU,GAAG,IAAI,eAAe,EAAE;YACxC,UAAU,CAAC,aAAa,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,GAAG,EAAE,CAAC;YACpE,UAAU,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,GAAG,EAAE,CAAC;YAChE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;YAC9B,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;YACtB,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;YAE9B,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAAE,OAAO;aAAE;YAE/C,IAAI,IAAI,KAAK,eAAe,EAAE;gBAC1B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC;qBAC7E,SAAS;;;;gBAAC,CAAC,QAA0B;oBAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;iBACpF;;;;gBAAE,CAAC,KAAK;oBACL,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;iBAC5E,EAAC,CAAC;aACV;YAED,IAAI,IAAI,KAAK,aAAa,EAAE;gBACxB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC;qBAC3E,SAAS;;;;gBAAC,CAAC,QAA0B;oBAClC,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;iBACpF;;;;gBAAE,CAAC,KAAK;oBACL,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;iBAC5E,EAAC,CAAC;aACV;SAEJ,GAAE,WAAW,CAAC;KAClB;;;;;;;;;;IAEO,oBAAoB,CAAC,MAAc,EAAE,UAA4B,EAAE,QAA0B,EACjG,UAAe,EAAE,WAAqB;QAEtC,IAAI,QAAQ,EAAE;YACV,UAAU,GAAG,QAAQ,CAAC;SACzB;aAAM;YACH,UAAU,CAAC,KAAK,GAAG,sCAAsC,MAAM,EAAE,CAAC;YAClE,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;SACjC;QAED,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YACxB,UAAU,CAAC,MAAM,KAAK,SAAS;YAC/B,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE;YACjC,aAAa,CAAC,UAAU,CAAC,CAAC;SAC7B;QAED,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACzC;;;;;;;;;IAEO,uBAAuB,CAAC,KAAU,EAAE,UAA4B,EACpE,UAAe,EAAE,WAAqB;;YAElC,QAAQ,GAAG,EAAE;QAEjB,IAAI,KAAK,YAAY,iBAAiB,EAAE;YACpC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI,KAAK,CAAC,KAAK,EAAE;gBACb,QAAQ,GAAG,EAAE,CAAC;gBACd,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;oBAAE,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;iBAAE;gBACtD,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;oBAAE,QAAQ,GAAG,GAAG,QAAQ,MAAM,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;iBAAE;gBAC/E,IAAI,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE;oBAAE,QAAQ,GAAG,GAAG,QAAQ,MAAM,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;iBAAE;aAClG;SACJ;aAAM;YACH,QAAQ,GAAG,KAAK,CAAC;SACpB;QAED,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;QAC5B,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;QAC9B,WAAW,CAAC,UAAU,CAAC,CAAC;QACxB,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACzC;;;;;;IAEO,OAAO,CAAC,GAAW;;YACnB,GAAG,GAAG,GAAG,GAAG,EAAE;QAClB,IAAI,GAAG,GAAG,EAAE,EAAE;YAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;SAAE;QAClC,OAAO,GAAG,CAAC;KACd;;;YA1MJ,UAAU;;;;YANF,UAAU;;;;;;;IASf,gDAA8D;;;;;IAE9D,uDAAqF;;;;;IACrF,wDAAsF;;;;;IACtF,wDAAsF;;;;;IAKtF,kEAAgD;;IAEpC,6CAAuB;;;;;;;ACrBvC,MAYa,+BAA+B;;;;;;IAYxC,YACW,aAA4B,EAC5B,UAAyC,EACzC,cAAqC;QAFrC,kBAAa,GAAb,aAAa,CAAe;QAC5B,eAAU,GAAV,UAAU,CAA+B;QACzC,mBAAc,GAAd,cAAc,CAAuB;QAVvC,gBAAW,GAAG,KAAK,CAAC;QACpB,mBAAc,GAAG,EAAE,CAAC;QAEpB,mBAAc,GAAG,KAAK,CAAC;QACvB,YAAO,GAAG,KAAK,CAAC;QACf,iBAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAcpC,eAAU,GAAQ,EAAE,CAAC;QAE7B,aAAQ,GAAQ,EAAE,CAAC;KAVlB;;;;IAYD,QAAQ;;;;;;;;;QAUJ,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;;;;IAED,eAAe;QACX,IAAI,CAAC,oBAAoB,GAAG;YACxB,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE;YACpC,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE;SAC1C,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG;YACpB,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE;YACxC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE;SACjD,CAAC;QAEF,IAAI,CAAC,oBAAoB,GAAG;YACxB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;YACnC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC1C,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG;YACjB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;YACrC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;YACrC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;YACpC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;YACvC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;YACtC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;YACnC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;SACzC,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAG;YACzB,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;YACrE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;SACzE,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;KACtC;;;;;IAEM,qBAAqB,CAAC,QAA6B;QACtD,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;SAAE;QAC1B,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;KACzB;;;;;IAED,qBAAqB,CAAC,KAAK;QACvB,OAAO,GAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;KAC1C;;;;IAED,mBAAmB;QACf,QAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;KAC3C;;;;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;KACrC;;;;IAED,YAAY;QACR,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;KAC3C;;;;IAED,qBAAqB;;cACX,IAAI,GAAG,IAAI,IAAI,EAAE;QAEvB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;SAAE;QAChJ,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;SAAE;QAClJ,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;KACjC;;;;IAED,mBAAmB;;cACT,IAAI,GAAG,IAAI,IAAI,EAAE;QAEvB,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;KACtG;;;;IAED,mBAAmB;KAClB;;;;;IAED,YAAY,CAAC,MAAc;QACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,MAAM,EAAE;KAC7C;;;;;IAED,YAAY,CAAC,MAAc;QACvB,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;KAClC;;;;;IAED,OAAO,CAAC,GAAW;;YACX,GAAG,GAAG,GAAG,GAAG,EAAE;QAClB,IAAI,GAAG,GAAG,EAAE,EAAE;YAAE,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;SAAE;QAClC,OAAO,GAAG,CAAC;KACd;;;;IAED,eAAe;QACX,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;SAAE;QACpC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YAAE,OAAO;SAAE;QAEjC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAExC,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;;kBAC1B,IAAI,GAAG,IAAI,IAAI,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC;SACnL;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;YAChC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,UAAU,CAAC;SAC1G;QAED,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC7G,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC;QACtG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,IAAI,EAAE,CAAC;QACrH,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;QAEzG,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QACtD,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;;QAGtF,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS;;;QAAC;YACrE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;SACtE,EAAC,CAAC;QAEH,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG;oBACpB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;oBAC/D,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;iBACpE,CAAC;aACL;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;oBACrB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;oBAC/D,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;oBACjE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;iBACvC,CAAC;aACL;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;gBAC7B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG;oBACtB,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;oBAC/D,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;oBACjE,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;iBAC7B,CAAC;aACL;YAED,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG;oBAC9B,SAAS,EAAE;wBACP,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;wBAC9B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;qBACnC;oBACD,UAAU,EAAE;wBACR,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC;wBAChE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC;qBACrE;iBACJ,CAAC;aACL;;YAGD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS;;;YAAC;aACxE,EAAC,CAAC;SACN;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;;;;;;IAED,eAAe,CAAC,KAAa,EAAE,IAAY;QACvC,IAAI,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE;QACpD,IAAI,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE;KACvD;;;;;;IAED,WAAW,CAAC,QAAgB,EAAE,SAAiB;QAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE;YAAE,OAAO,KAAK,CAAC;SAAE;QAC7C,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC;SAAE;QAChG,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YAAE,OAAO,KAAK,CAAC;SAAE;QACjG,OAAO,IAAI,CAAC;KACf;;;;IAED,QAAQ;QAEJ,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;YACnC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;YACnE,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC7B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YACrE,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YAC5F,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACpF,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;YAC5B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;gBACjC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;gBACxE,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;gBACxE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;gBACzE,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;gBACzD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;aAChB;YAED,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;oBACpF,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACtE,OAAO,KAAK,CAAC;iBAChB;gBAED,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE;oBACjC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;oBACrF,OAAO,KAAK,CAAC;iBAChB;aACJ;SACJ;QAED,OAAO,IAAI,CAAC;KACf;;;YArRJ,SAAS,SAAC;gBACP,QAAQ,EAAE,8BAA8B;gBACxC,2wbAAwD;;aAE3D;;;;YAT4B,aAAa;YAGjC,6BAA6B;YAHM,qBAAqB;;;oCAY5D,SAAS,SAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;0BAEnD,KAAK;2BACL,KAAK;0BACL,KAAK;6BACL,KAAK;yBACL,KAAK;6BACL,KAAK;sBACL,KAAK;2BACL,MAAM;;;;IATP,gEAAoF;;IAEpF,sDAA6B;;IAC7B,uDAA8B;;IAC9B,sDAA6B;;IAC7B,yDAA6B;;IAC7B,qDAAwB;;IACxB,yDAAgC;;IAChC,kDAAyB;;IACzB,uDAA4C;;IAQ5C,+DAAgD;;IAChD,2DAA4C;;IAC5C,+DAAgD;;IAChD,wDAAyC;;IACzC,gEAA6C;;IAC7C,gDAA0B;;;;;IAC1B,qDAA6B;;IAE7B,mDAAmB;;IAbf,wDAAmC;;IACnC,qDAAgD;;IAChD,yDAA4C;;;;;;;AC3BpD,MAMa,iBAAiB;;;;;;IAE5B,SAAS,CAAC,KAAU,EAAE,SAAiB,YAAY;cAC3C,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;;cAEhD,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;aACpB,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;QAElD,OAAO,aAAa,CAAC;KACtB;;;YAdF,IAAI,SAAC;gBACJ,IAAI,EAAE,eAAe;aACtB;;;;;;;ACJD,MAgCa,wBAAwB;;;;IACnC,OAAO,OAAO;QACZ,OAAO;YACL,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE,CAAC,6BAA6B,CAAC;SAC3C,CAAC;KACH;;;YA1BF,QAAQ,SAAC;gBACR,YAAY,EAAE;oBACZ,+BAA+B;oBAC/B,iBAAiB;iBAClB;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,QAAQ;oBACR,WAAW;oBACX,gBAAgB;iBACjB;gBACD,OAAO,EAAE;oBACP,+BAA+B;oBAC/B,iBAAiB;iBAClB;gBACD,SAAS,EAAE;oBACT,6BAA6B;iBAC9B;aACF;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dts-backoffice-util.js","sources":["ng://dts-backoffice-util/lib/services/session-info.service.ts","ng://dts-backoffice-util/lib/services/profile.service.ts","ng://dts-backoffice-util/lib/services/report.service.ts","ng://dts-backoffice-util/lib/services/breadcrumb-control.service.ts","ng://dts-backoffice-util/lib/services/menu-datasul.service.ts","ng://dts-backoffice-util/lib/services/cache-params.service.ts","ng://dts-backoffice-util/lib/services/translate.service.ts","ng://dts-backoffice-util/lib/utils/date.util.ts","ng://dts-backoffice-util/lib/utils/disclaimer.util.ts","ng://dts-backoffice-util/lib/utils/field-validation.util.ts","ng://dts-backoffice-util/lib/utils/filter-range.util.ts","ng://dts-backoffice-util/lib/utils/generic-functions.utils.ts","ng://dts-backoffice-util/lib/utils/file.util.ts","ng://dts-backoffice-util/lib/interfaces/totvs-response.interface.ts","ng://dts-backoffice-util/lib/interfaces/filter-range.interface.ts","ng://dts-backoffice-util/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.ts","ng://dts-backoffice-util/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.ts","ng://dts-backoffice-util/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.ts","ng://dts-backoffice-util/lib/pipes/dts-date-format.pipe.ts","ng://dts-backoffice-util/lib/dts-backoffice-util.module.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): Observable<any> {\r\n const headers = { 'X-PO-Screen-Lock': 'true' };\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?: boolean): Observable<string> {\r\n return this.getProfile(profile, EDataType.STRING, showLoading ? 'true' : 'false');\r\n }\r\n\r\n getProfileAsJSON(profile: IProfile, showLoading?: boolean): Observable<object> {\r\n return this.getProfile(profile, EDataType.JSON, showLoading ? 'true' : 'false');\r\n }\r\n\r\n private getProfile(profile: IProfile, dataType: EDataType, showLoading?: string): Observable<any> {\r\n const headers = { 'X-PO-Screen-Lock': showLoading };\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.003\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 let idx = 0;\r\n for (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 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 { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class MenuDatasulService {\r\n\r\n constructor() { }\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 const datasulPath = document.referrer.indexOf('totvs-menu') > 0 ? 'totvs-menu' : 'menu-html';\r\n let baseUrl = `/${datasulPath}/#/${datasulPath}/program-html/${programName}/#`;\r\n\r\n if (params) {\r\n baseUrl = `${baseUrl}/${params}`;\r\n }\r\n\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","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","/*\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 } 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): PoDisclaimer {\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 return {\r\n hideClose,\r\n label: `${this.literals[property]}: ${value}`,\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 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 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 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 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 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) {\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 if (navigator.userAgent.toUpperCase().indexOf('.NET') > 0 || navigator.userAgent.toUpperCase().indexOf('EDGE') > 0) {\r\n window.navigator.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 private 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\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 TotvsResponse<T> {\r\n items: T[];\r\n hasNext?: boolean;\r\n}\r\n","export interface IFilterRangeCharacter {\r\n iniInitial: string;\r\n iniFinal: string;\r\n valInitial: string;\r\n valFinal: string;\r\n}\r\n\r\nexport interface IFilterRangeNumber {\r\n iniInitial: number;\r\n iniFinal: number;\r\n valInitial: number;\r\n valFinal: number;\r\n}\r\n\r\nexport interface IFilterRangeDate {\r\n iniInitial: Date;\r\n iniFinal: Date;\r\n valInitial: Date;\r\n valFinal: Date;\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}\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}\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 programVersion: string;\r\n businessParams: 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 programVersion: string;\r\n businessParams: 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\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 (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 const params = JSON.parse(JSON.stringify(executionParams).replace(/\\\\\\\\/g, '*|'));\r\n if (!params.businessParams || params.businessParams.length === 0) {\r\n params.businessParams = [{ chave: '', valor: '' }];\r\n }\r\n\r\n jobScheduleParams = {};\r\n jobScheduleParams.status = 'active';\r\n jobScheduleParams.processID = params.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: params.executionServer },\r\n { chave: 'RPW_PROGRAM', valor: params.externalName },\r\n { chave: 'RPW_PRG_EMS5', valor: params.programEMS5 ? 'yes' : 'no' },\r\n { chave: 'RPW_PRG_VERS', valor: params.programVersion },\r\n { parametros_negocio: params.businessParams }\r\n ]\r\n };\r\n\r\n if (loading) {\r\n return this.http.post(`${this.urlJobScheduler}`, jobScheduleParams, this.headers);\r\n } else {\r\n return this.http.post(`${this.urlJobScheduler}`, jobScheduleParams);\r\n }\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","import { Component, OnInit, Input, ViewChild, Output, EventEmitter } from '@angular/core';\r\nimport { PoRadioGroupOption, PoI18nService, PoNotificationService, PoLookupColumn } from '@po-ui/ng-components';\r\nimport { 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})\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() programVersion = '';\r\n @Input() parameters: [];\r\n @Input() disabledParams = false;\r\n @Input() loading = 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 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.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 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_VERS', valor: this.programVersion };\r\n\r\n this.jsonObject.executionParameter.parametros[4] = {};\r\n this.jsonObject.executionParameter.parametros[4].parametros_negocio = this.parameters;\r\n\r\n // Executa hoje ou agendada\r\n this.rpwService.createExecution(this.jsonObject, this.loading).subscribe(() => {\r\n this.poNotification.success('Agendamento realizado com sucesso !');\r\n });\r\n\r\n if (this.model.repeatExecution) {\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 // Executa a diária, semanal ou mensal\r\n this.rpwService.createExecution(this.jsonObject, this.loading).subscribe(() => {\r\n });\r\n }\r\n\r\n this.endExecution.emit(this.model);\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","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dtsDateFormat'\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 {\r\n TotvsScheduleExecutionComponent\r\n} from './components/totvs-schedule-execution/totvs-schedule-execution.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { PoModule, PoI18nService } from '@po-ui/ng-components';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n// import { BrowserModule } from '@angular/platform-browser';\r\nimport { TotvsScheduleExecutionService } from './components/totvs-schedule-execution/totvs-schedule-execution.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DtsDateFormatPipe } from './pipes/dts-date-format.pipe';\r\n\r\n@NgModule({\r\n declarations: [\r\n TotvsScheduleExecutionComponent,\r\n DtsDateFormatPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n PoModule,\r\n FormsModule,\r\n HttpClientModule\r\n ],\r\n exports: [\r\n TotvsScheduleExecutionComponent,\r\n DtsDateFormatPipe\r\n ],\r\n providers: [\r\n TotvsScheduleExecutionService\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"],"names":[],"mappings":"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"}