dts-backoffice-util 14.2.2 → 14.2.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.
- package/README.md +19 -8
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs +4 -4
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.mjs +4 -4
- package/esm2020/lib/dts-backoffice-util.module.mjs +5 -5
- package/esm2020/lib/pipes/dts-date-format.pipe.mjs +4 -4
- package/esm2020/lib/services/breadcrumb-control.service.mjs +4 -4
- package/esm2020/lib/services/cache-params.service.mjs +4 -4
- package/esm2020/lib/services/menu-datasul.service.mjs +4 -4
- package/esm2020/lib/services/profile.service.mjs +4 -4
- package/esm2020/lib/services/report.service.mjs +4 -4
- package/esm2020/lib/services/session-info.service.mjs +4 -4
- package/esm2020/lib/services/translate.service.mjs +4 -4
- package/fesm2015/dts-backoffice-util.mjs +34 -34
- package/fesm2015/dts-backoffice-util.mjs.map +1 -1
- package/fesm2020/dts-backoffice-util.mjs +34 -34
- package/fesm2020/dts-backoffice-util.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dts-backoffice-util.mjs","sources":["../../../projects/dts-backoffice-util/src/lib/services/session-info.service.ts","../../../projects/dts-backoffice-util/src/lib/services/profile.service.ts","../../../projects/dts-backoffice-util/src/lib/services/report.service.ts","../../../projects/dts-backoffice-util/src/lib/services/breadcrumb-control.service.ts","../../../projects/dts-backoffice-util/src/lib/services/menu-datasul.service.ts","../../../projects/dts-backoffice-util/src/lib/services/cache-params.service.ts","../../../projects/dts-backoffice-util/src/lib/services/translate.service.ts","../../../projects/dts-backoffice-util/src/lib/utils/date.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/disclaimer.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/field-validation.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/filter-range.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/generic-functions.utils.ts","../../../projects/dts-backoffice-util/src/lib/utils/file.util.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.html","../../../projects/dts-backoffice-util/src/lib/pipes/dts-date-format.pipe.ts","../../../projects/dts-backoffice-util/src/lib/dts-backoffice-util.module.ts","../../../projects/dts-backoffice-util/src/public-api.ts","../../../projects/dts-backoffice-util/src/dts-backoffice-util.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ISessionInfo } from '../model/session-info.model';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserLoginService {\r\n\r\n readonly apiUrl = '/totvs-menu/rest/getSessionInfo';\r\n userLogin = undefined;\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getUserLogin(): Observable<string> {\r\n if (localStorage.getItem('username')) {\r\n return of(localStorage.getItem('username'));\r\n }\r\n\r\n if (this.userLogin) {\r\n return of(this.userLogin);\r\n } else {\r\n return this.http.get<ISessionInfo>(`${this.apiUrl}`)\r\n .pipe(map((response) => {\r\n this.userLogin = response.userName;\r\n return response.userName;\r\n }));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport interface IProfile {\r\n pageId: string;\r\n dataCode: string;\r\n userCode: string;\r\n dataValue?: string;\r\n}\r\n\r\nexport interface IProfileResponse {\r\n message: Array<string>;\r\n length: number;\r\n data: Array<any>;\r\n}\r\n\r\nenum EDataType {\r\n STRING = 1,\r\n JSON = 2\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileService {\r\n\r\n readonly apiURL = '/dts/datasul-rest/resources/api/btb/btapi930za';\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n setProfile(profile: IProfile): 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 const nav = (window.navigator as any);\r\n if (nav && nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(file, fileName);\r\n } else {\r\n downloadLink.href = urlDownload;\r\n downloadLink.setAttribute('download', fileName);\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n window.URL.revokeObjectURL(urlDownload);\r\n downloadLink.remove();\r\n }\r\n }\r\n\r\n 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 static fileToB64(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = () => {\r\n let cntFile: any;\r\n cntFile = reader.result;\r\n if (!cntFile) {\r\n reject('File not found or Empty');\r\n return;\r\n }\r\n\r\n const aCnt = cntFile.split(',');\r\n if (aCnt && aCnt.length >= 2) {\r\n resolve(aCnt[1]);\r\n } else {\r\n reject('File not found or Empty');\r\n }\r\n\r\n };\r\n\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n}\r\n\r\nexport interface IDownloadDataParams {\r\n fileName: string;\r\n literals: any;\r\n columnDelimiter: string;\r\n columnList: Array<string>;\r\n columnExclude: Array<string>;\r\n}\r\n\r\nexport class DownloadDataParams implements IDownloadDataParams {\r\n fileName: string;\r\n literals: any;\r\n columnDelimiter: string;\r\n columnList: Array<string>;\r\n columnExclude: Array<string>;\r\n}\r\n","export interface IScheduleParameters {\r\n executionType: number;\r\n execAppointDate: Date;\r\n execAppointHour: string;\r\n executionServer: string;\r\n repeatExecution: boolean;\r\n repeatType: number;\r\n frequency: string;\r\n frequencyValue: number;\r\n frequencyType: string;\r\n execAppointHourInit: string;\r\n execAppointHourFinal: string;\r\n selectWeeklys: [];\r\n dayOfMonth: number;\r\n}\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 public getScheduleParameters(): IScheduleParameters {\r\n return this.model;\r\n }\r\n\r\n fieldRpwServiceFormat(value) {\r\n return `${value.code} - ${value.name}`;\r\n }\r\n\r\n isExecutionSchedule(): boolean {\r\n return (this.model.executionType === 2);\r\n }\r\n\r\n isRepeatExecution(): boolean {\r\n return this.model.repeatExecution;\r\n }\r\n\r\n isFrenquency(): boolean {\r\n return (this.model.frequency === 'yes');\r\n }\r\n\r\n changeRepeatExecution() {\r\n const date = new Date();\r\n\r\n if (!this.model.execAppointHourInit) { this.model.execAppointHourInit = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`; }\r\n if (!this.model.execAppointHourFinal) { this.model.execAppointHourFinal = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`; }\r\n this.model.selectWeeklys = [];\r\n this.model.dayOfMonth = 0;\r\n this.model.frequency = 'no';\r\n this.model.frequencyType = 'hour';\r\n this.model.frequencyValue = 0;\r\n }\r\n\r\n changeExecutionType() {\r\n const date = new Date();\r\n\r\n this.model.execAppointDate = date;\r\n this.model.execAppointHour = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;\r\n }\r\n\r\n changeTypeFrequency() {\r\n }\r\n\r\n getActiveTab(codTab: number) {\r\n return (this.model.repeatType === codTab);\r\n }\r\n\r\n setActiveTab(codTab: number) {\r\n this.model.repeatType = codTab;\r\n }\r\n\r\n addZero(num: number): string {\r\n let str = `${num}`;\r\n if (num < 10) { str = `0${num}`; }\r\n return str;\r\n }\r\n\r\n executeSchedule() {\r\n if (this.disabledParams) { return; }\r\n if (!this.validate()) { return; }\r\n\r\n this.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","<form #scheduleExecutionForm=\"ngForm\">\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionType\"\r\n p-label=\"Data de Execução\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionType\"\r\n [p-options]=\"executionTypeOptions\"\r\n (p-change)=\"changeExecutionType()\">\r\n </po-radio-group>\r\n\r\n <po-datepicker *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"model.execAppointDate\"\r\n p-label=\"Agendar para\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointDate\">\r\n </po-datepicker>\r\n\r\n <po-input *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHour\"\r\n p-label=\"Hora\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHour\">\r\n </po-input>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-lookup\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionServer\"\r\n p-label=\"Servidor de Execução\"\r\n p-placeholder=\"Servidor de Execução\"\r\n [p-columns]=\"zoomRpwServiceColumns\"\r\n [p-field-format]=\"fieldRpwServiceFormat\"\r\n [p-filter-service]=\"rpwService\"\r\n p-field-label=\"name\"\r\n p-field-value=\"code\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionServer\">\r\n </po-lookup>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-switch\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"repeatExecution\"\r\n p-label=\"Repetir ocorrência ?\"\r\n p-label-off=\"Não\"\r\n p-label-on=\"Sim\"\r\n [(ngModel)]=\"model.repeatExecution\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"changeRepeatExecution()\">\r\n </po-switch>\r\n </div>\r\n\r\n <div class=\"po-row\" *ngIf=\"isRepeatExecution()\">\r\n \r\n <po-tabs>\r\n\r\n <po-tab \r\n p-label=\"Diária\" \r\n [p-active]=\"getActiveTab(1)\" \r\n (p-click)=\"setActiveTab(1)\">\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyDaily\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n \r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"> \r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitDaily\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n \r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalDaily\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n \r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueDaily\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n \r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeDaily\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Semanal\"\r\n [p-active]=\"getActiveTab(2)\"\r\n (p-click)=\"setActiveTab(2)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-multiselect\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"selectWeeklys\"\r\n p-label=\"Dias da Semana\"\r\n p-placeholder=\"Escolha os dias da semana\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.selectWeeklys\"\r\n [p-options]=\"weeklyOptions\">\r\n </po-multiselect>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyWeekly\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitWeekly\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Mensal\" \r\n [p-active]=\"getActiveTab(3)\" \r\n (p-click)=\"setActiveTab(3)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-number\r\n class=\"po-sm-3 po-md-3 po-lg-3 po-xl-3\"\r\n name=\"dayOfMonth\"\r\n p-label=\"Dia do mês\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"2\"\r\n p-min=\"0\"\r\n p-max=\"31\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.dayOfMonth\">\r\n </po-number>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyMonthly\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitMonthly\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n </po-tabs>\r\n </div>\r\n\r\n <div class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\" style=\"padding-top: 15px;\">\r\n <po-button\r\n style=\"float: right;\"\r\n p-label=\"Gerar Agendamento RPW\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"executeSchedule()\">\r\n </po-button>\r\n </div>\r\n</form>\r\n","import { 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","/*\r\n * Public API Surface of dts-backoffice-util\r\n */\r\n\r\n// Services\r\nexport * from './lib/services/session-info.service';\r\nexport * from './lib/services/profile.service';\r\nexport * from './lib/services/report.service';\r\nexport * from './lib/services/breadcrumb-control.service';\r\nexport * from './lib/services/menu-datasul.service';\r\nexport * from './lib/services/cache-params.service';\r\nexport * from './lib/services/translate.service';\r\n// Services\r\n\r\n// Utils\r\nexport * from './lib/utils/date.util';\r\nexport * from './lib/utils/disclaimer.util';\r\nexport * from './lib/utils/field-validation.util';\r\nexport * from './lib/utils/filter-range.util';\r\nexport * from './lib/utils/generic-functions.utils';\r\nexport * from './lib/utils/file.util';\r\n// Utils\r\n\r\n// Interfaces\r\nexport * from './lib/interfaces/totvs-response.interface';\r\nexport * from './lib/interfaces/filter-range.interface';\r\n// Interfaces\r\n\r\n// Schedule Execution\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.component';\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.model';\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.service';\r\nexport * from './lib/dts-backoffice-util.module';\r\n// Schedule Execution\r\n\r\n// Pipes\r\nexport * from './lib/pipes/dts-date-format.pipe';\r\n// Pipes\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TotvsScheduleExecutionService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dts-backoffice-util.mjs","sources":["../../../projects/dts-backoffice-util/src/lib/services/session-info.service.ts","../../../projects/dts-backoffice-util/src/lib/services/profile.service.ts","../../../projects/dts-backoffice-util/src/lib/services/report.service.ts","../../../projects/dts-backoffice-util/src/lib/services/breadcrumb-control.service.ts","../../../projects/dts-backoffice-util/src/lib/services/menu-datasul.service.ts","../../../projects/dts-backoffice-util/src/lib/services/cache-params.service.ts","../../../projects/dts-backoffice-util/src/lib/services/translate.service.ts","../../../projects/dts-backoffice-util/src/lib/utils/date.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/disclaimer.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/field-validation.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/filter-range.util.ts","../../../projects/dts-backoffice-util/src/lib/utils/generic-functions.utils.ts","../../../projects/dts-backoffice-util/src/lib/utils/file.util.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.ts","../../../projects/dts-backoffice-util/src/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.html","../../../projects/dts-backoffice-util/src/lib/pipes/dts-date-format.pipe.ts","../../../projects/dts-backoffice-util/src/lib/dts-backoffice-util.module.ts","../../../projects/dts-backoffice-util/src/public-api.ts","../../../projects/dts-backoffice-util/src/dts-backoffice-util.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ISessionInfo } from '../model/session-info.model';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class UserLoginService {\r\n\r\n readonly apiUrl = '/totvs-menu/rest/getSessionInfo';\r\n userLogin = undefined;\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getUserLogin(): Observable<string> {\r\n if (localStorage.getItem('username')) {\r\n return of(localStorage.getItem('username'));\r\n }\r\n\r\n if (this.userLogin) {\r\n return of(this.userLogin);\r\n } else {\r\n return this.http.get<ISessionInfo>(`${this.apiUrl}`)\r\n .pipe(map((response) => {\r\n this.userLogin = response.userName;\r\n return response.userName;\r\n }));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { map } from 'rxjs/operators';\r\n\r\nexport interface IProfile {\r\n pageId: string;\r\n dataCode: string;\r\n userCode: string;\r\n dataValue?: string;\r\n}\r\n\r\nexport interface IProfileResponse {\r\n message: Array<string>;\r\n length: number;\r\n data: Array<any>;\r\n}\r\n\r\nenum EDataType {\r\n STRING = 1,\r\n JSON = 2\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfileService {\r\n\r\n readonly apiURL = '/dts/datasul-rest/resources/api/btb/btapi930za';\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n setProfile(profile: IProfile): 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 const nav = (window.navigator as any);\r\n if (nav && nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(file, fileName);\r\n } else {\r\n downloadLink.href = urlDownload;\r\n downloadLink.setAttribute('download', fileName);\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n window.URL.revokeObjectURL(urlDownload);\r\n downloadLink.remove();\r\n }\r\n }\r\n\r\n 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 static fileToB64(file: File) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = () => {\r\n let cntFile: any;\r\n cntFile = reader.result;\r\n if (!cntFile) {\r\n reject('File not found or Empty');\r\n return;\r\n }\r\n\r\n const aCnt = cntFile.split(',');\r\n if (aCnt && aCnt.length >= 2) {\r\n resolve(aCnt[1]);\r\n } else {\r\n reject('File not found or Empty');\r\n }\r\n\r\n };\r\n\r\n reader.onerror = error => reject(error);\r\n });\r\n }\r\n}\r\n\r\nexport interface IDownloadDataParams {\r\n fileName: string;\r\n literals: any;\r\n columnDelimiter: string;\r\n columnList: Array<string>;\r\n columnExclude: Array<string>;\r\n}\r\n\r\nexport class DownloadDataParams implements IDownloadDataParams {\r\n fileName: string;\r\n literals: any;\r\n columnDelimiter: string;\r\n columnList: Array<string>;\r\n columnExclude: Array<string>;\r\n}\r\n","export interface IScheduleParameters {\r\n executionType: number;\r\n execAppointDate: Date;\r\n execAppointHour: string;\r\n executionServer: string;\r\n repeatExecution: boolean;\r\n repeatType: number;\r\n frequency: string;\r\n frequencyValue: number;\r\n frequencyType: string;\r\n execAppointHourInit: string;\r\n execAppointHourFinal: string;\r\n selectWeeklys: [];\r\n dayOfMonth: number;\r\n}\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 public getScheduleParameters(): IScheduleParameters {\r\n return this.model;\r\n }\r\n\r\n fieldRpwServiceFormat(value) {\r\n return `${value.code} - ${value.name}`;\r\n }\r\n\r\n isExecutionSchedule(): boolean {\r\n return (this.model.executionType === 2);\r\n }\r\n\r\n isRepeatExecution(): boolean {\r\n return this.model.repeatExecution;\r\n }\r\n\r\n isFrenquency(): boolean {\r\n return (this.model.frequency === 'yes');\r\n }\r\n\r\n changeRepeatExecution() {\r\n const date = new Date();\r\n\r\n if (!this.model.execAppointHourInit) { this.model.execAppointHourInit = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`; }\r\n if (!this.model.execAppointHourFinal) { this.model.execAppointHourFinal = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`; }\r\n this.model.selectWeeklys = [];\r\n this.model.dayOfMonth = 0;\r\n this.model.frequency = 'no';\r\n this.model.frequencyType = 'hour';\r\n this.model.frequencyValue = 0;\r\n }\r\n\r\n changeExecutionType() {\r\n const date = new Date();\r\n\r\n this.model.execAppointDate = date;\r\n this.model.execAppointHour = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;\r\n }\r\n\r\n changeTypeFrequency() {\r\n }\r\n\r\n getActiveTab(codTab: number) {\r\n return (this.model.repeatType === codTab);\r\n }\r\n\r\n setActiveTab(codTab: number) {\r\n this.model.repeatType = codTab;\r\n }\r\n\r\n addZero(num: number): string {\r\n let str = `${num}`;\r\n if (num < 10) { str = `0${num}`; }\r\n return str;\r\n }\r\n\r\n executeSchedule() {\r\n if (this.disabledParams) { return; }\r\n if (!this.validate()) { return; }\r\n\r\n this.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","<form #scheduleExecutionForm=\"ngForm\">\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionType\"\r\n p-label=\"Data de Execução\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionType\"\r\n [p-options]=\"executionTypeOptions\"\r\n (p-change)=\"changeExecutionType()\">\r\n </po-radio-group>\r\n\r\n <po-datepicker *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"model.execAppointDate\"\r\n p-label=\"Agendar para\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointDate\">\r\n </po-datepicker>\r\n\r\n <po-input *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHour\"\r\n p-label=\"Hora\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHour\">\r\n </po-input>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-lookup\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionServer\"\r\n p-label=\"Servidor de Execução\"\r\n p-placeholder=\"Servidor de Execução\"\r\n [p-columns]=\"zoomRpwServiceColumns\"\r\n [p-field-format]=\"fieldRpwServiceFormat\"\r\n [p-filter-service]=\"rpwService\"\r\n p-field-label=\"name\"\r\n p-field-value=\"code\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionServer\">\r\n </po-lookup>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-switch\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"repeatExecution\"\r\n p-label=\"Repetir ocorrência ?\"\r\n p-label-off=\"Não\"\r\n p-label-on=\"Sim\"\r\n [(ngModel)]=\"model.repeatExecution\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"changeRepeatExecution()\">\r\n </po-switch>\r\n </div>\r\n\r\n <div class=\"po-row\" *ngIf=\"isRepeatExecution()\">\r\n \r\n <po-tabs>\r\n\r\n <po-tab \r\n p-label=\"Diária\" \r\n [p-active]=\"getActiveTab(1)\" \r\n (p-click)=\"setActiveTab(1)\">\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyDaily\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n \r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"> \r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitDaily\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n \r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalDaily\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n \r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueDaily\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n \r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeDaily\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Semanal\"\r\n [p-active]=\"getActiveTab(2)\"\r\n (p-click)=\"setActiveTab(2)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-multiselect\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"selectWeeklys\"\r\n p-label=\"Dias da Semana\"\r\n p-placeholder=\"Escolha os dias da semana\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.selectWeeklys\"\r\n [p-options]=\"weeklyOptions\">\r\n </po-multiselect>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyWeekly\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitWeekly\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Mensal\" \r\n [p-active]=\"getActiveTab(3)\" \r\n (p-click)=\"setActiveTab(3)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-number\r\n class=\"po-sm-3 po-md-3 po-lg-3 po-xl-3\"\r\n name=\"dayOfMonth\"\r\n p-label=\"Dia do mês\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"2\"\r\n p-min=\"0\"\r\n p-max=\"31\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.dayOfMonth\">\r\n </po-number>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyMonthly\"\r\n p-label=\"Frequência\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitMonthly\"\r\n p-label=\"Hora Início\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inválida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n </po-tabs>\r\n </div>\r\n\r\n <div class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\" style=\"padding-top: 15px;\">\r\n <po-button\r\n style=\"float: right;\"\r\n p-label=\"Gerar Agendamento RPW\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"executeSchedule()\">\r\n </po-button>\r\n </div>\r\n</form>\r\n","import { 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","/*\r\n * Public API Surface of dts-backoffice-util\r\n */\r\n\r\n// Services\r\nexport * from './lib/services/session-info.service';\r\nexport * from './lib/services/profile.service';\r\nexport * from './lib/services/report.service';\r\nexport * from './lib/services/breadcrumb-control.service';\r\nexport * from './lib/services/menu-datasul.service';\r\nexport * from './lib/services/cache-params.service';\r\nexport * from './lib/services/translate.service';\r\n// Services\r\n\r\n// Utils\r\nexport * from './lib/utils/date.util';\r\nexport * from './lib/utils/disclaimer.util';\r\nexport * from './lib/utils/field-validation.util';\r\nexport * from './lib/utils/filter-range.util';\r\nexport * from './lib/utils/generic-functions.utils';\r\nexport * from './lib/utils/file.util';\r\n// Utils\r\n\r\n// Interfaces\r\nexport * from './lib/interfaces/totvs-response.interface';\r\nexport * from './lib/interfaces/filter-range.interface';\r\n// Interfaces\r\n\r\n// Schedule Execution\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.component';\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.model';\r\nexport * from './lib/components/totvs-schedule-execution/totvs-schedule-execution.service';\r\nexport * from './lib/dts-backoffice-util.module';\r\n// Schedule Execution\r\n\r\n// Pipes\r\nexport * from './lib/pipes/dts-date-format.pipe';\r\n// Pipes\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2.TotvsScheduleExecutionService"],"mappings":";;;;;;;;;;;;;MASa,gBAAgB,CAAA;AAKzB,IAAA,WAAA,CAAmB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAH1B,IAAM,CAAA,MAAA,GAAG,iCAAiC,CAAC;QACpD,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;KAEkB;IAExC,YAAY,GAAA;AACR,QAAA,IAAI,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAClC,OAAO,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;AAC/C,SAAA;QAED,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7B,SAAA;AAAM,aAAA;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAe,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,CAAE,CAAC;AAC/C,iBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAI;AACnB,gBAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC;gBACnC,OAAO,QAAQ,CAAC,QAAQ,CAAC;aAC5B,CAAC,CAAC,CAAC;AACX,SAAA;KACJ;;gIArBQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,mBAAA,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACUD,IAAK,SAGJ,CAAA;AAHD,CAAA,UAAK,SAAS,EAAA;AACV,IAAA,SAAA,CAAA,SAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EAHI,SAAS,KAAT,SAAS,GAGb,EAAA,CAAA,CAAA,CAAA;MAKY,cAAc,CAAA;AAIvB,IAAA,WAAA,CAAmB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAF1B,IAAM,CAAA,MAAA,GAAG,gDAAgD,CAAC;KAE3B;AAExC,IAAA,UAAU,CAAC,OAAiB,EAAA;AACxB,QAAA,MAAM,OAAO,GAAG,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC;AAC/C,QAAA,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAErC,OAAO,IAAI,CAAC,IAAI;AACX,aAAA,IAAI,CAAM,CAAG,EAAA,IAAI,CAAC,MAAM,wBAAwB,QAAQ,CAAA,QAAA,EAAW,MAAM,CAAA,CAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;KAE3G;IAED,kBAAkB,CAAC,OAAiB,EAAE,WAAqB,EAAA;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,EAAA;QACrD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;KACnF;AAEO,IAAA,UAAU,CAAC,OAAiB,EAAE,QAAmB,EAAE,WAAoB,EAAA;AAC3E,QAAA,MAAM,OAAO,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE/C,OAAO,IAAI,CAAC,IAAI;AACX,aAAA,GAAG,CAAmB,CAAG,EAAA,IAAI,CAAC,MAAM,wBAAwB,QAAQ,CAAA,QAAA,EAAW,MAAM,CAAA,UAAA,EAAa,QAAQ,CAAE,CAAA,EACzG,EAAE,OAAO,EAAE,CAAC;AACf,aAAA,IAAI,CAAC,GAAG,CAAC,UAAU,IAAG;AACnB,YAAA,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;AACpB,gBAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,MAAM,EAAE;oBAC/B,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACvC,iBAAA;AAED,gBAAA,IAAI,QAAQ,KAAK,SAAS,CAAC,IAAI,EAAE;AAC7B,oBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACnD,iBAAA;AACJ,aAAA;AAAM,iBAAA;AACH,gBAAA,OAAO,SAAS,CAAC;AACpB,aAAA;SACJ,CAAC,CAAC,CAAC;KACX;;8HA3CQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,mBAAA,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ICLW,cAKX;AALD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA,CAAA;MAIY,aAAa,CAAA;AAIxB,IAAA,WAAA,CAAmB,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAHzB,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,8BAA8B;cAC7E,oCAAoC,CAAC;KAEf;AAE9C,IAAA,QAAQ,CAAC,MAA4B,EAAE,WAAA,GAAuB,IAAI,EAAA;AAChE,QAAA,MAAM,OAAO,GAAG,EAAE,kBAAkB,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,EAAE,CAAC;QAEvE,IAAI,SAAS,GAAG,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,EAAG,MAAM,CAAC,UAAU,CAAA,CAAE,CAAC;AAElD,QAAA,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,SAAS,IAAI,GAAG,CAAC;YAEjB,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,QAAmB,EAAE,KAAa,KAAI;gBAC/D,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,SAAS,IAAI,GAAG,CAAC;AAClB,iBAAA;gBACD,SAAS,IAAI,CAAgB,aAAA,EAAA,QAAQ,CAAC,IAAI,aAAa,QAAQ,CAAC,KAAK,CAAA,CAAE,CAAC;AAC1E,aAAC,CAAC,CAAC;AACJ,SAAA;QAED,SAAS,IAAI,CAAY,SAAA,EAAA,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC,MAAM,CAAA,CAAE,CAAC;QAClE,SAAS,IAAI,CAAY,SAAA,EAAA,MAAM,CAAC,WAAW,mBAAmB,MAAM,CAAC,YAAY,CAAA,CAAE,CAAC;AAEpF,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,MAAM,IAAG;YACjB,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAG,EAAA,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,MAAM,CAAA,CAAE,CAAC,CAAC;AAClE,aAAA;AACD,YAAA,OAAO,MAAM,CAAC;SACf,CAAC,CAAC,CAAC;KACP;IAED,QAAQ,CAAC,IAAU,EAAE,QAAgB,EAAA;AACnC,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAE1F,QAAA,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;AAChC,QAAA,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAChD,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACxC,YAAY,CAAC,KAAK,EAAE,CAAC;AACrB,QAAA,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACxC,YAAY,CAAC,MAAM,EAAE,CAAC;KACvB;;6HA7CU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iIAAb,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAFzB,UAAU;;;AC3BX;;;AAGE;MAOW,wBAAwB,CAAA;AAGjC,IAAA,WAAA,GAAA,GAAiB;IAEV,aAAa,GAAA;QAChB,IAAI,CAAC,UAAU,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;KACnC;IAEM,aAAa,CAAC,OAAe,EAAE,cAA8B,EAAA;AAChE,QAAA,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,EAAA;AAChD,QAAA,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,EAAE,EAAE;YAAE,OAAO;AAAE,SAAA;AAC3C,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AAAE,SAAA;AAE/C,QAAA,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAEpC,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,QAAA,KAAK,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;AACrD,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,OAAO,EAAE;AAC9C,gBAAA,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACxD,aAAA;AAAM,iBAAA;gBACH,MAAM;AACT,aAAA;AACJ,SAAA;AAED,QAAA,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;AAExD,QAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;KACnC;AAEM,IAAA,gBAAgB,CAAC,OAAe,EAAE,QAAgB,EAAE,QAAgB,EAAA;AACvE,QAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE/C,IAAI,CAAC,gBAAgB,EAAE;YAAE,OAAO;AAAE,SAAA;QAClC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;AAAE,SAAA;QAC1B,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;AAAE,SAAA;QAE1B,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;KACpD;IAEM,aAAa,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AAAE,SAAA;QAC/C,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IAEM,gBAAgB,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AAAE,SAAA;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAAE,YAAA,OAAO,EAAE,CAAC;AAAE,SAAA;AAErD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;KACvE;IAEM,aAAa,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAAE,IAAI,CAAC,aAAa,EAAE,CAAC;AAAE,SAAA;QAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAAE,YAAA,OAAO,EAAE,CAAC;AAAE,SAAA;AAErD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;KACvE;IAEM,iBAAiB,GAAA;QACpB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KAC3C;;wIAjEQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4IAAxB,wBAAwB,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,UAAU;;;MCNE,kBAAkB,CAAA;AAE3B,IAAA,WAAA,GAAA,GAAiB;AAEjB;;;;AAIG;AACI,IAAA,YAAY,CAAC,OAAO,EAAA;QACvB,MAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;KACxC;AAED;;;;;AAKG;AACI,IAAA,gBAAgB,CAAC,YAAY,EAAA;QAChC,MAAM,CAAC,WAAW,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,CAAC,CAAC;KAC7C;AAEM,IAAA,QAAQ,CAAC,WAAmB,EAAE,MAAW,EAAE,MAAM,GAAG,IAAI,EAAA;QAC3D,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,WAAW,CAAC;QAC7F,IAAI,OAAO,GAAG,CAAI,CAAA,EAAA,WAAW,MAAM,WAAW,CAAA,cAAA,EAAiB,WAAW,CAAA,EAAA,CAAI,CAAC;AAE/E,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,OAAO,GAAG,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,MAAM,EAAE,CAAC;AACpC,SAAA;AAED,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AACnC,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,SAAA;KACJ;;kIApCQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;sIAAlB,kBAAkB,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;;;MCIE,kBAAkB,CAAA;AAI3B,IAAA,WAAA,GAAA;QAFA,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;KAEK;IAEV,QAAQ,CAAC,GAAW,EAAE,KAAU,EAAA;AACnC,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC5B;AAEM,IAAA,QAAQ,CAAC,GAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3B;AAEM,IAAA,WAAW,CAAC,GAAW,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3B;;kIAhBQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,mBAAA,kBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAHf,MAAM,EAAA,CAAA,CAAA;2FAGT,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCDY,gBAAgB,CAAA;AAEzB,IAAA,OAAO,iBAAiB,GAAA;QACpB,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KAC/C;AAED,IAAA,OAAO,sBAAsB,GAAA;AACzB,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,OAAO,kBAAkB,GAAA;AACrB,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC;QAE3E,IAAI,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAAE,YAAA,OAAO,MAAM,CAAC;AAAE,SAAA;AAE3E,QAAA,OAAO,OAAO,CAAC;KAClB;;gIAhBQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oIAAhB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;ACFX;;;AAGE;MAEW,QAAQ,CAAA;AAEjB,IAAA,WAAA,GAAA,GACK;;IAGL,OAAO,gBAAgB,CAAC,IAAU,EAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAEjC,QAAA,OAAO,GAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAC3D;;IAGD,OAAO,gBAAgB,CAAC,KAAa,EAAA;AACjC,QAAA,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,QAAA,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5C;;IAGD,OAAO,WAAW,CAAC,IAAU,EAAA;AACzB,QAAA,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KACzD;;IAGD,OAAO,SAAS,CAAC,KAAU,EAAA;QACvB,IAAI,KAAK,YAAY,IAAI,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC;AAAE,SAAA;QAC5C,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC;AAAE,SAAA;AAE7B,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD;;AAGD,IAAA,OAAO,gBAAgB,CAAC,MAAiB,GAAA,EAAE,EAAE,SAAiB,EAAA;AAC1D,QAAA,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,aAAA;AAED,YAAA,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,YAAA,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AAC5C,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;;IAGD,OAAO,GAAG,CAAC,MAAM,EAAA;QACb,IAAI,MAAM,GAAG,EAAE,EAAE;YACb,OAAO,GAAG,GAAG,MAAM,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;AACJ;;AChED;;;AAGE;MAMW,cAAc,CAAA;AAKvB,IAAA,WAAA,CACI,cAAqC,EACrC,UAAsB,EACtB,QAAgB,EAAA;QALpB,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;AAOf,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;AAEM,IAAA,cAAc,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAA;AACzG,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;AAED,QAAA,IAAI,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AAC1B,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA,EAAA,EAAK,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,CAAE,CAAA;YAChF,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,CAAG,EAAA,KAAK,CAAE,CAAA;SACpB,CAAC;KACL;IAEM,wBAAwB,CAAC,QAAgB,EAAE,KAAa,EAAE,SAAS,GAAG,KAAK,EAAE,QAAQ,GAAG,KAAK,EAAA;AAChG,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;AAED,QAAA,IAAI,QAAQ,IAAI,KAAK,KAAK,CAAC,EAAE;AACzB,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAK,EAAA,EAAA,KAAK,CAAE,CAAA;YAC7C,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,CAAG,EAAA,KAAK,CAAE,CAAA;SACpB,CAAC;KACL;AAEM,IAAA,yBAAyB,CAAC,QAAgB,EAAE,KAAc,EAAE,SAAS,GAAG,KAAK,EAAA;AAChF,QAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;AACvC,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;QAED,OAAO;YACH,SAAS;AACT,YAAA,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAK,EAAA,EAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAE,CAAA;YAC1F,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,CAAG,EAAA,KAAK,CAAE,CAAA;SACpB,CAAC;KACL;AAEM,IAAA,sBAAsB,CAAC,QAAgB,EAAE,KAAW,EAAE,SAAS,GAAG,KAAK,EAAA;QAC1E,MAAM,KAAK,GAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAE1C,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;QAED,OAAO;YACH,SAAS;AACT,YAAA,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAK,EAAA,EAAA,KAAK,CAAC,kBAAkB,EAAE,CAAE,CAAA;YAClE,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAE,CAAA;SAC3C,CAAC;KACL;AAEM,IAAA,6BAA6B,CAAC,QAAgB,EAAE,KAAiB,EAAE,MAAM,GAAG,CAAC,EAChF,SAAS,GAAG,KAAK,EAAE,SAAS,GAAG,KAAK,EAAA;QACpC,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;AAC/D,YAAA,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC;AACrB,SAAA;AAAM,aAAA;AACH,YAAA,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;gBACb,IAAI,SAAS,KAAK,EAAE,EAAE;AAAE,oBAAA,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI,CAAC;AAAE,iBAAA;gBACvD,IAAI,SAAS,KAAK,EAAE,EAAE;AAAE,oBAAA,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,CAAA,CAAG,CAAC;AAAE,iBAAA;AACtD,gBAAA,SAAS,GAAG,CAAG,EAAA,SAAS,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;AACpE,gBAAA,SAAS,GAAG,CAAG,EAAA,SAAS,CAAG,EAAA,IAAI,EAAE,CAAC;AACtC,aAAC,CAAC,CAAC;AACN,SAAA;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAK,EAAA,EAAA,SAAS,CAAE,CAAA;YACjD,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,CAAG,EAAA,SAAS,CAAE,CAAA;SACxB,CAAC;KACL;AAEM,IAAA,mCAAmC,CAAC,QAAgB,EAAE,KAAiB,EAAE,OAAmB,EAC/F,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,EAAA;QAC7B,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,GAAG,GAAG,IAAI,CAAC;AAEf,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE;AACpB,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE;AAC/D,YAAA,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC;AACrB,SAAA;AAAM,aAAA;AACH,YAAA,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;gBACb,IAAI,SAAS,KAAK,EAAE,EAAE;AAAE,oBAAA,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI,CAAC;AAAE,iBAAA;gBACvD,IAAI,SAAS,KAAK,EAAE,EAAE;AAAE,oBAAA,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,CAAA,CAAG,CAAC;AAAE,iBAAA;AAEtD,gBAAA,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AAClD,gBAAA,SAAS,GAAG,CAAG,EAAA,SAAS,CAAG,EAAA,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC;AACpD,gBAAA,SAAS,GAAG,CAAG,EAAA,SAAS,CAAG,EAAA,IAAI,EAAE,CAAC;AACtC,aAAC,CAAC,CAAC;AACN,SAAA;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAK,EAAA,EAAA,SAAS,CAAE,CAAA;YACjD,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,CAAG,EAAA,SAAS,CAAE,CAAA;SACxB,CAAC;KACL;IAEM,+BAA+B,CAAC,QAAgB,EAAE,KAAoB,EAAE,MAAM,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,EAAA;QACxG,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,SAAS,GAAG,EAAE,CAAC;QAEnB,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,YAAA,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClC,SAAS,GAAG,MAAM,CAAC;AACtB,SAAA;aAAM,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;AAC9C,YAAA,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,SAAS,GAAG,KAAK,CAAC;AACrB,SAAA;AAAM,aAAA;AACH,YAAA,KAAK,CAAC,GAAG,CAAC,UAAU,IAAG;gBACnB,IAAI,SAAS,KAAK,EAAE,EAAE;AAAE,oBAAA,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,EAAA,CAAI,CAAC;AAAE,iBAAA;gBACvD,IAAI,SAAS,KAAK,EAAE,EAAE;AAAE,oBAAA,SAAS,GAAG,CAAA,EAAG,SAAS,CAAA,CAAA,CAAG,CAAC;AAAE,iBAAA;gBACtD,SAAS,GAAG,CAAG,EAAA,SAAS,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA,CAAE,CAAC;AACvD,gBAAA,SAAS,GAAG,CAAG,EAAA,SAAS,CAAG,EAAA,UAAU,EAAE,CAAC;AAC5C,aAAC,CAAC,CAAC;AACN,SAAA;QAED,OAAO;YACH,SAAS;YACT,KAAK,EAAE,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAK,EAAA,EAAA,SAAS,CAAE,CAAA;YACjD,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,CAAG,EAAA,SAAS,CAAE,CAAA;SACxB,CAAC;KACL;IAEM,gCAAgC,CAAC,QAAgB,EAAE,KAA4B,EAAE,SAAS,GAAG,KAAK,EACrG,aAAa,GAAG,IAAI,EAAA;QACpB,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AAAE,SAAA;QACzG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAAE,SAAA;AAEjG,QAAA,IAAI,aAAa;AACb,YAAA,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;AACrC,YAAA,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE;AACnC,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;QAED,OAAO;YACH,SAAS;AACT,YAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAC5B,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAC5B,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAA,CAAA,EAAI,KAAK,CAAC,UAAU,CAAG,CAAA,CAAA,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAA,CAAA,CAAG,CAAC,CAAC;YAC9E,QAAQ,EAAE,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAI,CAAA,EAAA,KAAK,CAAC,QAAQ,CAAE,CAAA;SACjD,CAAC;KACL;IAEM,6BAA6B,CAAC,QAAgB,EAAE,KAAyB,EAAE,SAAS,GAAG,KAAK,EAC/F,aAAa,GAAG,IAAI,EAAA;QACpB,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AAAE,SAAA;QACzG,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AAAE,SAAA;AAEjG,QAAA,IAAI,aAAa;AACb,YAAA,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU;AACrC,YAAA,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE;AACnC,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;QAED,OAAO;YACH,SAAS;AACT,YAAA,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,CAAG,EAAA,QAAQ,CAAE,CAAA;YACvB,KAAK,EAAE,GAAG,KAAK,CAAC,UAAU,CAAI,CAAA,EAAA,KAAK,CAAC,QAAQ,CAAE,CAAA;SACjD,CAAC;KACL;IAEM,2BAA2B,CAAC,QAAgB,EAAE,KAAuB,EAAE,SAAS,GAAG,KAAK,EAAE,aAAa,GAAG,IAAI,EAAA;QACjH,IAAI,WAAW,GAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,YAAY,GAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAExD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;AAChC,YAAA,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;AAC/B,YAAA,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE;AACjC,YAAA,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;AAC9B,YAAA,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;AACnC,SAAA;AAED,QAAA,IAAI,aAAa;AACb,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;AAC9E,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE;AAC/E,YAAA,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AACjD,SAAA;QAED,OAAO;YACH,SAAS;AACT,YAAA,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,CAAG,EAAA,QAAQ,CAAE,CAAA;AACvB,YAAA,KAAK,EAAE,CAAA,EAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAE,CAAA;SACxF,CAAC;KACL;AAEM,IAAA,oBAAoB,CAAC,WAAgC,EAAE,QAAgB,EAAE,YAAoB,EAAA;QAChG,IAAI,WAAW,GAAG,YAAY,CAAC;AAE/B,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAAE,wBAAA,OAAO,KAAK,CAAC;AAAE,qBAAA;AAE1C,oBAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACtB;AAEM,IAAA,sBAAsB,CAAC,WAAgC,EAAE,QAAgB,EAAE,YAAoB,EAAA;QAClG,IAAI,WAAW,GAAG,YAAY,CAAC;AAE/B,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAAE,wBAAA,OAAO,KAAK,CAAC;AAAE,qBAAA;AAE1C,oBAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;AACzB,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACtB;AAEM,IAAA,uBAAuB,CAAC,WAAgC,EAAE,QAAgB,EAAE,YAAqB,EAAA;QACpG,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,MAAM,cAAc,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;AAC9E,YAAA,IAAI,cAAc,IAAI,cAAc,CAAC,KAAK,KAAK,IAAI,IAAI,cAAc,CAAC,KAAK,KAAK,SAAS,EAAE;AACvF,gBAAA,IAAI,cAAc,CAAC,KAAK,KAAK,MAAM,EAAE;AACjC,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AAAM,qBAAA;AACH,oBAAA,OAAO,KAAK,CAAC;AAChB,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;AAEM,IAAA,oBAAoB,CAAC,WAAgC,EAAE,QAAgB,EAAE,YAAkB,EAAA;QAC9F,IAAI,WAAW,GAAS,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AAErD,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAAE,wBAAA,OAAO,KAAK,CAAC;AAAE,qBAAA;oBAE1C,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzC,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACtB;AAEM,IAAA,+BAA+B,CAAC,WAAgC,EAAE,QAAgB,EACrF,YAAwC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KACxF;AAEM,IAAA,iCAAiC,CAAC,WAAgC,EAAE,QAAgB,EACvF,YAAwC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KAC1F;AAEM,IAAA,2BAA2B,CAAC,IAAY,EAAE,WAAgC,EAAE,QAAgB,EAC/F,YAAwC,EAAA;QAExC,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,YAAY,CAAC,GAAG,CAAC,IAAI,IAAG;AACpB,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;AAAE,wBAAA,OAAO,KAAK,CAAC;AAAE,qBAAA;oBAE3F,WAAW,GAAG,EAAE,CAAC;AACjB,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;wBACpC,IAAI,IAAI,KAAK,MAAM,EAAE;AAAE,4BAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAAE,yBAAA;wBACnD,IAAI,IAAI,KAAK,QAAQ,EAAE;AAAE,4BAAA,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;AAAE,yBAAA;AAC1D,qBAAC,CAAC,CAAC;AAEH,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACtB;AAEM,IAAA,wBAAwB,CAAC,WAAgC,EAAE,QAAgB,EAC9E,OAAqC,EAAA;QAErC,IAAI,WAAW,GAAG,EAAE,CAAC;AACrB,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,IAAG;AACf,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,MAAM,EAAE;AAAE,wBAAA,OAAO,KAAK,CAAC;AAAE,qBAAA;oBAE3F,WAAW,GAAG,EAAE,CAAC;AACjB,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,IAAG;AACpC,wBAAA,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAC,CAAC,CAAC;AAEH,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC,CAAC;AACN,SAAA;AACD,QAAA,OAAO,WAAW,CAAC;KACtB;AAEM,IAAA,yBAAyB,CAAC,WAAgC,EAAE,QAAgB,EAC/E,SAAgC,EAAA;QAChC,IAAI,KAAK,GAAG,EAAE,CAAC;AAEf,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAAE,wBAAA,OAAO,KAAK,CAAC;AAAE,qBAAA;AAC1C,oBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACnB,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC,CAAC;AACN,SAAA;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC5D;AAEM,IAAA,wBAAwB,CAAC,WAAgC,EAAE,QAAgB,EAC9E,QAA4B,EAAA;QAC5B,IAAI,KAAK,GAAG,EAAE,CAAC;AAEf,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAAE,wBAAA,OAAO,KAAK,CAAC;AAAE,qBAAA;AAC1C,oBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACnB,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC,CAAC;AACN,SAAA;QACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;KAC1D;AAEM,IAAA,yBAAyB,CAAC,WAAgC,EAAE,QAAgB,EAC/E,SAA2B,EAAA;QAC3B,IAAI,KAAK,GAAG,EAAE,CAAC;AAEf,QAAA,IAAI,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,YAAA,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,KAAI;AACtB,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC5B,oBAAA,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;AAAE,wBAAA,OAAO,KAAK,CAAC;AAAE,qBAAA;AAC1C,oBAAA,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACnB,oBAAA,OAAO,IAAI,CAAC;AACf,iBAAA;AACD,gBAAA,OAAO,KAAK,CAAC;AACjB,aAAC,CAAC,CAAC;AACN,SAAA;QACD,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;KAC5D;IAEM,0BAA0B,CAAC,KAAa,EAAE,SAAgC,EAAA;AAC7E,QAAA,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC5C,QAAA,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAExC,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;AAAE,YAAA,OAAO,SAAS,CAAC;AAAE,SAAA;AAEjD,QAAA,SAAS,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAA,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;AAAE,YAAA,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAAE,SAAA;AAEjH,QAAA,OAAO,SAAS,CAAC;KACpB;IAEM,yBAAyB,CAAC,KAAa,EAAE,QAA4B,EAAA;AACxE,QAAA,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;AAC1C,QAAA,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAEtC,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;AAAE,YAAA,OAAO,QAAQ,CAAC;AAAE,SAAA;AAEhD,QAAA,QAAQ,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,QAAA,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;AAAE,YAAA,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;AAAE,SAAA;AAE7G,QAAA,OAAO,QAAQ,CAAC;KACnB;IAEM,0BAA0B,CAAC,KAAa,EAAE,SAA2B,EAAA;AACxE,QAAA,SAAS,CAAC,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;AAC5C,QAAA,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAExC,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;AAAE,YAAA,OAAO,SAAS,CAAC;AAAE,SAAA;AAEjD,QAAA,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,QAAA,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;AAAE,YAAA,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAAE,SAAA;AAEjH,QAAA,OAAO,SAAS,CAAC;KACpB;AAEM,IAAA,gBAAgB,CAAC,IAAU,EAAA;AAC9B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACnC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAEjC,QAAA,OAAO,GAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAC3D;AAEM,IAAA,gBAAgB,CAAC,KAAa,EAAA;AACjC,QAAA,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,QAAA,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,QAAA,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;KAC5C;AAEM,IAAA,WAAW,CAAC,IAAU,EAAA;AACzB,QAAA,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KACzD;AAEM,IAAA,SAAS,CAAC,KAAU,EAAA;QACvB,IAAI,KAAK,YAAY,IAAI,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC;AAAE,SAAA;QAC5C,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC;AAAE,SAAA;AAE7B,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD;AAEM,IAAA,GAAG,CAAC,MAAM,EAAA;QACb,IAAI,MAAM,GAAG,EAAE,EAAE;YACb,OAAO,GAAG,GAAG,MAAM,CAAC;AACvB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;AACJ;;ACvfD;;;AAGE;MAKW,mBAAmB,CAAA;AAO5B,IAAA,WAAA,CACI,cAAqC,EACrC,UAAsB,EACtB,QAAgB,EAAA;QAPpB,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;AASf,QAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACzB,QAAA,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,EAAA;QACjD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;AAC/B,YAAA,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,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;;AAGM,IAAA,iBAAiB,CAAC,YAAoB,EAAE,UAAkB,EAAE,YAAoB,EAAE,UAAkB,EAAA;AACvG,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE;AACrE,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACtB,gBAAA,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,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,cAAc,CAAC,KAAa,EAAE,KAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAA;QACpF,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AAClD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE;AACxB,YAAA,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,KAAK,IAAI,EAAE;AACpC,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AAED,YAAA,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,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,gBAAgB,CAAC,KAAa,EAAE,KAAa,EAAA;AAChD,QAAA,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;AACpB,YAAA,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;AACvH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAEM,IAAA,eAAe,CAAC,KAAa,EAAE,KAAa,EAAE,QAAQ,GAAG,KAAK,EAAA;QACjE,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AACnD,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;AACpC,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,iBAAiB,CAAC,KAAa,EAAE,KAAa,EAAA;AACjD,QAAA,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE;AACpB,YAAA,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;AACvH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,KAAK,IAAI,KAAK,GAAG,GAAG,EAAE;AACtB,YAAA,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;AACvH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;;AAGM,IAAA,cAAc,CAAC,YAAoB,EAAE,UAAkB,EAAE,YAAoB,EAAE,UAAkB,EAAA;QACpG,IAAI,CAAC,YAAY,EAAE;YAAE,YAAY,GAAG,CAAC,CAAC;AAAE,SAAA;QACxC,IAAI,CAAC,UAAU,EAAE;YAAE,UAAU,GAAG,CAAC,CAAC;AAAE,SAAA;QAEpC,IAAI,YAAY,GAAG,UAAU,EAAE;AAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACtB,gBAAA,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,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,YAAY,CAAC,KAAa,EAAE,KAAW,EAAA;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AAC3C,YAAA,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,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;;AAGM,IAAA,YAAY,CAAC,YAAoB,EAAE,UAAkB,EAAE,YAAkB,EAAE,UAAgB,EAAA;AAC9F,QAAA,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EAAE;AAC9B,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;AAC7E,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;QAEzE,IAAI,cAAc,GAAG,YAAY,EAAE;AAC/B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACtB,gBAAA,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,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,mBAAmB,CAAC,KAAa,EAAE,KAAiB,EAAA;QACvD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,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,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,gBAAgB,CAAC,KAAa,EAAE,KAAoB,EAAA;QACvD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,YAAA,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,aAAA,CAAC,CAAC;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;;IAGM,cAAc,CAAC,KAAa,EAAE,KAAa,EAAE,MAAc,EAAE,YAAY,GAAG,KAAK,EAAA;QACpF,IAAI,GAAG,GAAG,IAAI,CAAC;AACf,QAAA,IAAI,SAAiB,CAAC;QAEtB,IAAI,CAAC,KAAK,EAAE;AAAE,YAAA,OAAO,GAAG,CAAC;AAAE,SAAA;;AAG3B,QAAA,IAAI,YAAY,EAAE;YACd,SAAS,GAAG,MAAM,CAAC;YACnB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtC,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;YAChC,GAAG,GAAG,KAAK,CAAC;AACf,SAAA;AAAM,aAAA;AACH,YAAA,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;AAC1C,gBAAA,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AACrB,oBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE;wBAAE,GAAG,GAAG,KAAK,CAAC;wBAAC,MAAM;AAAE,qBAAA;AACxE,iBAAA;AAED,gBAAA,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AACrB,oBAAA,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,GAAG,EAAE;wBAAE,GAAG,GAAG,KAAK,CAAC;wBAAC,MAAM;AAAE,qBAAA;AACxE,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,YAAY,EAAE;YACd,MAAM,GAAG,SAAS,CAAC;AACtB,SAAA;QAED,IAAI,CAAC,GAAG,EAAE;AACN,YAAA,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,aAAA,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;AACJ;;AClND;;;AAGE;MAIW,eAAe,CAAA;AAExB,IAAA,WAAA,GAAA;KACC;AAEM,IAAA,OAAO,wBAAwB,CAAC,UAAkB,EAAE,QAAgB,EAAA;QACvE,OAAO;YACH,UAAU;YACV,QAAQ;AACR,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,QAAQ,EAAE,QAAQ;SACrB,CAAC;KACL;AAEM,IAAA,OAAO,qBAAqB,CAAC,UAAkB,EAAE,QAAgB,EAAA;QACpE,OAAO;YACH,UAAU;YACV,QAAQ;AACR,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,QAAQ,EAAE,QAAQ;SACrB,CAAC;KACL;AAEM,IAAA,OAAO,mBAAmB,CAAC,UAAgB,EAAE,QAAc,EAAA;QAC9D,OAAO;YACH,UAAU;YACV,QAAQ;AACR,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,QAAQ,EAAE,QAAQ;SACrB,CAAC;KACL;AACJ;;ACtCD;;;AAGE;MAaW,qBAAqB,CAAA;AAI9B,IAAA,WAAA,CACI,QAAgB,EAAA;QAHpB,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;AAKf,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC5B;;IAGD,OAAO,oBAAoB,CAAC,IAAY,EAAA;AACpC,QAAA,IAAI,WAAW,GAAG,IAAI,KAAK,EAAU,CAAC;AAEtC,QAAA,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE;AACrB,YAAA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACjC,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;;IAGD,OAAO,oBAAoB,CAAC,KAAoB,EAAA;QAC5C,IAAI,IAAI,GAAG,EAAE,CAAC;AAEd,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;IAED,OAAO,OAAO,CAAC,MAAc,EAAA;QACzB,IAAI,OAAO,GAAG,IAAI,CAAC;AAEnB,QAAA,KAAK,MAAM,OAAO,IAAI,MAAM,EAAE;AAC1B,YAAA,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;gBAChC,OAAO,GAAG,KAAK,CAAC;AACnB,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;IAED,OAAO,cAAc,CAAC,SAA6B,EAAA;AAE/C,QAAA,IAAI,WAAwB,CAAC;QAE7B,IAAI,QAAQ,EACR,QAAQ,CAAC;QAEb,QAAQ,GAAG,SAAS,CAAC;QACrB,QAAQ,GAAG,SAAS,CAAC;AAErB,QAAA,SAAS,CAAC,GAAG,CAAC,IAAI,IAAG;AACjB,YAAA,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS,EAAE;AAClD,gBAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACxB,gBAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE;AACtB,oBAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAA;AACD,gBAAA,IAAI,IAAI,CAAC,IAAI,GAAG,QAAQ,EAAE;AACtB,oBAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAC9B,WAAW,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACrD,SAAA;AAED,QAAA,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;YAC9B,WAAW,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAC5D,SAAA;AAED,QAAA,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;AAC9B,YAAA,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC;YACnC,WAAW,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACvD,SAAA;AAED,QAAA,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;YAChC,WAAW,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;AACrD,SAAA;AAED,QAAA,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC,CAAC;YACnC,WAAW,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACvD,SAAA;AAED,QAAA,IAAI,QAAQ,KAAK,CAAC,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClC,WAAW,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;AAC9D,SAAA;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;AAExD,QAAA,OAAO,WAAW,CAAC;KACtB;;AAGD,IAAA,OAAO,2BAA2B,CAAC,OAAmC,EAAE,IAAmB,EAAA;AACvF,QAAA,IAAI,GAAW,CAAC;AAChB,QAAA,IAAI,OAAsB,CAAC;QAE3B,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,OAAO,GAAG,IAAI,KAAK,EAAU,CAAC;AAE9B,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;AACZ,YAAA,IAAI,IAAI,EAAE;AACN,gBAAA,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;gBACnE,IAAI,GAAG,IAAI,CAAC,EAAE;AACV,oBAAA,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtB,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,OAAO,CAAC;KAClB;;IAGM,sBAAsB,CAAC,OAAmC,EAAE,IAAmB,EAAA;AAClF,QAAA,IAAI,GAAW,CAAC;QAEhB,IAAI,CAAC,IAAI,EAAE;YACP,OAAO;AACV,SAAA;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG;AACZ,YAAA,IAAI,IAAI,EAAE;AACN,gBAAA,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AACnE,gBAAA,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;AACZ,oBAAA,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;AACtF,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;AAGM,IAAA,iBAAiB,CAAC,OAA8B,EAAE,WAAmB,EAAE,SAAS,GAAG,KAAK,EAAA;AAC3F,QAAA,IAAI,GAAW,CAAC;QAEhB,IAAI,CAAC,WAAW,EAAE;YACd,OAAO;AACV,SAAA;AAED,QAAA,IAAI,WAAW,EAAE;AACb,YAAA,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;AAC1E,YAAA,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,aAAA;AACJ,SAAA;KACJ;;IAGM,cAAc,CAAC,WAAmB,EAAE,YAAoB,EAAA;AAE3D,QAAA,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY,EAAE;AAC/B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;;AAGD,QAAA,IAAI,MAAM,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE;AACpG,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,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,aAAA;YAED,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,EAAE;AAChD,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AAEJ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,mBAAmB,CAAC,OAAe,EAAE,OAAa,EAAA;AACrD,QAAA,IAAI,SAAiB,CAAC;AACtB,QAAA,IAAI,MAAc,CAAC;AAEnB,QAAA,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAEpC,SAAS,GAAG,CAAG,EAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,EAAG,OAAO,CAAA,CAAE,CAAC;AAE/E,QAAA,MAAM,GAAG,IAAI,CAAC,CAAA,EAAG,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,CAAA,CAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACpC,QAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;AAExD,QAAA,OAAO,CAAG,EAAA,SAAS,CAAG,EAAA,MAAM,EAAE,CAAC;KAClC;AAEM,IAAA,GAAG,CAAC,MAAM,EAAA;QACb,IAAI,MAAM,GAAG,EAAE,EAAE;YACb,OAAO,GAAG,GAAG,MAAM,CAAC;AACvB,SAAA;QACD,IAAI,MAAM,GAAG,EAAE,EAAE;AACb,YAAA,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;AAEM,IAAA,kBAAkB,CAAC,OAAe,EAAA;QACrC,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,UAAU,GAA8B,cAAc,CAAC,sBAAsB,CAAC,UAAU,CAAE,CAAC,CAAC,CAAC,CAAC;QACpG,UAAU,CAAC,KAAK,EAAE,CAAC;KACtB;AACJ;;MCvOY,QAAQ,CAAA;AAEjB,IAAA,WAAA,GAAA,GACK;IAEL,OAAO,YAAY,CAAC,IAAS,EAAE,QAAgB,EAAE,WAAoB,EAAE,MAAgB,EAAA;AACnF,QAAA,MAAM,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC;AAC3C,QAAA,MAAM,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,IAAI,CAAC;AACnE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;KACrC;AAED,IAAA,OAAO,YAAY,CAAC,IAAgB,EAAE,gBAAqC,IAAI,EAAA;QAC3E,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO;AAAE,SAAA;QAEtB,IAAI,CAAC,aAAa,EAAE;AAAE,YAAA,aAAa,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAAE,SAAA;AACjE,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAAE,YAAA,aAAa,CAAC,QAAQ,GAAG,UAAU,CAAC;AAAE,SAAA;AACrE,QAAA,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAAE,YAAA,aAAa,CAAC,QAAQ,GAAG,EAAE,CAAC;AAAE,SAAA;AAC7D,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE;AAAE,YAAA,aAAa,CAAC,eAAe,GAAG,GAAG,CAAC;AAAE,SAAA;AAC5E,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;AAAE,YAAA,aAAa,CAAC,UAAU,GAAG,EAAE,CAAC;AAAE,SAAA;AACjE,QAAA,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE;AAAE,YAAA,aAAa,CAAC,aAAa,GAAG,EAAE,CAAC;AAAE,SAAA;AAEvE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;KAClE;AAEO,IAAA,OAAO,QAAQ,CAAC,IAAU,EAAE,QAAgB,EAAA;AAChD,QAAA,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;;AAG1F,QAAA,MAAM,GAAG,GAAI,MAAM,CAAC,SAAiB,CAAC;AACtC,QAAA,IAAI,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE;AAC7B,YAAA,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;AACH,YAAA,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;AAChC,YAAA,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAChD,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACxC,YAAY,CAAC,KAAK,EAAE,CAAC;AACrB,YAAA,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;YACxC,YAAY,CAAC,MAAM,EAAE,CAAC;AACzB,SAAA;KACJ;AAEO,IAAA,OAAO,SAAS,CAAC,OAAY,EAAE,WAAoB,EAAE,SAAkB,EAAA;AAC3E,QAAA,WAAW,GAAG,WAAW,IAAI,EAAE,CAAC;AAChC,QAAA,SAAS,GAAG,SAAS,IAAI,GAAG,CAAC;AAE7B,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,QAAA,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,SAAS,EAAE;AACtE,YAAA,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;YAE/D,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5C,YAAA,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,aAAA;AAED,YAAA,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;AAC9C,YAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC9B,SAAA;AAED,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC;KACf;AAEO,IAAA,OAAO,YAAY,CAAC,QAAoB,EAAE,aAAkC,EAAA;QAChF,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAAE,YAAA,OAAO,EAAE,CAAC;AAAE,SAAA;QAEtD,MAAM,aAAa,GAAG,IAAI,CAAC;QAE3B,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,YAAY,GAAG,IAAI,CAAC;QACxB,MAAM,IAAI,GAAG,EAAE,CAAC;AAChB,QAAA,IAAI,UAAmB,CAAC;QAExB,IAAI,aAAa,CAAC,UAAU;AACxB,YAAA,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACrC,YAAA,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC;AACzC,SAAA;AAAM,aAAA;YACH,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,UAAU,CAAC,OAAO,CAAC,GAAG,IAAG;YACrB,UAAU,GAAG,IAAI,CAAC;YAElB,IAAI,aAAa,CAAC,aAAa;AAC3B,gBAAA,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,aAAA;AAED,YAAA,IAAI,UAAU,EAAE;AACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,gBAAA,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,aAAA;AACL,SAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,WAAW,KAAI;YACxD,IAAI,KAAK,GAAG,IAAI,CAAC;YACjB,IAAI,WAAW,GAAG,IAAI,CAAC;AAEvB,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;gBACf,IAAI,CAAC,KAAK,EAAE;AAAE,oBAAA,UAAU,IAAI,aAAa,CAAC,eAAe,CAAC;AAAE,iBAAA;AAE5D,gBAAA,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAC/B,gBAAA,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,SAAS,EAAE;oBAAE,WAAW,GAAG,EAAE,CAAC;AAAE,iBAAA;AAC5E,gBAAA,QAAQ,QAAQ,WAAW,CAAC;AACxB,oBAAA,KAAK,QAAQ;AACT,wBAAA,WAAW,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC;wBAC3C,MAAM;AACV,oBAAA,KAAK,SAAS;AACV,wBAAA,WAAW,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAG,EAAA,WAAW,CAAE,CAAA,CAAC;4BACnD,aAAa,CAAC,QAAQ,CAAC,CAAG,EAAA,WAAW,CAAE,CAAA,CAAC,GAAG,WAAW,CAAC;wBAC3D,MAAM;AACV,oBAAA,KAAK,QAAQ;AACT,wBAAA,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;AACjD,iBAAA;gBACD,UAAU,IAAI,WAAW,CAAC;gBAE1B,KAAK,GAAG,KAAK,CAAC;AAClB,aAAC,CAAC,CAAC;YAEH,OAAO,UAAU,GAAG,aAAa,CAAC;AAEtC,SAAC,EAAE,YAAY,GAAG,aAAa,CAAC,CAAC;AAEjC,QAAA,OAAO,OAAO,CAAC;KAClB;IAED,OAAO,SAAS,CAAC,IAAU,EAAA;QACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACnC,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAE3B,YAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACjB,gBAAA,IAAI,OAAY,CAAC;AACjB,gBAAA,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;gBACxB,IAAI,CAAC,OAAO,EAAE;oBACV,MAAM,CAAC,yBAAyB,CAAC,CAAC;oBAClC,OAAO;AACV,iBAAA;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChC,gBAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,oBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,iBAAA;AAAM,qBAAA;oBACH,MAAM,CAAC,yBAAyB,CAAC,CAAC;AACrC,iBAAA;AAEL,aAAC,CAAC;YAEF,MAAM,CAAC,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KACN;AACJ,CAAA;MAUY,kBAAkB,CAAA;AAM9B;;MC7JY,kBAAkB,CAAA;AAc9B,CAAA;MAUY,eAAe,CAAA;AAM3B,CAAA;MAWY,mBAAmB,CAAA;AAO/B;;MCxDY,6BAA6B,CAAA;AAatC,IAAA,WAAA,CAAmB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAX3B,IAAO,CAAA,OAAA,GAAG,EAAE,OAAO,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,CAAC;QAEtD,IAAc,CAAA,cAAA,GAAG,2DAA2D,CAAC;QAC7E,IAAe,CAAA,eAAA,GAAG,2DAA2D,CAAC;QAC9E,IAAe,CAAA,eAAA,GAAG,2DAA2D,CAAC;KAO9C;AAExC,IAAA,gBAAgB,CAAC,MAAmC,EAAA;AAChD,QAAA,MAAM,SAAS,GAAG,IAAI,KAAK,EAAU,CAAC;AAEtC,QAAA,SAAS,CAAC,IAAI,CAAC,CAAA,SAAA,EAAY,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAE,CAAA,CAAC,CAAC;AACzD,QAAA,SAAS,CAAC,IAAI,CAAC,CAAA,KAAA,EAAQ,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAE,CAAA,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3C,SAAS,CAAC,IAAI,CAAC,CAAA,YAAA,EAAe,MAAM,CAAC,MAAM,CAAE,CAAA,CAAC,CAAC;AAClD,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,cAAc,CAAI,CAAA,EAAA,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,CAAC,CAAC;KACzE;AAED,IAAA,gBAAgB,CAAC,EAAU,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAM,GAAG,IAAI,CAAC,cAAc,CAAA,CAAA,EAAI,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAC3E;IAED,eAAe,CAAC,UAAkB,EAAE,OAAgB,EAAA;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7E,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAA,CAAE,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1E,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,eAAe,CAAA,CAAE,EAAE,MAAM,CAAC,CAAC;AAC5D,SAAA;KACJ;IAED,qBAAqB,CAAC,eAAqC,EAAE,OAAgB,EAAA;AACzE,QAAA,IAAI,iBAAsB,CAAC;AAC3B,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9D,YAAA,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AACtD,SAAA;QAED,iBAAiB,GAAG,EAAE,CAAC;AACvB,QAAA,iBAAiB,CAAC,MAAM,GAAG,QAAQ,CAAC;AACpC,QAAA,iBAAiB,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AACjD,QAAA,iBAAiB,CAAC,cAAc,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,GAAK,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAC,CAAA,EAAI,IAAI,CAAC,OAAO,EAAE,CAAI,CAAA,EAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC;AAClL,QAAA,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;QAEpC,iBAAiB,CAAC,kBAAkB,GAAG;AACnC,YAAA,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;AACpD,gBAAA,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;AACvD,gBAAA,EAAE,kBAAkB,EAAE,MAAM,CAAC,cAAc,EAAE;AAChD,aAAA;SACJ,CAAC;AAEF,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,CAAA,CAAE,EAAE,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACrF,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,eAAe,CAAA,CAAE,EAAE,iBAAiB,CAAC,CAAC;AACvE,SAAA;KACJ;AAED,IAAA,2BAA2B,CAAC,aAAqB,EAAE,OAAO,GAAG,KAAK,EAAA;QAC9D,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,eAAe,CAAA,eAAA,EAAkB,aAAa,CAAA,CAAE,CAAC;AACrE,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CACvC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CACxE,CAAC;KACL;AAED,IAAA,yBAAyB,CAAC,WAAmB,EAAE,OAAO,GAAG,KAAK,EAAA;QAC1D,MAAM,GAAG,GAAG,CAAG,EAAA,IAAI,CAAC,eAAe,CAAA,CAAA,EAAI,WAAW,CAAA,CAAE,CAAC;AACrD,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,IAAI,CACvC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CACtE,CAAC;KACL;IAEO,YAAY,CAAC,GAAW,EAAE,OAAgB,EAAA;AAC9C,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC3C,SAAA;AAAM,aAAA;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7B,SAAA;KACJ;IAEO,kBAAkB,CAAC,IAAY,EAAE,QAAa,EAAA;AAClD,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YAAE,OAAO;AAAE,SAAA;AAC5E,QAAA,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE7B,QAAA,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;AACzC,QAAA,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;AAClD,QAAA,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC9C,QAAA,UAAU,CAAC,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;AAC9C,QAAA,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AAClC,QAAA,UAAU,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AAEpC,QAAA,OAAO,UAAU,CAAC;KACrB;IAED,0BAA0B,CAAC,aAAqB,EAAE,WAAmB,EAAE,WAAqB,EAAE,OAAO,GAAG,KAAK,EAAA;AACzG,QAAA,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,EAAA;AACrG,QAAA,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,EAAA;AAE5D,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;AAEtC,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,MAAK;AAChC,YAAA,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;AACzC,YAAA,UAAU,CAAC,aAAa,GAAG,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,GAAG,EAAE,CAAC;AACpE,YAAA,UAAU,CAAC,WAAW,GAAG,CAAC,IAAI,KAAK,aAAa,IAAI,MAAM,GAAG,EAAE,CAAC;AAChE,YAAA,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC;AAC9B,YAAA,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;AACtB,YAAA,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;YAE9B,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAAE,OAAO;AAAE,aAAA;YAE/C,IAAI,IAAI,KAAK,eAAe,EAAE;gBAC1B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,CAAC;AAC7E,qBAAA,SAAS,CAAC,CAAC,QAA0B,KAAI;AACtC,oBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACrF,iBAAC,EAAE,CAAC,KAAK,KAAI;oBACT,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC7E,iBAAC,CAAC,CAAC;AACV,aAAA;YAED,IAAI,IAAI,KAAK,aAAa,EAAE;gBACxB,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,OAAO,CAAC;AAC3E,qBAAA,SAAS,CAAC,CAAC,QAA0B,KAAI;AACtC,oBAAA,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACrF,iBAAC,EAAE,CAAC,KAAK,KAAI;oBACT,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC7E,iBAAC,CAAC,CAAC;AACV,aAAA;SAEJ,EAAE,WAAW,CAAC,CAAC;KACnB;IAEO,oBAAoB,CAAC,MAAc,EAAE,UAA4B,EAAE,QAA0B,EACjG,UAAe,EAAE,WAAqB,EAAA;AAEtC,QAAA,IAAI,QAAQ,EAAE;YACV,UAAU,GAAG,QAAQ,CAAC;AACzB,SAAA;AAAM,aAAA;AACH,YAAA,UAAU,CAAC,KAAK,GAAG,CAAsC,mCAAA,EAAA,MAAM,EAAE,CAAC;AAClE,YAAA,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;AACjC,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC;YACxB,UAAU,CAAC,MAAM,KAAK,SAAS;AAC/B,YAAA,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE;YACjC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC7B,SAAA;AAED,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACzC;AAEO,IAAA,uBAAuB,CAAC,KAAU,EAAE,UAA4B,EACpE,UAAe,EAAE,WAAqB,EAAA;QAEtC,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACpC,YAAA,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;YACzB,IAAI,KAAK,CAAC,KAAK,EAAE;gBACb,QAAQ,GAAG,EAAE,CAAC;AACd,gBAAA,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE;AAAE,oBAAA,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;AAAE,iBAAA;AACtD,gBAAA,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE;oBAAE,QAAQ,GAAG,CAAG,EAAA,QAAQ,CAAM,GAAA,EAAA,KAAK,CAAC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC;AAAE,iBAAA;AAC/E,gBAAA,IAAI,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE;oBAAE,QAAQ,GAAG,CAAG,EAAA,QAAQ,CAAM,GAAA,EAAA,KAAK,CAAC,KAAK,CAAC,eAAe,CAAA,CAAE,CAAC;AAAE,iBAAA;AAClG,aAAA;AACJ,SAAA;AAAM,aAAA;YACH,QAAQ,GAAG,KAAK,CAAC;AACpB,SAAA;AAED,QAAA,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC;AAC5B,QAAA,UAAU,CAAC,MAAM,GAAG,SAAS,CAAC;QAC9B,WAAW,CAAC,UAAU,CAAC,CAAC;QACxB,aAAa,CAAC,UAAU,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;KACzC;AAEO,IAAA,OAAO,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,GAAG,GAAG,CAAG,EAAA,GAAG,EAAE,CAAC;QACnB,IAAI,GAAG,GAAG,EAAE,EAAE;AAAE,YAAA,GAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;AAAE,SAAA;AAClC,QAAA,OAAO,GAAG,CAAC;KACd;;6IAzMQ,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iJAA7B,6BAA6B,EAAA,CAAA,CAAA;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;;;MCKE,+BAA+B,CAAA;AAYxC,IAAA,WAAA,CACW,aAA4B,EAC5B,UAAyC,EACzC,cAAqC,EAAA;QAFrC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAA+B;QACzC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAuB;QAVvC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;QAEpB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AACf,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QAcpC,IAAU,CAAA,UAAA,GAAQ,EAAE,CAAC;QAE7B,IAAQ,CAAA,QAAA,GAAQ,EAAE,CAAC;KAVlB;IAYD,QAAQ,GAAA;AACJ;;;;;;;AAOO;QAEP,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IAED,eAAe,GAAA;QACX,IAAI,CAAC,oBAAoB,GAAG;AACxB,YAAA,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,EAAE;AACpC,YAAA,EAAE,KAAK,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,EAAE;SAC1C,CAAC;QAEF,IAAI,CAAC,gBAAgB,GAAG;AACpB,YAAA,EAAE,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE;AACxC,YAAA,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE;SACjD,CAAC;QAEF,IAAI,CAAC,oBAAoB,GAAG;AACxB,YAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;AACnC,YAAA,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;SAC1C,CAAC;QAEF,IAAI,CAAC,aAAa,GAAG;AACjB,YAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;AACrC,YAAA,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE;AACrC,YAAA,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE;AACpC,YAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE;AACvC,YAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;AACtC,YAAA,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE;AACnC,YAAA,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE;SACzC,CAAC;QAEF,IAAI,CAAC,qBAAqB,GAAG;AACzB,YAAA,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;AACrE,YAAA,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE;SACzE,CAAC;AAEF,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;AACtC,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,CAAC,CAAC;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;KACtC;AAEM,IAAA,qBAAqB,CAAC,QAA6B,EAAA;QACtD,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;AAAE,SAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;KACzB;IAEM,qBAAqB,GAAA;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;AAED,IAAA,qBAAqB,CAAC,KAAK,EAAA;QACvB,OAAO,CAAA,EAAG,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,CAAA,CAAE,CAAC;KAC1C;IAED,mBAAmB,GAAA;QACf,QAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;KAC3C;IAED,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;KACrC;IAED,YAAY,GAAA;QACR,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,KAAK,EAAE;KAC3C;IAED,qBAAqB,GAAA;AACjB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAE,CAAC;AAAE,SAAA;AAChJ,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;YAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAE,CAAC;AAAE,SAAA;AAClJ,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,EAAE,CAAC;AAC9B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;AAClC,QAAA,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC;KACjC;IAED,mBAAmB,GAAA;AACf,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;AAExB,QAAA,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAG,EAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,CAAE,CAAC;KACtG;IAED,mBAAmB,GAAA;KAClB;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;QACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,MAAM,EAAE;KAC7C;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;KAClC;AAED,IAAA,OAAO,CAAC,GAAW,EAAA;AACf,QAAA,IAAI,GAAG,GAAG,CAAG,EAAA,GAAG,EAAE,CAAC;QACnB,IAAI,GAAG,GAAG,EAAE,EAAE;AAAE,YAAA,GAAG,GAAG,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAC;AAAE,SAAA;AAClC,QAAA,OAAO,GAAG,CAAC;KACd;IAED,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;AAAE,SAAA;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE;YAAE,OAAO;AAAE,SAAA;AAEjC,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,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;AACvD,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,GAAG,EAAE,CAAC;AAExC,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;AAChC,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,CAAG,EAAA,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA,QAAA,CAAU,CAAC;AACnL,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,CAAA,EAAG,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,UAAU,CAAC;AAC1G,SAAA;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;AACtG,QAAA,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;AACtD,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;;AAGtF,QAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;AAC1E,YAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;AACvE,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AAC5B,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG;AACpB,oBAAA,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;AAC/D,oBAAA,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;iBACpE,CAAC;AACL,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG;AACrB,oBAAA,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;AAC/D,oBAAA,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;AACjE,oBAAA,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;iBACvC,CAAC;AACL,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE;AAC7B,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG;AACtB,oBAAA,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;AAC/D,oBAAA,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC;AACjE,oBAAA,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;iBAC7B,CAAC;AACL,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACrB,gBAAA,IAAI,CAAC,UAAU,CAAC,eAAe,GAAG;AAC9B,oBAAA,SAAS,EAAE;AACP,wBAAA,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;AAC9B,wBAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;AACnC,qBAAA;AACD,oBAAA,UAAU,EAAE;AACR,wBAAA,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC;AAChE,wBAAA,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAG,CAAC;AACrE,qBAAA;iBACJ,CAAC;AACL,aAAA;;AAGD,YAAA,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,MAAK;AAC9E,aAAC,CAAC,CAAC;AACN,SAAA;QAED,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtC;IAED,eAAe,CAAC,KAAa,EAAE,IAAY,EAAA;QACvC,IAAI,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAAE,SAAA;QACpD,IAAI,IAAI,KAAK,GAAG,EAAE;YAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAAE,SAAA;KACvD;IAED,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAA;QAC3C,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC;AAAE,SAAA;AAC7C,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC;AAAE,SAAA;AAChG,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;AAAE,YAAA,OAAO,KAAK,CAAC;AAAE,SAAA;AACjG,QAAA,OAAO,IAAI,CAAC;KACf;IAED,QAAQ,GAAA;AAEJ,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;AACnE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AAC7B,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;AACrE,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;QAED,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;AAC5F,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;AACpF,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;AAC5B,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE;AACjC,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;AACxE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACxE,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;AACzE,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AACzD,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AAC7D,gBAAA,OAAO,KAAK,CAAC;AAChB,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACrB,gBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;AACpF,oBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACtE,oBAAA,OAAO,KAAK,CAAC;AAChB,iBAAA;AAED,gBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,CAAC,EAAE;AACjC,oBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;AACrF,oBAAA,OAAO,KAAK,CAAC;AAChB,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;;+IAnRQ,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,6BAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,mBAAA,+BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,idCZ5C,iwbA6SA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,eAAA,EAAA,WAAA,EAAA,eAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDjSa,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAN3C,SAAS;+BACI,8BAA8B,EAAA,QAAA,EAAA,iwbAAA,EAAA,CAAA;qLAMc,qBAAqB,EAAA,CAAA;sBAA1E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAE3C,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;;;MEhBE,iBAAiB,CAAA;AAE5B,IAAA,SAAS,CAAC,KAAU,EAAE,MAAA,GAAiB,YAAY,EAAA;QACjD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvD,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAClB,aAAA,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;AACpB,aAAA,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AAEnD,QAAA,OAAO,aAAa,CAAC;KACtB;;iIAVU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;+HAAjB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,eAAe;AACtB,iBAAA,CAAA;;;MC4BY,wBAAwB,CAAA;AACnC,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE,CAAC,6BAA6B,CAAC;SAC3C,CAAC;KACH;;wIANU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAxB,mBAAA,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,iBAlBjC,+BAA+B;AAC/B,QAAA,iBAAiB,aAGjB,YAAY;QACZ,QAAQ;QACR,WAAW;AACX,QAAA,gBAAgB,aAGhB,+BAA+B;QAC/B,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAOR,mBAAA,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,EALxB,SAAA,EAAA;QACT,6BAA6B;AAC9B,KAAA,EAAA,OAAA,EAAA,CAXC,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,gBAAgB,CAAA,EAAA,CAAA,CAAA;2FAWP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBApBpC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,+BAA+B;wBAC/B,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,QAAQ;wBACR,WAAW;wBACX,gBAAgB;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,+BAA+B;wBAC/B,iBAAiB;AAClB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,6BAA6B;AAC9B,qBAAA;AACF,iBAAA,CAAA;;;AC9BD;;AAEG;AAmCH;;ACrCA;;AAEG;;;;"}
|