sf-crud 12.0.3 → 12.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sf-crud.umd.js +96 -22
- package/bundles/sf-crud.umd.js.map +1 -1
- package/esm2015/lib/components/control/control.component.js +2 -2
- package/esm2015/lib/components/registro/registro.component.js +58 -15
- package/esm2015/lib/components/registro-child/registro-child.component.js +25 -7
- package/esm2015/lib/shared/models/crud-config.model.js +3 -1
- package/fesm2015/sf-crud.js +84 -21
- package/fesm2015/sf-crud.js.map +1 -1
- package/lib/components/registro/registro.component.d.ts +6 -3
- package/lib/components/registro-child/registro-child.component.d.ts +1 -0
- package/lib/shared/models/crud-config.model.d.ts +6 -0
- package/package.json +1 -1
package/fesm2015/sf-crud.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sf-crud.js","sources":["../../../projects/sf-crud/src/lib/shared/models/shema.model.ts","../../../projects/sf-crud/src/lib/shared/models/crud-config.model.ts","../../../projects/sf-crud/src/lib/shared/services/general.service.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.html","../../../projects/sf-crud/src/lib/components/control/control.component.ts","../../../projects/sf-crud/src/lib/components/control/control.component.html","../../../projects/sf-crud/src/lib/components/registro-detalle/registro-detalle.component.ts","../../../projects/sf-crud/src/lib/components/registro-detalle/registro-detalle.component.html","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.ts","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.html","../../../projects/sf-crud/src/lib/sf-crud.service.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.html","../../../projects/sf-crud/src/lib/sf-crud.component.ts","../../../projects/sf-crud/src/lib/sf-crud.module.ts","../../../projects/sf-crud/src/public-api.ts","../../../projects/sf-crud/src/sf-crud.ts"],"sourcesContent":["export class Shema {\r\n type: string = '';\r\n subtype: string = '';\r\n config?: any;\r\n properties?: any;\r\n enum?: any[];\r\n default?:any;\r\n validations?: any\r\n}\r\n\r\n","import { Message } from \"primeng/api\";\r\nimport { Shema } from \"./shema.model\";\r\n\r\nexport class CrudConfig {\r\n idEntidad: string = '';\r\n tablero: ConfigTablero = new ConfigTablero();\r\n uiEsquema: any;\r\n esquema: Shema = new Shema();\r\n registro: ConfigRegistro = new ConfigRegistro();\r\n}\r\n\r\n\r\nexport class ConfigTablero {\r\n columns: any[] = [];\r\n endpoint: string = '';\r\n method: string = '';\r\n server: string = '';\r\n filters: string[] = [];\r\n keys: { key: string, scope?: string }[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operations[] = [];\r\n btnBack: string = '';\r\n label?: string;\r\n}\r\n\r\nexport class Operations {\r\n type: string = '';\r\n server: string = '';\r\n endpoint: string = ''\r\n method: string = '';\r\n validations: Validations = new Validations();\r\n redirect?: string;\r\n errorChecking?: RequestChecking;\r\n answerChecking?: RequestChecking;\r\n}\r\n\r\nexport class Validations {\r\n type: string = '';\r\n required: { field: string, message: string }[] = [];\r\n server: string = '';\r\n endpoint: string = '';\r\n operations: any;\r\n}\r\n\r\nexport class RequestChecking {\r\n constructor(\r\n public dynamics: Message,\r\n public statics: Message,\r\n public swal: boolean,\r\n public redirect: string\r\n ){}\r\n}\r\n\r\n\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CrudConfig } from '../models/crud-config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralService {\r\n\r\n public generales: string = '';\r\n public jsonConfig: any;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n this.jsonConfig = JSON.parse(sessionStorage.getItem('ConfigJSON') || '{}');\r\n this.generales = this.jsonConfig?.ServidorGenerales;\r\n }\r\n\r\n async getCrudByEntidad(idKatios: string, idEntidad: string) {\r\n return this.http.get(`${this.generales}crud/${idKatios}/${idEntidad}`)\r\n .toPromise()\r\n .then((res: any) => <CrudConfig>res.data)\r\n .then(data => { return data })\r\n }\r\n\r\n async genericRequest(method: string, servidor: string, endpoint: string, data?: any) {\r\n switch (method) {\r\n case 'GET':\r\n return this.http.get(`${this.jsonConfig[servidor]}${endpoint}`)\r\n .toPromise();\r\n case 'POST':\r\n return this.http.post(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'PUT':\r\n return this.http.put(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'DELETE':\r\n return this.http.delete(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n default:\r\n return\r\n }\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigTablero, CrudConfig } from '../../shared/models/crud-config.model';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { Router } from '@angular/router';\r\nimport * as _ from \"lodash\";\r\nimport * as jsonpath from 'jsonpath';\r\n\r\n@Component({\r\n selector: 'sf-crudtablero',\r\n templateUrl: './tablero.component.html'\r\n})\r\nexport class TableroComponent implements OnInit {\r\n\r\n @Input() opciones: any[] = [];\r\n @Input() idEntidad: string = '';\r\n @Input() idKatios: string = '';\r\n @Input() user: any;\r\n @Input() dataExt: any;\r\n @Output() onSelectAction: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public items: MenuItem[] = [];\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public data: any[] = [];\r\n public btn: { create: any, read: any, update: any, delete: any } = { create: undefined, read: undefined, update: undefined, delete: undefined }\r\n public itemSelected: any;\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud()\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.crudConfig = res;\r\n this.getInfoTablero(this.crudConfig.tablero);\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n getInfoTablero(configTablero: ConfigTablero) {\r\n this.generalService.genericRequest(configTablero.method, configTablero.server, this.aplyKeys(configTablero.keys, configTablero.endpoint, this.dataExt))\r\n .then((res: any) => {\r\n let aux;\r\n if (!Array.isArray(res)) aux = res.data; else aux = res;\r\n this.generateData(aux);\r\n this.loadOptions();\r\n this.enProceso = false;\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n generateData(data: any[]) {\r\n data.forEach((item: any) => {\r\n let newItem: any = {};\r\n this.crudConfig.tablero.columns.forEach(col => {\r\n newItem[col.col] = this.getValue(col.col, item)\r\n })\r\n this.data.push(newItem)\r\n })\r\n console.log(this.data)\r\n }\r\n getValue(path: string, item: any): any {\r\n if (path.includes(\".\")) return jsonpath.query(item, path)[0]\r\n return item[path]\r\n }\r\n\r\n loadOptions() {\r\n this.items = [];\r\n this.btn.create = this.opciones.find(x => x.label == 'Crear');\r\n this.opciones.filter((opc: any) => opc.valor.action).forEach(opc => {\r\n this.items.push({ label: opc.label, icon: opc.icon, command: () => this.execAction(opc.valor) })\r\n })\r\n }\r\n\r\n redirect(accion: string, data?: any) {\r\n switch (accion) {\r\n case 'create':\r\n this.router.navigateByUrl(this.btn.create?.valor?.redirect || '');\r\n break;\r\n case 'read':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.read.valor.redirect, data));\r\n break\r\n case 'update':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.update.valor.redirect, data));\r\n break\r\n case 'delete':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.delete.valor.redirect, data));\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n aplyKeys(keys: { key: string, scope?: string }[], endpoint: string, data?: any) {\r\n keys.forEach(key => {\r\n switch (key.key) {\r\n case '@ndoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.NDOC || '')\r\n break;\r\n case '@tdoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.TDOC || '')\r\n break;\r\n case '@idKatios':\r\n endpoint = endpoint.replace(key.key, this.idKatios)\r\n break;\r\n default:\r\n if (endpoint.includes(key.key) && data) endpoint = endpoint.replace(key.key, jsonpath.query(data, key?.scope || '')[0]);\r\n break;\r\n }\r\n });\r\n return endpoint;\r\n }\r\n\r\n execAction(params: any) {\r\n switch (params.action) {\r\n case 'redirect':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, params.link, this.itemSelected));\r\n break;\r\n default:\r\n this.onSelectAction.emit({ data: _.cloneDeep(this.itemSelected), params })\r\n break;\r\n }\r\n }\r\n}\r\n","<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <p-toolbar styleClass=\"mb-4 gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\r\n class=\"p-button-success mr-2\" (click)=\"redirect('create')\"></button>\r\n </ng-template>\r\n </p-toolbar>\r\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\r\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\r\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords}\" [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <h5 class=\"m-0\">{{crudConfig.tablero?.label || idEntidad}}</h5>\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\r\n placeholder=\"Buscar...\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <th>Acción</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <td *ngSwitchCase=\"'text'\">{{rowData[col.col]}}</td>\r\n <td *ngSwitchCase=\"'date:yyyy-mm-dd'\">{{rowData[col.col] | date: 'yyyy-MM-dd'}}</td>\r\n <td *ngSwitchCase=\"'currency:USD'\">{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <td>\r\n <p-splitButton icon=\"pi pi-align-justify\" [model]=\"items\" appendTo=\"body\"\r\n (onDropdownClick)=\"itemSelected = rowData\"></p-splitButton>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Message } from 'primeng/api';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'sf-control',\r\n templateUrl: './control.component.html'\r\n})\r\nexport class ControlComponent implements OnInit {\r\n\r\n @Input() control: Shema = new Shema();\r\n @Input() label: string = '';\r\n @Input() value: any;\r\n @Input() appendTo: any;\r\n @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() sendNotification: EventEmitter<Message> = new EventEmitter<Message>();\r\n @Output() sendObject: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public isLoading: boolean = false;\r\n public dataFromService: any[] = [];\r\n public uploadedFiles: any[] = [];\r\n public displayAdd: boolean = false;\r\n public tempValue: any = {}\r\n\r\n constructor(\r\n private generalService: GeneralService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.control?.config && this.control.subtype == 'dropdown') this.loadDataFromService();\r\n if (this.value && this.control.subtype == 'autocomplete') this.setDefaultValue();\r\n if (this.value && this.control.type == 'date') this.setDate();\r\n }\r\n\r\n sendValue() {\r\n this.setValue.emit(this.value);\r\n }\r\n\r\n sendValueFromObject(event: any) {\r\n switch (typeof (this.control.config.optionValue)) {\r\n case 'object':\r\n this.control.config.optionValue.forEach((op: any) => op['value'] = event[op.key])\r\n this.setValue.emit(this.control.config.optionValue);\r\n break;\r\n default:\r\n this.setValue.emit(event[this.control.config.optionValue]);\r\n break;\r\n }\r\n }\r\n\r\n validateValue(type: string) {\r\n switch (type) {\r\n case 'email':\r\n let regex: RegExp = new RegExp(/([\\w\\.\\-_]+)?\\w+@[\\w-_]+(\\.\\w+){1,}/igm);\r\n if (regex.test(this.value)) this.sendValue();\r\n else {\r\n this.value = null;\r\n this.sendValue()\r\n this.sendNotification.emit({ severity: 'warn', detail: 'El correo no es válido' })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n loadDataFromService() {\r\n this.isLoading = true;\r\n this.dataFromService = [];\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint)\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n loadDataFromControlBusquedaService(event: any) {\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint.replace('@query', event?.query || ''))\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n onUpload(event: any) {\r\n let file = event.files[0];\r\n let formData = new FormData();\r\n let path = 'Imagenes/CRUD/temp';\r\n formData.append('uploadFile', file);\r\n formData.append('Ruta', `/${path}`);\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint, formData)\r\n .then(() => {\r\n this.sendNotification.emit({ severity: 'info', detail: `Archivo cargado correctamente!` })\r\n this.uploadedFiles.push(file);\r\n this.isLoading = false;\r\n this.value = `${this.generalService.jsonConfig.Server}${path}/${file.name}`\r\n this.sendValue()\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n this.isLoading = false\r\n this.sendNotification.emit({ severity: 'error', detail: `Error al cargar el archivo!` })\r\n })\r\n }\r\n\r\n refresData() {\r\n if (this.control?.config?.endpointtemp) this.loadDataFromService();\r\n }\r\n\r\n setDefaultValue(){\r\n Object.defineProperty(this.tempValue, this.control.config?.optionLabel, { value: this.value, writable: true, enumerable: true, configurable: true })\r\n }\r\n\r\n searchValue(value: string){\r\n let endpoint = this.control.config.endpoint.replace('@id', value)\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, endpoint)\r\n .then((res: any) => {\r\n if (res?.data?.length > 0){\r\n this.sendObject.emit({ data: res.data[0], optionValue: this.control.config.optionValue } )\r\n }else{\r\n this.sendNotification.emit({severity: 'warn', detail:`Valor no encontrado.`})\r\n this.sendObject.emit({ data: null, optionValue: this.control.config.optionValue } )\r\n }\r\n })\r\n .catch(err=> {\r\n console.log(err)\r\n this.sendNotification.emit({severity: 'error', detail:`Error al consumir el servicio.`})\r\n })\r\n }\r\n\r\n setDate(){\r\n let format = (this.control as any).formatMoment\r\n \r\n if(format && this.value && !(this.value instanceof Date)){\r\n this.value = moment(this.value, format).toDate();\r\n this.sendValue()\r\n\r\n } \r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"control.type\" #cc>\r\n <label [for]=\"label\" style=\"width: -webkit-fill-available;\">{{label}}</label>\r\n <ng-container *ngSwitchCase=\"'string'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'input'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <textarea [rows]=\"control?.rows ? control.rows : 4\" \r\n [(ngModel)]=\"value\" (focusout)=\"sendValue()\" pInputTextarea \r\n [disabled]=\"control?.disabled || false\" [autoResize]=\"control?.autoresize || false\"></textarea>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" placeholder=\"email@example.com\"\r\n (focusout)=\"validateValue('email')\" [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <p-inputMask mask=\"(999) 999-9999\" [(ngModel)]=\"value\" placeholder=\"(999) 999-9999\"\r\n (focusout)=\"sendValue()\" [disabled]=\"control?.disabled || false\" [unmask]=\"control.unmask || false\"></p-inputMask>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'enum'\">\r\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\" appendTo=\"body\"\r\n placeholder=\"Seleccione una opción\" [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n [optionLabel]=\"control.config.optionLabel\"\r\n [optionValue]=\"control?.field || control.config.optionValue\" (onClick)=\"refresData()\"\r\n appendTo=\"body\" placeholder=\"Seleccione una opción\"\r\n [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown:replace'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\"\r\n (onChange)=\"sendValueFromObject($event.value)\" [optionLabel]=\"control.config.optionLabel\"\r\n (onClick)=\"refresData()\" appendTo=\"body\" placeholder=\"Seleccione una opción\"\r\n [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <p-autoComplete [showEmptyMessage]=\"true\" [suggestions]=\"dataFromService\" appendTo=\"body\"\r\n (completeMethod)=\"loadDataFromControlBusquedaService($event)\" [field]=\"control.field\"\r\n [minLength]=\"1\" (onSelect)=\"sendValueFromObject($event.value)\" [(ngModel)]=\"tempValue\"\r\n [disabled]=\"control?.disabled || false\"></p-autoComplete>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'input:search'\">\r\n <div class=\"p-inputgroup\">\r\n <input type=\"text\" pInputText [(ngModel)]=\"value\" (focusout)=\"sendValue()\" />\r\n <button type=\"button\" pButton icon=\"pi pi-search\" (click)=\"searchValue(value)\"></button>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'calendar'\">\r\n <p-calendar [(ngModel)]=\"value\" (onSelect)=\"sendValue()\" (onBlur)=\"sendValue()\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1900:2035\" [dateFormat]=\"control?.format || 'yy-mm-dd'\"\r\n appendTo=\"body\" [disabled]=\"control?.disabled || false\" [showOnFocus]=\"!control?.hide\"\r\n [placeholder]=\"control?.placeholder || 'aaaa-mm-dd'\" [touchUI]=\"control?.touchUI || false\"\r\n [showIcon]=\"control?.showIcon || false\"></p-calendar>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'numeric'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"currency\" [minFractionDigits]=\"control?.minFractionDigits || 0\"\r\n [min]=\"control?.min || null\" [max]=\"control?.max || null\" (focusout)=\"sendValue()\" [locale]=\"control?.locale || undefined\"\r\n [currency]=\"control?.currency || 'USD'\" [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"decimal\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 0\" [locale]=\"control?.locale || undefined\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'percentage'\">\r\n <p-inputNumber [(ngModel)]=\"value\" suffix=\" %\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 2\" [locale]=\"control?.locale || undefined\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal:search'\">\r\n <div class=\"p-inputgroup\">\r\n <input type=\"number\" pInputText [(ngModel)]=\"value\" (focusout)=\"sendValue()\" />\r\n <button type=\"button\" pButton icon=\"pi pi-search\" (click)=\"searchValue(value)\"></button>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'file'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'filetmp'\">\r\n <p-fileUpload [accept]=\"control.config.accept\" [customUpload]=\"true\" (uploadHandler)=\"onUpload($event)\"\r\n [maxFileSize]=\"control.config?.maxFileSize || null\" fileLimit=\"1\">\r\n <ng-template pTemplate=\"content\">\r\n <ul *ngIf=\"uploadedFiles.length\">\r\n <li *ngFor=\"let file of uploadedFiles\">{{file.name}} - {{file.size}} bytes</li>\r\n </ul>\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'switch'\">\r\n <p-inputSwitch [(ngModel)]=\"value\" (onChange)=\"sendValue()\" [id]=\"label\"></p-inputSwitch>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'lib-registro-detalle',\r\n templateUrl: './registro-detalle.component.html',\r\n styleUrls: ['./registro-detalle.component.css']\r\n})\r\nexport class RegistroDetalleComponent implements OnInit {\r\n\r\n public uiEsquema: any;\r\n public esquema: Shema = new Shema();\r\n public data: any;\r\n\r\n constructor(\r\n public ref: DynamicDialogRef,\r\n public config: DynamicDialogConfig,\r\n private messageService: MessageService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.uiEsquema = this.config.data.uiEsquema[0];\r\n this.esquema = this.config.data.esquema;\r\n this.data = this.config.data?.data;\r\n if (!this.data) {\r\n this.data = this.createObject(this.esquema);\r\n jsonpath.value(this.data, '$..id', this.config.data.id);\r\n }\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\r\n else jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n default:\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.esquema, scope.replace('$..properties.', ''));\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n let uactivo;\r\n switch (value) {\r\n case '@uactivo':\r\n uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n submit() {\r\n this.applyValuesOnEvent('onSubmit', this.esquema);\r\n if (!this.validateData()) return;\r\n this.ref.close(this.data);\r\n }\r\n\r\n cancel() {\r\n this.applyValuesOnEvent('onCancel', this.esquema);\r\n this.ref.close();\r\n }\r\n\r\n validateData() {\r\n if (this.esquema.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.esquema.validations.required.forEach((x: any) => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n if (err.length != 0) this.messageService.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, scope?: string) {\r\n if (scope) {\r\n if (esquema.properties[scope][event]) {\r\n esquema.properties[scope][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { op: string, scope: string[], key: any, separator: string }) {\r\n let value;\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n value = jsonpath.query(data, params?.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.esquema, params.scope[0], jsonpath.query(this.esquema, params.scope[1])[0].replace(params.scope[2], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageService.add(message)\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.data) event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), this.aplyFormatValue(value.scope, event.data[value.key])));\r\n else event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), null));\r\n }\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}","<p-toast></p-toast>\r\n<div *ngFor=\"let element of uiEsquema.elements\" [class]=\"element?.class\" #a>\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n<div class=\"card-footer mt-2\">\r\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService,DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport * as moment from 'moment';\r\nimport { RegistroDetalleComponent } from '../registro-detalle/registro-detalle.component';\r\n\r\n@Component({\r\n selector: 'lib-registro-child',\r\n templateUrl: './registro-child.component.html',\r\n providers: [MessageService,DialogService]\r\n})\r\nexport class RegistroChildComponent implements OnInit {\r\n\r\n public uiEsquema: any;\r\n public esquema: Shema = new Shema();\r\n public data: any;\r\n public dialogRef?: DynamicDialogRef;\r\n public trx: string = 'c';\r\n values!: any[][];\r\n controls!: any[][];\r\n controlsLoaded = false;\r\n\r\n constructor(\r\n public ref: DynamicDialogRef,\r\n public config: DynamicDialogConfig,\r\n private messageService: MessageService,\r\n private dialogService: DialogService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.uiEsquema = this.config.data.uiEsquema[0];\r\n this.esquema = this.config.data.esquema;\r\n this.data = this.config.data?.data;\r\n if (!this.data) {\r\n this.data = this.createObject(this.esquema);\r\n jsonpath.value(this.data, '$..id', this.config.data.id);\r\n }\r\n this.buildControls()\r\n }\r\n\r\n buildControls(){\r\n this.controlsLoaded = false;\r\n this.controls = []\r\n this.values = []\r\n this.uiEsquema.elements.forEach((layout: any, i: number) => {\r\n this.controls.push([])\r\n this.values.push([])\r\n\r\n layout.elements?.forEach((element: any) => {\r\n if (!element.scope) console.log(\"CONFIGURAR BIEN \" + element)\r\n this.controls[i].push(this.getControl(element.scope))\r\n this.values[i].push(this.getValue(element.scope))\r\n });\r\n });\r\n this.controlsLoaded = true;\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string, i: number, j: number) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\r\n else {\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n }\r\n break;\r\n default:\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.esquema, scope.replace('$..properties.', ''));\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObjectChild(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n createObjectChild(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n return [];\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n let uactivo;\r\n switch (value) {\r\n case '@uactivo':\r\n uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n submit() {\r\n this.applyValuesOnEvent('onSubmit', this.esquema);\r\n if (!this.validateData()) return;\r\n this.ref.close(this.data);\r\n }\r\n\r\n cancel() {\r\n this.applyValuesOnEvent('onCancel', this.esquema);\r\n this.ref.close();\r\n }\r\n\r\n validateData() {\r\n if (this.esquema.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.esquema.validations.required.forEach((x: any) => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n if (err.length != 0) this.messageService.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, scope?: string) {\r\n if (scope) {\r\n if (esquema.properties[scope][event]) {\r\n esquema.properties[scope][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { op: string, scope: string[], key: any, separator: string }) {\r\n let value;\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n value = jsonpath.query(data, params?.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.esquema, params.scope[0], jsonpath.query(this.esquema, params.scope[1])[0].replace(params.scope[2], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageService.add(message)\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.dialogRef = this.dialogService.open(RegistroDetalleComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n id: this.getValue(element.scope).length + 1\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')].push(data);\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n editRow(element: any, data: any, index: number) {\r\n this.dialogRef = this.dialogService.open(RegistroDetalleComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n data: { ...data }\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')][index] = data;\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.data[element.scope.replace('$..properties.', '')].splice(index, 1);\r\n index = 1;\r\n this.data[element.scope.replace('$..properties.', '')].forEach((el: any) => {\r\n el.id = index;\r\n index++;\r\n })\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.data) event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), this.aplyFormatValue(value.scope, event.data[value.key])));\r\n else event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), null));\r\n }\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}\r\n","<p-toast></p-toast>\r\n<div *ngIf=\"controlsLoaded\">\r\n<div *ngFor=\"let element of uiEsquema.elements; let i = index\" [class]=\"element?.class\" #a>\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements; let j =index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\" [value]=\"values[i][j]\"\r\n (setValue)=\"setValue($event, el.scope, i, j)\" (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements; let k =index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][k]\" [label]=\"el.label\"\r\n [value]=\"values[i][k]\" (setValue)=\"setValue($event, el.scope, i, k)\"\r\n (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n <ng-container *ngSwitchCase=\"'Table'\">\r\n <p-table [value]=\"getValue(el.scope)\" [columns]=\"getControl(el.scope).config.columns\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <button pButton pRipple icon=\"pi pi-plus\" (click)=\"addObjectArray(el)\"\r\n class=\"p-button-success\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <th></th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <td>{{rowData[col.col]}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency:USD'\">\r\n <td>{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:yyyy-mm-dd'\">\r\n <td>{{rowData[col.col] | date: 'yyyy-mm-dd'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:dd/mm/yyyy'\">\r\n <td>{{rowData[col.col] | date: 'dd/MM/yyyy'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <td>\r\n <i *ngIf=\"rowData[col.col]\" class=\"pi pi-check\"></i>\r\n <i *ngIf=\"!rowData[col.col]\" class=\"pi pi-times\"></i>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <td>\r\n <button pButton pRipple type=\"button\"\r\n (click)=\"editRow(el, rowData, rowIndex)\" icon=\"pi pi-pencil\"\r\n class=\"p-button-rounded p-button-info mr-1\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\"\r\n icon=\"pi pi-trash\" class=\"p-button-rounded p-button-danger\"></button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n<div class=\"card-footer mt-2\">\r\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\r\n</div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { DataTempCrud } from './shared/models/data-temp-crud.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SfCrudService {\r\n\r\n private _dataTemp: DataTempCrud[] = [];\r\n\r\n constructor() { }\r\n\r\n saveDataTemp(scope: string, value: any) {\r\n this._dataTemp.push({ scope, value })\r\n sessionStorage.setItem('dataTemp', JSON.stringify(this._dataTemp))\r\n }\r\n\r\n getDataTemp() {\r\n let dataTemp = sessionStorage.getItem('dataTemp')\r\n sessionStorage.removeItem('dataTemp')\r\n return dataTemp ? JSON.parse(dataTemp) : []\r\n }\r\n\r\n cleanDataTemp(){\r\n sessionStorage.removeItem('dataTemp')\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigRegistro, CrudConfig, Operations, RequestChecking } from '../../shared/models/crud-config.model';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport { RegistroChildComponent } from '../registro-child/registro-child.component';\r\nimport { Router } from '@angular/router';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { DataTempCrud } from '../../shared/models/data-temp-crud.model';\r\nimport { SfCrudService } from '../../sf-crud.service';\r\nimport * as moment from 'moment';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'sf-registro',\r\n templateUrl: './registro.component.html',\r\n providers: [MessageService, DialogService, DynamicDialogConfig, DynamicDialogRef],\r\n entryComponents: [RegistroComponent]\r\n})\r\nexport class RegistroComponent implements OnInit {\r\n\r\n @Input() idKatios: string = '';\r\n @Input() idEntidad: string = '';\r\n @Input() trx: string = '';\r\n @Input() id: string = '';\r\n @Input() user: any;\r\n @Output() sendData: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private dataTemp: DataTempCrud[] = [];\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public btnSubmit: any;\r\n public data: any;\r\n public configOperation: Operations = new Operations();\r\n public isLocal: boolean = false;\r\n values!: any[][];\r\n controls!: any[][];\r\n controlsLoaded = false;\r\n public dialogRef?: DynamicDialogRef\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router,\r\n private messageSerice: MessageService,\r\n private dialogService: DialogService,\r\n private sfCrudService: SfCrudService\r\n ) {\r\n this.dataTemp = this.sfCrudService.getDataTemp();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud();\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.setDataTemp(res.esquema, this.dataTemp);\r\n this.crudConfig = res;\r\n \r\n if (this.trx == 'c') {\r\n this.data = this.createObject(this.crudConfig.esquema);\r\n this.setLabelSumbit();\r\n this.enProceso = false;\r\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\r\n this.buildControls()\r\n } else this.getInfoRegistro(this.crudConfig.registro);\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n buildControls(){\r\n this.controlsLoaded = false;\r\n this.controls = []\r\n this.values = []\r\n this.crudConfig.uiEsquema.elements.forEach((layout: any, i: number) => {\r\n this.controls.push([])\r\n this.values.push([])\r\n layout.elements?.forEach((element: any) => {\r\n if (!element.scope) console.log(\"CONFIGURAR BIEN \" + element)\r\n this.controls[i].push(this.getControl(element.scope))\r\n this.values[i].push(this.getValue(element.scope))\r\n\r\n });\r\n });\r\n this.controlsLoaded = true;\r\n }\r\n\r\n setLabelSumbit() {\r\n if (this.trx == 'c') this.btnSubmit = { label: 'Guardar', icon: 'pi pi-save' }\r\n else if (this.trx == 'r') this.btnSubmit = undefined;\r\n else if (this.trx == 'u') this.btnSubmit = { label: 'Actualizar', icon: 'pi pi-sync' }\r\n else if (this.trx == 'd') this.btnSubmit = { label: 'Eliminar', icon: 'pi pi-trash' }\r\n }\r\n\r\n getInfoRegistro(configRegistro: ConfigRegistro) {\r\n let op = configRegistro.operations.find(x => x.type == 'read');\r\n let endpoint = op?.endpoint || '';\r\n endpoint = endpoint.replace('@idKatios', this.idKatios);\r\n endpoint = endpoint.replace('@ndocactivo', this.user.UsuarioSistema.NDOC);\r\n endpoint = endpoint.replace('@id', this.id);\r\n this.generalService.genericRequest(op?.method || '', op?.server || '', endpoint)\r\n .then((res: any) => {\r\n if (res?.data){\r\n if(Array.isArray(res.data)) this.data = res.data[0]\r\n else this.data = res.data;\r\n this.trx = 'u';\r\n } \r\n else {\r\n this.trx = 'c';\r\n this.data = this.createObject(this.crudConfig.esquema);\r\n console.log(this.data)\r\n }\r\n this.buildControls()\r\n this.enProceso = false;\r\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\r\n this.setLabelSumbit();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n back() {\r\n this.router.navigateByUrl(this.crudConfig.registro.btnBack);\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.crudConfig.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string, i: number, j: number) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\r\n else {\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n this.values[i][j] = value;\r\n }\r\n break;\r\n default:\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema);\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n const object: any = {};\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'array':\r\n return [];\r\n case 'file':\r\n return null;\r\n case 'object':\r\n Object.getOwnPropertyNames(esquema?.properties).forEach(key => {\r\n let aux = esquema?.properties[key]\r\n if (aux) object[key] = this.createObject(aux)\r\n });\r\n return object;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n submit() {\r\n console.log(this.data)\r\n if (!this.validateData()) return;\r\n this.applyValuesOnEvent('onSubmit', this.crudConfig.esquema)\r\n this.enProceso = true;\r\n let endpoint = this.configOperation.endpoint;\r\n endpoint = endpoint.replace('@idKatios', this.idKatios)\r\n endpoint = endpoint.replace('@id', this.id)\r\n this.generalService.genericRequest(this.configOperation.method, this.configOperation.server, endpoint, this.data)\r\n .then((res) => {\r\n this.generateMessage({ severity: 'success', detail: `Proceso exitoso!` }, res, this.configOperation.answerChecking)\r\n this.enProceso = false;\r\n setTimeout(() => {\r\n if (this.configOperation?.redirect) this.router.navigate([this.configOperation?.redirect])\r\n else this.onSubmit.emit(this.data)\r\n }, 2000);\r\n })\r\n .catch(err => {\r\n const operation = this.crudConfig.registro.operations.find(op => op.type.startsWith(this.trx))!\r\n this.generateMessage({severity: \"error\", detail: \"Por favor comunicarse con el admin\", summary: \"Error no controlado\"}, err.error, operation.errorChecking)\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n /**\r\n * Generates message using answerchecking\r\n * @param currentMsg Default message: Message\r\n * @param rta Resquest's response\r\n * @param answerChecking \r\n */\r\n generateMessage(currentMsg: Message | any, rta: any, requestChecking?: RequestChecking){\r\n if (requestChecking){\r\n if (requestChecking.statics) Object.assign(currentMsg, requestChecking.statics)\r\n //mapear los dinamicos\r\n if (requestChecking.dynamics){\r\n const dynamics: any = requestChecking.dynamics\r\n try{\r\n if (dynamics && typeof(rta) == \"string\") rta = JSON.parse(rta)\r\n if (dynamics) {\r\n for (const property in dynamics) {\r\n currentMsg[property] = jsonpath.query(rta, dynamics[property])[0];\r\n }\r\n }\r\n }catch(error){//es una respuesta sin JSON\r\n if (dynamics) currentMsg.detail = rta\r\n }\r\n }\r\n }\r\n\r\n if (requestChecking?.redirect || requestChecking?.swal) Swal.fire(currentMsg.summary, currentMsg.detail, currentMsg.severity).then((res) => {\r\n if (res.isConfirmed && requestChecking.redirect) window.location.href = requestChecking.redirect\r\n })\r\n else this.messageSerice.add(currentMsg)\r\n }\r\n\r\n validateData() {\r\n if (this.configOperation.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.configOperation.validations?.required?.forEach(x => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n this.configOperation.validations?.operations?.forEach((op: any) => {\r\n switch (op.action) {\r\n case 'sumArray':\r\n let var1 = jsonpath.query(this.data, op.scope[0]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n let var2 = jsonpath.query(this.data, op.scope[1]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n if (var1 != var2) err.push(op.message)\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n if (err.length != 0) this.messageSerice.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n switch (value) {\r\n case '@uactivo':\r\n data = `${this.user.UsuarioSistema.TDOC}-${this.user.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n data = this.user.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n data = this.user.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageSerice.add(message)\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n id: this.getValue(element.scope).length + 1\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')].push(data);\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n editRow(element: any, data: any, index: number) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n data: { ...data }\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')][index] = data;\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.data[element.scope.replace('$..properties.', '')].splice(index, 1);\r\n index = 1;\r\n this.data[element.scope.replace('$..properties.', '')].forEach((el: any) => {\r\n el.id = index;\r\n index++;\r\n })\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, key?: string) {\r\n if (key) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: { scope: string[], op: string, key?: string }) => {\r\n this.setValueEvent(this.data, value);\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value);\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { scope: string[], op: string, key?: any, separator?: string }) {\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n jsonpath.value(data, params.scope[1], jsonpath.query(data, params.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0))\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], this.crudConfig.esquema.config.endpointtemp.replace(params.scope[1], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setDataTemp(esquema: Shema, dataTemp: any[]) {\r\n dataTemp.forEach(data => {\r\n jsonpath.value(esquema, data.scope, data.value)\r\n });\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.data) event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), this.aplyFormatValue(value.scope, event.data[value.key])));\r\n else event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), null));\r\n }\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.crudConfig.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}\r\n","<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<p-toast></p-toast>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso && controlsLoaded\">\r\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\r\n <span>{{crudConfig.registro?.label || idEntidad}} {{id != '' ? '-' + id : ''}}</span>\r\n <button *ngIf=\"crudConfig.registro?.canBack\" pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\r\n </h5>\r\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements; let i = index\" [class]=\"element?.class\">\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements;let j = index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\"\r\n [value]=\"values[i][j]\" (setValue)=\"setValue($event, el.scope, i, j)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements;let j = index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\"\r\n [value]=\"values[i][j]\" (setValue)=\"setValue($event, el.scope, i, j)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n <ng-container *ngSwitchCase=\"'Table'\">\r\n <p-table [value]=\"getValue(el.scope)\" [columns]=\"getControl(el.scope).config.columns\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <button pButton pRipple icon=\"pi pi-plus\" (click)=\"addObjectArray(el)\"\r\n class=\"p-button-success\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <th></th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <td>{{rowData[col.col]}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency:USD'\">\r\n <td>{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:yyyy-mm-dd'\">\r\n <td>{{rowData[col.col] | date: 'yyyy-mm-dd'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:dd/mm/yyyy'\">\r\n <td>{{rowData[col.col] | date: 'dd/MM/yyyy'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <td>\r\n <i *ngIf=\"rowData[col.col]\" class=\"pi pi-check\"></i>\r\n <i *ngIf=\"!rowData[col.col]\" class=\"pi pi-times\"></i>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <td>\r\n <button pButton pRipple type=\"button\" (click)=\"editRow(el, rowData, rowIndex)\" icon=\"pi pi-pencil\" class=\"p-button-rounded p-button-info mr-1\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-danger\"></button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"card-footer mt-2\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\"\r\n (click)=\"submit()\"></button>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sf-crud',\r\n template: `\r\n <p>\r\n sf-crud works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class SfCrudComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\n//=========================================================\r\n// PrimeNG Modules\r\n//=========================================================\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CardModule } from 'primeng/card';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { InplaceModule } from 'primeng/inplace';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { KnobModule } from 'primeng/knob';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MegaMenuModule } from 'primeng/megamenu';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { MessageModule } from 'primeng/message';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OrganizationChartModule } from 'primeng/organizationchart';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { ScrollTopModule } from 'primeng/scrolltop';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { SlideMenuModule } from 'primeng/slidemenu';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\nimport { SplitterModule } from 'primeng/splitter';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TagModule } from 'primeng/tag';\r\nimport { TerminalModule } from 'primeng/terminal';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { ToolbarModule } from 'primeng/toolbar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { TreeModule } from 'primeng/tree';\r\n\r\n//=========================================================\r\n// Componets\r\n//=========================================================\r\nimport { SfCrudComponent } from './sf-crud.component';\r\nimport { TableroComponent } from './components/tablero/tablero.component';\r\nimport { RegistroComponent } from './components/registro/registro.component';\r\nimport { ControlComponent } from './components/control/control.component';\r\nimport { RegistroChildComponent } from './components/registro-child/registro-child.component';\r\nimport { RegistroDetalleComponent } from './components/registro-detalle/registro-detalle.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent,\r\n RegistroChildComponent,\r\n RegistroDetalleComponent\r\n ],\r\n imports: [\r\n AccordionModule,\r\n AutoCompleteModule,\r\n AvatarGroupModule,\r\n AvatarModule,\r\n BadgeModule,\r\n BlockUIModule,\r\n BreadcrumbModule,\r\n ButtonModule,\r\n CalendarModule,\r\n CardModule,\r\n CarouselModule,\r\n CascadeSelectModule,\r\n CheckboxModule,\r\n ChipModule,\r\n ChipsModule,\r\n ColorPickerModule,\r\n ConfirmDialogModule,\r\n ConfirmPopupModule,\r\n ContextMenuModule,\r\n DialogModule,\r\n DividerModule,\r\n DropdownModule,\r\n DynamicDialogModule,\r\n FieldsetModule,\r\n FileUploadModule,\r\n FormsModule,\r\n GalleriaModule,\r\n HttpClientModule,\r\n InplaceModule,\r\n InputMaskModule,\r\n InputNumberModule,\r\n InputSwitchModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n KnobModule,\r\n ListboxModule,\r\n MegaMenuModule,\r\n MenubarModule,\r\n MenuModule,\r\n MessageModule,\r\n MessagesModule,\r\n MultiSelectModule,\r\n OrganizationChartModule,\r\n OverlayPanelModule,\r\n PanelMenuModule,\r\n PanelModule,\r\n PasswordModule,\r\n ProgressBarModule,\r\n RadioButtonModule,\r\n RatingModule,\r\n RippleModule,\r\n ScrollPanelModule,\r\n ScrollTopModule,\r\n SelectButtonModule,\r\n SidebarModule,\r\n SkeletonModule,\r\n SlideMenuModule,\r\n SliderModule,\r\n SplitButtonModule,\r\n SplitterModule,\r\n StepsModule,\r\n TableModule,\r\n TabMenuModule,\r\n TabViewModule,\r\n TagModule,\r\n TerminalModule,\r\n TieredMenuModule,\r\n TimelineModule,\r\n ToastModule,\r\n ToggleButtonModule,\r\n ToolbarModule,\r\n TooltipModule,\r\n TreeModule,\r\n ],\r\n exports: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent\r\n ],\r\n entryComponents: [\r\n RegistroChildComponent\r\n ]\r\n})\r\nexport class SfCrudModule { }\r\n","/*\r\n * Public API Surface of sf-crud\r\n */\r\n\r\nexport * from './lib/components/tablero/tablero.component';\r\nexport * from './lib/components/registro/registro.component';\r\nexport * from './lib/components/control/control.component';\r\nexport * from './lib/sf-crud.component';\r\nexport * from './lib/sf-crud.module';\r\nexport * from './lib/sf-crud.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GeneralService","i8","i2","i3","i4","i5","i6","i7","i9","i10","i13","i14","i1","i4.ControlComponent","i5.SfCrudService","i8.ControlComponent","i11","i12"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sf-crud.js","sources":["../../../projects/sf-crud/src/lib/shared/models/shema.model.ts","../../../projects/sf-crud/src/lib/shared/models/crud-config.model.ts","../../../projects/sf-crud/src/lib/shared/services/general.service.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.ts","../../../projects/sf-crud/src/lib/components/tablero/tablero.component.html","../../../projects/sf-crud/src/lib/components/control/control.component.ts","../../../projects/sf-crud/src/lib/components/control/control.component.html","../../../projects/sf-crud/src/lib/components/registro-detalle/registro-detalle.component.ts","../../../projects/sf-crud/src/lib/components/registro-detalle/registro-detalle.component.html","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.ts","../../../projects/sf-crud/src/lib/components/registro-child/registro-child.component.html","../../../projects/sf-crud/src/lib/sf-crud.service.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.ts","../../../projects/sf-crud/src/lib/components/registro/registro.component.html","../../../projects/sf-crud/src/lib/sf-crud.component.ts","../../../projects/sf-crud/src/lib/sf-crud.module.ts","../../../projects/sf-crud/src/public-api.ts","../../../projects/sf-crud/src/sf-crud.ts"],"sourcesContent":["export class Shema {\r\n type: string = '';\r\n subtype: string = '';\r\n config?: any;\r\n properties?: any;\r\n enum?: any[];\r\n default?:any;\r\n validations?: any\r\n}\r\n\r\n","import { Message } from \"primeng/api\";\r\nimport { Shema } from \"./shema.model\";\r\n\r\nexport class CrudConfig {\r\n idEntidad: string = '';\r\n tablero: ConfigTablero = new ConfigTablero();\r\n uiEsquema: any;\r\n esquema: Shema = new Shema();\r\n registro: ConfigRegistro = new ConfigRegistro();\r\n}\r\n\r\n\r\nexport class ConfigTablero {\r\n columns: any[] = [];\r\n endpoint: string = '';\r\n method: string = '';\r\n server: string = '';\r\n filters: string[] = [];\r\n keys: { key: string, scope?: string }[] = [];\r\n}\r\n\r\nexport class ConfigRegistro {\r\n operations: Operations[] = [];\r\n btnBack: string = '';\r\n label?: string;\r\n}\r\n\r\nexport class Operations {\r\n type: string = '';\r\n server: string = '';\r\n endpoint: string = ''\r\n method: string = '';\r\n validations: Validations = new Validations();\r\n redirect?: string;\r\n errorChecking?: RequestChecking;\r\n answerChecking?: RequestChecking;\r\n keys?: Key[]\r\n}\r\n\r\nexport class Key{\r\n key!: string;\r\n scope!: string;\r\n data?: string;\r\n}\r\n\r\nexport class Validations {\r\n type: string = '';\r\n required: { field: string, message: string }[] = [];\r\n server: string = '';\r\n endpoint: string = '';\r\n operations: any;\r\n}\r\n\r\nexport class RequestChecking {\r\n constructor(\r\n public dynamics: Message,\r\n public statics: Message,\r\n public swal: boolean,\r\n public redirect: string\r\n ){}\r\n}\r\n\r\n\r\n\r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { CrudConfig } from '../models/crud-config.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class GeneralService {\r\n\r\n public generales: string = '';\r\n public jsonConfig: any;\r\n\r\n constructor(\r\n private http: HttpClient\r\n ) {\r\n this.jsonConfig = JSON.parse(sessionStorage.getItem('ConfigJSON') || '{}');\r\n this.generales = this.jsonConfig?.ServidorGenerales;\r\n }\r\n\r\n async getCrudByEntidad(idKatios: string, idEntidad: string) {\r\n return this.http.get(`${this.generales}crud/${idKatios}/${idEntidad}`)\r\n .toPromise()\r\n .then((res: any) => <CrudConfig>res.data)\r\n .then(data => { return data })\r\n }\r\n\r\n async genericRequest(method: string, servidor: string, endpoint: string, data?: any) {\r\n switch (method) {\r\n case 'GET':\r\n return this.http.get(`${this.jsonConfig[servidor]}${endpoint}`)\r\n .toPromise();\r\n case 'POST':\r\n return this.http.post(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'PUT':\r\n return this.http.put(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n case 'DELETE':\r\n return this.http.delete(`${this.jsonConfig[servidor]}${endpoint}`, data)\r\n .toPromise();\r\n default:\r\n return\r\n }\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigTablero, CrudConfig } from '../../shared/models/crud-config.model';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { MenuItem } from 'primeng/api';\r\nimport { Router } from '@angular/router';\r\nimport * as _ from \"lodash\";\r\nimport * as jsonpath from 'jsonpath';\r\n\r\n@Component({\r\n selector: 'sf-crudtablero',\r\n templateUrl: './tablero.component.html'\r\n})\r\nexport class TableroComponent implements OnInit {\r\n\r\n @Input() opciones: any[] = [];\r\n @Input() idEntidad: string = '';\r\n @Input() idKatios: string = '';\r\n @Input() user: any;\r\n @Input() dataExt: any;\r\n @Output() onSelectAction: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public items: MenuItem[] = [];\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public data: any[] = [];\r\n public btn: { create: any, read: any, update: any, delete: any } = { create: undefined, read: undefined, update: undefined, delete: undefined }\r\n public itemSelected: any;\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud()\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.crudConfig = res;\r\n this.getInfoTablero(this.crudConfig.tablero);\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n getInfoTablero(configTablero: ConfigTablero) {\r\n this.generalService.genericRequest(configTablero.method, configTablero.server, this.aplyKeys(configTablero.keys, configTablero.endpoint, this.dataExt))\r\n .then((res: any) => {\r\n let aux;\r\n if (!Array.isArray(res)) aux = res.data; else aux = res;\r\n this.generateData(aux);\r\n this.loadOptions();\r\n this.enProceso = false;\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n generateData(data: any[]) {\r\n data.forEach((item: any) => {\r\n let newItem: any = {};\r\n this.crudConfig.tablero.columns.forEach(col => {\r\n newItem[col.col] = this.getValue(col.col, item)\r\n })\r\n this.data.push(newItem)\r\n })\r\n console.log(this.data)\r\n }\r\n getValue(path: string, item: any): any {\r\n if (path.includes(\".\")) return jsonpath.query(item, path)[0]\r\n return item[path]\r\n }\r\n\r\n loadOptions() {\r\n this.items = [];\r\n this.btn.create = this.opciones.find(x => x.label == 'Crear');\r\n this.opciones.filter((opc: any) => opc.valor.action).forEach(opc => {\r\n this.items.push({ label: opc.label, icon: opc.icon, command: () => this.execAction(opc.valor) })\r\n })\r\n }\r\n\r\n redirect(accion: string, data?: any) {\r\n switch (accion) {\r\n case 'create':\r\n this.router.navigateByUrl(this.btn.create?.valor?.redirect || '');\r\n break;\r\n case 'read':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.read.valor.redirect, data));\r\n break\r\n case 'update':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.update.valor.redirect, data));\r\n break\r\n case 'delete':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, this.btn.delete.valor.redirect, data));\r\n break\r\n default:\r\n break\r\n }\r\n }\r\n\r\n aplyKeys(keys: { key: string, scope?: string }[], endpoint: string, data?: any) {\r\n keys.forEach(key => {\r\n switch (key.key) {\r\n case '@ndoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.NDOC || '')\r\n break;\r\n case '@tdoc':\r\n endpoint = endpoint.replace(key.key, this.user?.UsuarioSistema?.TDOC || '')\r\n break;\r\n case '@idKatios':\r\n endpoint = endpoint.replace(key.key, this.idKatios)\r\n break;\r\n default:\r\n if (endpoint.includes(key.key) && data) endpoint = endpoint.replace(key.key, jsonpath.query(data, key?.scope || '')[0]);\r\n break;\r\n }\r\n });\r\n return endpoint;\r\n }\r\n\r\n execAction(params: any) {\r\n switch (params.action) {\r\n case 'redirect':\r\n this.router.navigateByUrl(this.aplyKeys(this.crudConfig.tablero.keys, params.link, this.itemSelected));\r\n break;\r\n default:\r\n this.onSelectAction.emit({ data: _.cloneDeep(this.itemSelected), params })\r\n break;\r\n }\r\n }\r\n}\r\n","<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso\">\r\n <p-toolbar styleClass=\"mb-4 gap-2\">\r\n <ng-template pTemplate=\"left\">\r\n <button *ngIf=\"btn.create\" pButton pRipple [label]=\"btn.create.label\" [icon]=\"btn.create.icon\"\r\n class=\"p-button-success mr-2\" (click)=\"redirect('create')\"></button>\r\n </ng-template>\r\n </p-toolbar>\r\n <p-table #dt [columns]=\"crudConfig.tablero.columns\" [value]=\"data\" [rowHover]=\"true\" [rows]=\"10\" [paginator]=\"true\"\r\n [globalFilterFields]=\"crudConfig.tablero?.filters || []\" [tableStyle]=\"{'min-width': '75rem'}\"\r\n currentPageReportTemplate=\"Registro {first} al {last} de {totalRecords}\" [showCurrentPageReport]=\"true\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <h5 class=\"m-0\">{{crudConfig.tablero?.label || idEntidad}}</h5>\r\n <span class=\"p-input-icon-left\">\r\n <i class=\"pi pi-search\"></i>\r\n <input pInputText type=\"text\" (input)=\"dt.filterGlobal($event.target.value, 'contains')\"\r\n placeholder=\"Buscar...\" />\r\n </span>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <th>Acción</th>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <td *ngSwitchCase=\"'text'\">{{rowData[col.col]}}</td>\r\n <td *ngSwitchCase=\"'date:yyyy-mm-dd'\">{{rowData[col.col] | date: 'yyyy-MM-dd'}}</td>\r\n <td *ngSwitchCase=\"'currency:USD'\">{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <td>\r\n <p-splitButton icon=\"pi pi-align-justify\" [model]=\"items\" appendTo=\"body\"\r\n (onDropdownClick)=\"itemSelected = rowData\"></p-splitButton>\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n</div>","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Message } from 'primeng/api';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'sf-control',\r\n templateUrl: './control.component.html'\r\n})\r\nexport class ControlComponent implements OnInit {\r\n\r\n @Input() control: Shema = new Shema();\r\n @Input() label: string = '';\r\n @Input() value: any;\r\n @Input() appendTo: any;\r\n @Output() setValue: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() sendNotification: EventEmitter<Message> = new EventEmitter<Message>();\r\n @Output() sendObject: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n public isLoading: boolean = false;\r\n public dataFromService: any[] = [];\r\n public uploadedFiles: any[] = [];\r\n public displayAdd: boolean = false;\r\n public tempValue: any = {}\r\n\r\n constructor(\r\n private generalService: GeneralService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n if (this.control?.config && this.control.subtype == 'dropdown') this.loadDataFromService();\r\n if (this.value && this.control.subtype == 'autocomplete') this.setDefaultValue();\r\n if (this.value && this.control.type == 'date') this.setDate();\r\n }\r\n\r\n sendValue() {\r\n this.setValue.emit(this.value);\r\n }\r\n\r\n sendValueFromObject(event: any) {\r\n switch (typeof (this.control.config.optionValue)) {\r\n case 'object':\r\n this.control.config.optionValue.forEach((op: any) => op['value'] = event[op.key])\r\n this.setValue.emit(this.control.config.optionValue);\r\n break;\r\n default:\r\n this.setValue.emit(event[this.control.config.optionValue]);\r\n break;\r\n }\r\n }\r\n\r\n validateValue(type: string) {\r\n switch (type) {\r\n case 'email':\r\n let regex: RegExp = new RegExp(/([\\w\\.\\-_]+)?\\w+@[\\w-_]+(\\.\\w+){1,}/igm);\r\n if (regex.test(this.value)) this.sendValue();\r\n else {\r\n this.value = null;\r\n this.sendValue()\r\n this.sendNotification.emit({ severity: 'warn', detail: 'El correo no es válido' })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n loadDataFromService() {\r\n this.isLoading = true;\r\n this.dataFromService = [];\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint)\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n loadDataFromControlBusquedaService(event: any) {\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint.replace('@query', event?.query || ''))\r\n .then((res: any) => {\r\n this.dataFromService = res.data;\r\n this.isLoading = false;\r\n })\r\n }\r\n\r\n onUpload(event: any) {\r\n let file = event.files[0];\r\n let formData = new FormData();\r\n let path = 'Imagenes/CRUD/temp';\r\n formData.append('uploadFile', file);\r\n formData.append('Ruta', `/${path}`);\r\n this.isLoading = true;\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, this.control.config.endpoint, formData)\r\n .then(() => {\r\n this.sendNotification.emit({ severity: 'info', detail: `Archivo cargado correctamente!` })\r\n this.uploadedFiles.push(file);\r\n this.isLoading = false;\r\n this.value = `${this.generalService.jsonConfig.Server}${path}/${file.name}`\r\n this.sendValue()\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n this.isLoading = false\r\n this.sendNotification.emit({ severity: 'error', detail: `Error al cargar el archivo!` })\r\n })\r\n }\r\n\r\n refresData() {\r\n if (this.control?.config?.endpointtemp) this.loadDataFromService();\r\n }\r\n\r\n setDefaultValue(){\r\n Object.defineProperty(this.tempValue, this.control.config?.optionLabel, { value: this.value, writable: true, enumerable: true, configurable: true })\r\n }\r\n\r\n searchValue(value: string){\r\n let endpoint = this.control.config.endpoint.replace('@id', value)\r\n this.generalService.genericRequest(this.control.config.method, this.control.config.server, endpoint)\r\n .then((res: any) => {\r\n if (res?.data?.length > 0){\r\n this.sendObject.emit({ data: res.data[0], optionValue: this.control.config.optionValue } )\r\n }else{\r\n this.sendNotification.emit({severity: 'warn', detail:`Valor no encontrado.`})\r\n this.sendObject.emit({ data: null, optionValue: this.control.config.optionValue } )\r\n }\r\n })\r\n .catch(err=> {\r\n console.log(err)\r\n this.sendNotification.emit({severity: 'error', detail:`Error al consumir el servicio.`})\r\n })\r\n }\r\n\r\n setDate(){\r\n let format = (this.control as any).formatMoment\r\n \r\n if(format && this.value && !(this.value instanceof Date)){\r\n this.value = moment(this.value, format).toDate();\r\n this.sendValue()\r\n\r\n } \r\n }\r\n}\r\n","<ng-container [ngSwitch]=\"control.type\" #cc>\r\n <label [for]=\"label\" style=\"width: -webkit-fill-available;\">{{label}}</label>\r\n <ng-container *ngSwitchCase=\"'string'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'input'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <textarea [rows]=\"control?.rows ? control.rows : 4\" \r\n [(ngModel)]=\"value\" (focusout)=\"sendValue()\" pInputTextarea \r\n [disabled]=\"control?.disabled || false\" [autoResize]=\"control?.autoresize || false\"></textarea>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <input pInputText type=\"password\" [(ngModel)]=\"value\" (focusout)=\"sendValue()\"\r\n [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <input pInputText type=\"text\" [(ngModel)]=\"value\" placeholder=\"email@example.com\"\r\n (focusout)=\"validateValue('email')\" [disabled]=\"control?.disabled || false\">\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <p-inputMask mask=\"(999) 999-9999\" [(ngModel)]=\"value\" placeholder=\"(999) 999-9999\"\r\n (focusout)=\"sendValue()\" [disabled]=\"control?.disabled || false\" [unmask]=\"control.unmask || false\"></p-inputMask>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'enum'\">\r\n <p-dropdown [options]=\"control.enum\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\" appendTo=\"body\"\r\n placeholder=\"Seleccione una opción\" [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\" [(ngModel)]=\"value\" (onChange)=\"sendValue()\"\r\n [optionLabel]=\"control.config.optionLabel\"\r\n [optionValue]=\"control?.field || control.config.optionValue\" (onClick)=\"refresData()\"\r\n appendTo=\"body\" placeholder=\"Seleccione una opción\"\r\n [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dropdown:replace'\">\r\n <p-dropdown [lazy]=\"isLoading\" [options]=\"dataFromService\"\r\n (onChange)=\"sendValueFromObject($event)\" [optionLabel]=\"control.config.optionLabel\"\r\n (onClick)=\"refresData()\" appendTo=\"body\" placeholder=\"Seleccione una opción\"\r\n [disabled]=\"control?.disabled || false\"></p-dropdown>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'autocomplete'\">\r\n <p-autoComplete [showEmptyMessage]=\"true\" [suggestions]=\"dataFromService\" appendTo=\"body\"\r\n (completeMethod)=\"loadDataFromControlBusquedaService($event)\" [field]=\"control.field\"\r\n [minLength]=\"1\" (onSelect)=\"sendValueFromObject($event)\" [(ngModel)]=\"tempValue\"\r\n [disabled]=\"control?.disabled || false\"></p-autoComplete>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'input:search'\">\r\n <div class=\"p-inputgroup\">\r\n <input type=\"text\" pInputText [(ngModel)]=\"value\" (focusout)=\"sendValue()\" />\r\n <button type=\"button\" pButton icon=\"pi pi-search\" (click)=\"searchValue(value)\"></button>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'calendar'\">\r\n <p-calendar [(ngModel)]=\"value\" (onSelect)=\"sendValue()\" (onBlur)=\"sendValue()\" [monthNavigator]=\"true\"\r\n [yearNavigator]=\"true\" yearRange=\"1900:2035\" [dateFormat]=\"control?.format || 'yy-mm-dd'\"\r\n appendTo=\"body\" [disabled]=\"control?.disabled || false\" [showOnFocus]=\"!control?.hide\"\r\n [placeholder]=\"control?.placeholder || 'aaaa-mm-dd'\" [touchUI]=\"control?.touchUI || false\"\r\n [showIcon]=\"control?.showIcon || false\"></p-calendar>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'numeric'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'currency'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"currency\" [minFractionDigits]=\"control?.minFractionDigits || 0\"\r\n [min]=\"control?.min || null\" [max]=\"control?.max || null\" (focusout)=\"sendValue()\" [locale]=\"control?.locale || undefined\"\r\n [currency]=\"control?.currency || 'USD'\" [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal'\">\r\n <p-inputNumber [(ngModel)]=\"value\" mode=\"decimal\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 0\" [locale]=\"control?.locale || undefined\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'percentage'\">\r\n <p-inputNumber [(ngModel)]=\"value\" suffix=\" %\" (focusout)=\"sendValue()\" [min]=\"control?.min || null\"\r\n [max]=\"control?.max || null\" [minFractionDigits]=\"control?.minFractionDigits || 2\" [locale]=\"control?.locale || undefined\"\r\n [disabled]=\"control?.disabled || false\"></p-inputNumber>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'decimal:search'\">\r\n <div class=\"p-inputgroup\">\r\n <input type=\"number\" pInputText [(ngModel)]=\"value\" (focusout)=\"sendValue()\" />\r\n <button type=\"button\" pButton icon=\"pi pi-search\" (click)=\"searchValue(value)\"></button>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'file'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'filetmp'\">\r\n <p-fileUpload [accept]=\"control.config.accept\" [customUpload]=\"true\" (uploadHandler)=\"onUpload($event)\"\r\n [maxFileSize]=\"control.config?.maxFileSize || null\" fileLimit=\"1\">\r\n <ng-template pTemplate=\"content\">\r\n <ul *ngIf=\"uploadedFiles.length\">\r\n <li *ngFor=\"let file of uploadedFiles\">{{file.name}} - {{file.size}} bytes</li>\r\n </ul>\r\n </ng-template>\r\n </p-fileUpload>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <ng-container [ngSwitch]=\"control.subtype\">\r\n <ng-container *ngSwitchCase=\"'switch'\">\r\n <p-inputSwitch [(ngModel)]=\"value\" (onChange)=\"sendValue()\" [id]=\"label\"></p-inputSwitch>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>","import { Component, OnInit } from '@angular/core';\r\nimport { DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'lib-registro-detalle',\r\n templateUrl: './registro-detalle.component.html',\r\n styleUrls: ['./registro-detalle.component.css']\r\n})\r\nexport class RegistroDetalleComponent implements OnInit {\r\n\r\n public uiEsquema: any;\r\n public esquema: Shema = new Shema();\r\n public data: any;\r\n\r\n constructor(\r\n public ref: DynamicDialogRef,\r\n public config: DynamicDialogConfig,\r\n private messageService: MessageService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.uiEsquema = this.config.data.uiEsquema[0];\r\n this.esquema = this.config.data.esquema;\r\n this.data = this.config.data?.data;\r\n if (!this.data) {\r\n this.data = this.createObject(this.esquema);\r\n jsonpath.value(this.data, '$..id', this.config.data.id);\r\n }\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value))\r\n else jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n default:\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.esquema, scope.replace('$..properties.', ''));\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n let uactivo;\r\n switch (value) {\r\n case '@uactivo':\r\n uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n submit() {\r\n this.applyValuesOnEvent('onSubmit', this.esquema);\r\n if (!this.validateData()) return;\r\n this.ref.close(this.data);\r\n }\r\n\r\n cancel() {\r\n this.applyValuesOnEvent('onCancel', this.esquema);\r\n this.ref.close();\r\n }\r\n\r\n validateData() {\r\n if (this.esquema.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.esquema.validations.required.forEach((x: any) => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n if (err.length != 0) this.messageService.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, scope?: string) {\r\n if (scope) {\r\n if (esquema.properties[scope][event]) {\r\n esquema.properties[scope][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { op: string, scope: string[], key: any, separator: string }) {\r\n let value;\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n value = jsonpath.query(data, params?.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.esquema, params.scope[0], jsonpath.query(this.esquema, params.scope[1])[0].replace(params.scope[2], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageService.add(message)\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.data) event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), this.aplyFormatValue(value.scope, event.data[value.key])));\r\n else event.optionValue.forEach((value: any) => jsonpath.value(this.data, value.scope.replace('.properties',''), null));\r\n }\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}","<p-toast></p-toast>\r\n<div *ngFor=\"let element of uiEsquema.elements\" [class]=\"element?.class\" #a>\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"getControl(el.scope)\" [label]=\"el.label\"\r\n [value]=\"getValue(el.scope)\" (setValue)=\"setValue($event, el.scope)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n<div class=\"card-footer mt-2\">\r\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { DialogService,DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport * as moment from 'moment';\r\nimport { RegistroDetalleComponent } from '../registro-detalle/registro-detalle.component';\r\n\r\n@Component({\r\n selector: 'lib-registro-child',\r\n templateUrl: './registro-child.component.html',\r\n providers: [MessageService,DialogService]\r\n})\r\nexport class RegistroChildComponent implements OnInit {\r\n\r\n public uiEsquema: any;\r\n public esquema: Shema = new Shema();\r\n public data: any;\r\n public dialogRef?: DynamicDialogRef;\r\n public trx: string = 'c';\r\n values!: any[][];\r\n controls!: any[][];\r\n controlsLoaded = false;\r\n\r\n constructor(\r\n public ref: DynamicDialogRef,\r\n public config: DynamicDialogConfig,\r\n private messageService: MessageService,\r\n private dialogService: DialogService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.uiEsquema = this.config.data.uiEsquema[0];\r\n this.esquema = this.config.data.esquema;\r\n this.data = this.config.data?.data;\r\n if (!this.data) {\r\n this.data = this.createObject(this.esquema);\r\n jsonpath.value(this.data, '$..id', this.config.data.id);\r\n }\r\n this.buildControls()\r\n }\r\n\r\n buildControls(){\r\n this.controlsLoaded = false;\r\n this.controls = []\r\n this.values = []\r\n this.uiEsquema.elements.forEach((layout: any, i: number) => {\r\n this.controls.push([])\r\n this.values.push([])\r\n\r\n layout.elements?.forEach((element: any, j: number) => {\r\n if (!element.scope) console.log(\"CONFIGURAR BIEN \" + element)\r\n this.controls[i].push(this.getControl(element.scope))\r\n this.controls[i][j].scope = element.scope\r\n this.values[i].push(this.getValue(element.scope))\r\n });\r\n });\r\n this.controlsLoaded = true;\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string, i: number, j: number) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => {\r\n this.setValueByScope(val.scope, val.value)\r\n jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value)\r\n })\r\n else {\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n }\r\n break;\r\n default:\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.esquema, scope.replace('$..properties.', ''));\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObjectChild(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n createObjectChild(esquema: Shema) {\r\n let object = {};\r\n const resultArray: any[] = [];\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'file':\r\n return null;\r\n case 'array':\r\n return [];\r\n case 'object':\r\n for (const key in esquema?.properties) {\r\n Object.defineProperty(object, key, { value: this.createObject(esquema?.properties[key]), writable: true, enumerable: true, configurable: true })\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n return object;\r\n }\r\n\r\n setDefaultValue(value: string) {\r\n let data = null;\r\n let uactivo;\r\n switch (value) {\r\n case '@uactivo':\r\n uactivo = JSON.parse(localStorage.getItem('oSessionTFM') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = `${uactivo.UsuarioSistema.TDOC}-${uactivo.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n uactivo = JSON.parse(sessionStorage.getItem('usrSesion') || '{}')\r\n if (!uactivo) console.log('Validar configuracion de sesion')\r\n else data = uactivo.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n submit() {\r\n this.applyValuesOnEvent('onSubmit', this.esquema);\r\n if (!this.validateData()) return;\r\n this.ref.close(this.data);\r\n }\r\n\r\n cancel() {\r\n this.applyValuesOnEvent('onCancel', this.esquema);\r\n this.ref.close();\r\n }\r\n\r\n validateData() {\r\n if (this.esquema.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.esquema.validations.required.forEach((x: any) => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n if (err.length != 0) this.messageService.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, scope?: string) {\r\n if (scope) {\r\n if (esquema.properties[scope][event]) {\r\n esquema.properties[scope][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { op: string, scope: string[], key: any, separator: string }) {\r\n let value;\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n value = jsonpath.query(data, params?.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0)\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.esquema, params.scope[0], jsonpath.query(this.esquema, params.scope[1])[0].replace(params.scope[2], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n return value;\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageService.add(message)\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.dialogRef = this.dialogService.open(RegistroDetalleComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n id: this.getValue(element.scope).length + 1\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')].push(data);\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n editRow(element: any, data: any, index: number) {\r\n this.dialogRef = this.dialogService.open(RegistroDetalleComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: false,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n data: { ...data }\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')][index] = data;\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.data[element.scope.replace('$..properties.', '')].splice(index, 1);\r\n index = 1;\r\n this.data[element.scope.replace('$..properties.', '')].forEach((el: any) => {\r\n el.id = index;\r\n index++;\r\n })\r\n this.applyValuesOnEvent('onChange', this.esquema, element.scope.replace('$..properties.', ''))\r\n }\r\n\r\n setValueByScope(scope: string, newVal: any){\r\n for (let i = 0; i < this.controls.length; i++) {\r\n const row = this.controls[i];\r\n row.forEach((el, j) => {\r\n if (el.scope && el.scope.replace('.properties','')== scope.replace('.properties','')){\r\n this.values[i][j] = newVal\r\n }\r\n })\r\n }\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.optionValue){\r\n for (let i = 0; i < event.optionValue.length; i++) {\r\n const optionVal = event.optionValue[i];\r\n const newVal = event.data ? this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]): null;\r\n jsonpath.value(this.data, optionVal.scope.replace('.properties',''), this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]))\r\n this.setValueByScope(optionVal.scope, newVal)\r\n }\r\n }\r\n }\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}\r\n","<p-toast></p-toast>\r\n<div *ngIf=\"controlsLoaded\">\r\n<div *ngFor=\"let element of uiEsquema.elements; let i = index\" [class]=\"element?.class\" #a>\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements; let j =index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\" [value]=\"values[i][j]\"\r\n (setValue)=\"setValue($event, el.scope, i, j)\" (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements; let k =index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][k]\" [label]=\"el.label\"\r\n [value]=\"values[i][k]\" (setValue)=\"setValue($event, el.scope, i, k)\"\r\n (sendNotification)=\"sendNotification($event)\"\r\n (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n <ng-container *ngSwitchCase=\"'Table'\">\r\n <p-table [value]=\"getValue(el.scope)\" [columns]=\"getControl(el.scope).config.columns\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <button pButton pRipple icon=\"pi pi-plus\" (click)=\"addObjectArray(el)\"\r\n class=\"p-button-success\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <th></th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <td>{{rowData[col.col]}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency:USD'\">\r\n <td>{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:yyyy-mm-dd'\">\r\n <td>{{rowData[col.col] | date: 'yyyy-mm-dd'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:dd/mm/yyyy'\">\r\n <td>{{rowData[col.col] | date: 'dd/MM/yyyy'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <td>\r\n <i *ngIf=\"rowData[col.col]\" class=\"pi pi-check\"></i>\r\n <i *ngIf=\"!rowData[col.col]\" class=\"pi pi-times\"></i>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <td>\r\n <button pButton pRipple type=\"button\"\r\n (click)=\"editRow(el, rowData, rowIndex)\" icon=\"pi pi-pencil\"\r\n class=\"p-button-rounded p-button-info mr-1\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\"\r\n icon=\"pi pi-trash\" class=\"p-button-rounded p-button-danger\"></button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n</div>\r\n<div class=\"card-footer mt-2\">\r\n <button pButton pRipple type=\"button\" label=\"Guardar\" (click)=\"submit()\" class=\"mr-2\"></button>\r\n <button pButton pRipple type=\"button\" label=\"Cancelar\" (click)=\"cancel()\" class=\"p-button-danger\"></button>\r\n</div>\r\n</div>\r\n","import { Injectable } from '@angular/core';\r\nimport { DataTempCrud } from './shared/models/data-temp-crud.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SfCrudService {\r\n\r\n private _dataTemp: DataTempCrud[] = [];\r\n\r\n constructor() { }\r\n\r\n saveDataTemp(scope: string, value: any) {\r\n this._dataTemp.push({ scope, value })\r\n sessionStorage.setItem('dataTemp', JSON.stringify(this._dataTemp))\r\n }\r\n\r\n getDataTemp() {\r\n let dataTemp = sessionStorage.getItem('dataTemp')\r\n sessionStorage.removeItem('dataTemp')\r\n return dataTemp ? JSON.parse(dataTemp) : []\r\n }\r\n\r\n cleanDataTemp(){\r\n sessionStorage.removeItem('dataTemp')\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ConfigRegistro, CrudConfig, Key, Operations, RequestChecking } from '../../shared/models/crud-config.model';\r\nimport { DialogService, DynamicDialogConfig, DynamicDialogRef } from 'primeng/dynamicdialog';\r\nimport { GeneralService } from '../../shared/services/general.service';\r\nimport { Message, MessageService } from 'primeng/api';\r\nimport { RegistroChildComponent } from '../registro-child/registro-child.component';\r\nimport { Router } from '@angular/router';\r\nimport { Shema } from '../../shared/models/shema.model';\r\nimport * as jsonpath from 'jsonpath';\r\nimport { DataTempCrud } from '../../shared/models/data-temp-crud.model';\r\nimport { SfCrudService } from '../../sf-crud.service';\r\nimport * as moment from 'moment';\r\nimport Swal from 'sweetalert2';\r\n\r\n@Component({\r\n selector: 'sf-registro',\r\n templateUrl: './registro.component.html',\r\n providers: [MessageService, DialogService, DynamicDialogConfig, DynamicDialogRef],\r\n entryComponents: [RegistroComponent]\r\n})\r\nexport class RegistroComponent implements OnInit {\r\n\r\n @Input() idKatios: string = '';\r\n @Input() idEntidad: string = '';\r\n @Input() trx: string = '';\r\n @Input() id: string = '';\r\n @Input() user: any;\r\n @Input() dataExt: any;\r\n @Output() sendData: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() onSubmit: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private dataTemp: DataTempCrud[] = [];\r\n public crudConfig: CrudConfig = new CrudConfig();\r\n public enProceso: boolean = false;\r\n public btnSubmit: any;\r\n public data: any;\r\n public configOperation: Operations = new Operations();\r\n public isLocal: boolean = false;\r\n values!: any[][];\r\n controls!: any[][];\r\n controlsLoaded = false;\r\n public dialogRef?: DynamicDialogRef\r\n\r\n constructor(\r\n private generalService: GeneralService,\r\n private router: Router,\r\n private messageSerice: MessageService,\r\n private dialogService: DialogService,\r\n private sfCrudService: SfCrudService\r\n ) {\r\n this.dataTemp = this.sfCrudService.getDataTemp();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadConfigCrud();\r\n }\r\n\r\n loadConfigCrud() {\r\n this.enProceso = true;\r\n this.generalService.getCrudByEntidad(this.idKatios, this.idEntidad)\r\n .then(res => {\r\n this.setDataTemp(res.esquema, this.dataTemp);\r\n this.crudConfig = res;\r\n \r\n if (this.trx == 'c') {\r\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\r\n this.data = this.createObject(this.crudConfig.esquema);\r\n console.log(this.data)\r\n this.setLabelSumbit();\r\n this.enProceso = false;\r\n this.buildControls()\r\n } else this.getInfoRegistro(this.crudConfig.registro);\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n buildControls(){\r\n this.controlsLoaded = false;\r\n this.controls = []\r\n this.values = []\r\n this.crudConfig.uiEsquema.elements.forEach((layout: any, i: number) => {\r\n this.controls.push([])\r\n this.values.push([])\r\n layout.elements?.forEach((element: any, j:number) => {\r\n this.controls[i].push(this.getControl(element.scope))\r\n this.controls[i][j].scope = element.scope\r\n this.values[i].push(this.getValue(element.scope))\r\n\r\n });\r\n });\r\n this.controlsLoaded = true;\r\n }\r\n\r\n setLabelSumbit() {\r\n if (this.trx == 'c') this.btnSubmit = { label: 'Guardar', icon: 'pi pi-save' }\r\n else if (this.trx == 'r') this.btnSubmit = undefined;\r\n else if (this.trx == 'u') this.btnSubmit = { label: 'Actualizar', icon: 'pi pi-sync' }\r\n else if (this.trx == 'd') this.btnSubmit = { label: 'Eliminar', icon: 'pi pi-trash' }\r\n }\r\n\r\n getInfoRegistro(configRegistro: ConfigRegistro) {\r\n let op = configRegistro.operations.find(x => x.type == 'read');\r\n let endpoint = op?.endpoint || '';\r\n endpoint = endpoint.replace('@idKatios', this.idKatios);\r\n endpoint = endpoint.replace('@ndocactivo', this.user.UsuarioSistema.NDOC);\r\n endpoint = endpoint.replace('@id', this.id);\r\n this.generalService.genericRequest(op?.method || '', op?.server || '', endpoint)\r\n .then((res: any) => {\r\n if (res?.data){\r\n if(Array.isArray(res.data)) this.data = res.data[0]\r\n else this.data = res.data;\r\n this.trx = 'u';\r\n } \r\n else {\r\n this.trx = 'c';\r\n this.data = this.createObject(this.crudConfig.esquema);\r\n }\r\n this.buildControls()\r\n this.enProceso = false;\r\n this.configOperation = this.crudConfig.registro.operations.find(x => x.type.startsWith(this.trx)) || new Operations();\r\n this.setLabelSumbit();\r\n })\r\n .catch(err => {\r\n console.log(err);\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n back() {\r\n this.router.navigateByUrl(this.crudConfig.registro.btnBack);\r\n }\r\n\r\n getControl(scope: string) {\r\n return jsonpath.query(this.crudConfig.esquema, scope)[0];\r\n }\r\n\r\n getValue(scope: string) {\r\n return jsonpath.query(this.data, scope.replace('.properties', ''))[0];\r\n }\r\n\r\n setValue(value: any, scope: string, i: number, j: number) {\r\n switch (typeof (value)) {\r\n case 'object':\r\n if (Array.isArray(value)) value.forEach((val: any) => {\r\n this.setValueByScope(val.scope, val.value)\r\n jsonpath.value(this.data, val.scope.replace('.properties', ''), val.value)\r\n })\r\n else {\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n }\r\n break;\r\n default:\r\n this.values[i][j] = value;\r\n jsonpath.value(this.data, scope.replace('.properties', ''), value);\r\n break;\r\n }\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema);\r\n }\r\n\r\n createObject(esquema: Shema) {\r\n const object: any = {};\r\n switch (esquema.type) {\r\n case 'numeric':\r\n return esquema?.default || 0;\r\n case 'string':\r\n case 'date':\r\n return esquema?.default ? this.setDefaultValue(esquema.default) : null;\r\n case 'boolean':\r\n return esquema?.default || false;\r\n case 'array':\r\n return [];\r\n case 'file':\r\n return null;\r\n case 'object':\r\n Object.getOwnPropertyNames(esquema?.properties).forEach(key => {\r\n let aux = esquema?.properties[key]\r\n if (aux) object[key] = this.createObject(aux)\r\n });\r\n return object;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n submit() {\r\n console.log(this.data)\r\n if (!this.validateData()) return;\r\n this.applyValuesOnEvent('onSubmit', this.crudConfig.esquema)\r\n this.enProceso = true;\r\n let endpoint = this.configOperation.endpoint;\r\n endpoint = endpoint.replace('@idKatios', this.idKatios)\r\n endpoint = endpoint.replace('@id', this.id)\r\n this.generalService.genericRequest(this.configOperation.method, this.configOperation.server, endpoint, this.data)\r\n .then((res) => {\r\n this.generateMessage({ severity: 'success', detail: `Proceso exitoso!` }, res, this.configOperation.answerChecking)\r\n this.enProceso = false;\r\n setTimeout(() => {\r\n if (this.configOperation?.redirect) this.router.navigate([this.configOperation?.redirect])\r\n else this.onSubmit.emit(this.data)\r\n }, 2000);\r\n })\r\n .catch(err => {\r\n const operation = this.crudConfig.registro.operations.find(op => op.type.startsWith(this.trx))!\r\n this.generateMessage({severity: \"error\", detail: \"Por favor comunicarse con el admin\", summary: \"Error no controlado\"}, err.error, operation.errorChecking)\r\n this.enProceso = false;\r\n })\r\n }\r\n\r\n /**\r\n * Generates message using answerchecking\r\n * @param currentMsg Default message: Message\r\n * @param rta Resquest's response\r\n * @param answerChecking \r\n */\r\n generateMessage(currentMsg: Message | any, rta: any, requestChecking?: RequestChecking){\r\n if (requestChecking){\r\n if (requestChecking.statics) Object.assign(currentMsg, requestChecking.statics)\r\n //mapear los dinamicos\r\n if (requestChecking.dynamics){\r\n const dynamics: any = requestChecking.dynamics\r\n try{\r\n if (dynamics && typeof(rta) == \"string\") rta = JSON.parse(rta)\r\n if (dynamics) {\r\n for (const property in dynamics) {\r\n currentMsg[property] = jsonpath.query(rta, dynamics[property])[0];\r\n }\r\n }\r\n }catch(error){//es una respuesta sin JSON\r\n if (dynamics) currentMsg.detail = rta\r\n }\r\n }\r\n }\r\n\r\n if (requestChecking?.redirect || requestChecking?.swal) Swal.fire(currentMsg.summary, currentMsg.detail, currentMsg.severity).then((res) => {\r\n if (res.isConfirmed && requestChecking.redirect) window.location.href = requestChecking.redirect\r\n })\r\n else this.messageSerice.add(currentMsg)\r\n }\r\n\r\n validateData() {\r\n if (this.configOperation.validations.type == 'local') return this.validateDataLocal();\r\n return true;\r\n }\r\n\r\n validateDataLocal() {\r\n let err: string[] = []\r\n this.configOperation.validations?.required?.forEach(x => {\r\n if (!jsonpath.query(this.data, x.field)[0]) err.push(x.message);\r\n })\r\n this.configOperation.validations?.operations?.forEach((op: any) => {\r\n switch (op.action) {\r\n case 'sumArray':\r\n let var1 = jsonpath.query(this.data, op.scope[0]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n let var2 = jsonpath.query(this.data, op.scope[1]).reduce((acc, cur) => acc += cur[op.key], 0);\r\n if (var1 != var2) err.push(op.message)\r\n break;\r\n default:\r\n break;\r\n }\r\n })\r\n if (err.length != 0) this.messageSerice.add({ severity: 'warn', detail: err.join('. ') })\r\n return err.length == 0;\r\n }\r\n\r\n setDefaultValue(value: any) {\r\n let data = null;\r\n if (value.key && this.configOperation.keys){\r\n data = this.getValueKey(this.configOperation.keys.find(k => k.key == value.key)!)\r\n value = data\r\n }\r\n switch (value) {\r\n case '@uactivo':\r\n data = `${this.user.UsuarioSistema.TDOC}-${this.user.UsuarioSistema.NDOC}`\r\n break;\r\n case '@tdocactivo':\r\n data = this.user.UsuarioSistema.TDOC\r\n break;\r\n case '@ndocactivo':\r\n data = this.user.UsuarioSistema.NDOC\r\n break;\r\n case '@hoy':\r\n data = new Date();\r\n break;\r\n default:\r\n data = value;\r\n break;\r\n }\r\n return data\r\n }\r\n\r\n getValueKey(key: Key): any {\r\n let data;\r\n switch (key.data || 'externa') {\r\n case \"user\":\r\n data = this.user\r\n break;\r\n default:\r\n data = this.dataExt\r\n break;\r\n }\r\n if (data){\r\n const aux = jsonpath.query(data, key.scope)\r\n if (aux.length == 0) return undefined\r\n if (aux.length == 1) return aux[0]\r\n else return aux\r\n }\r\n return undefined\r\n }\r\n\r\n sendNotification(message: Message) {\r\n this.messageSerice.add(message)\r\n }\r\n\r\n addObjectArray(element: any) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: true,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n id: this.getValue(element.scope).length + 1\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')].push(data);\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n editRow(element: any, data: any, index: number) {\r\n this.dialogRef = this.dialogService.open(RegistroChildComponent, {\r\n header: element.label ? element.label : 'Detalle',\r\n width: '70%',\r\n modal: true,\r\n closable: true,\r\n data: {\r\n uiEsquema: { ...element.elements },\r\n esquema: this.getControl(element.scope),\r\n data: { ...data }\r\n }\r\n })\r\n this.dialogRef.onClose.subscribe((data: any) => {\r\n if (data) this.data[element.scope.replace('$..properties.', '')][index] = data;\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n })\r\n }\r\n\r\n deleteRow(element: any, index: number) {\r\n this.data[element.scope.replace('$..properties.', '')].splice(index, 1);\r\n index = 1;\r\n this.data[element.scope.replace('$..properties.', '')].forEach((el: any) => {\r\n el.id = index;\r\n index++;\r\n })\r\n this.applyValuesOnEvent('onChange', this.crudConfig.esquema, element.scope.replace('$..properties.', ''))\r\n }\r\n\r\n applyValuesOnEvent(event: string, esquema: Shema, key?: string) {\r\n if (key) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: { scope: string[], op: string, key?: string }) => {\r\n this.setValueEvent(this.data, value);\r\n })\r\n }\r\n } else {\r\n for (const key in esquema.properties) {\r\n if (esquema.properties[key][event]) {\r\n esquema.properties[key][event].forEach((value: any) => {\r\n this.setValueEvent(this.data, value);\r\n })\r\n }\r\n }\r\n }\r\n }\r\n\r\n setValueEvent(data: any, params: { scope: string[], op: string, key?: any, separator?: string }) {\r\n let date = moment(new Date());\r\n switch (params.op) {\r\n case 'sum':\r\n jsonpath.value(data, params.scope[1], jsonpath.query(data, params.scope[0]).reduce((acc, cur) => acc += params?.key ? cur[params.key] : cur, 0))\r\n break;\r\n case 'concat':\r\n let array: string[] = []\r\n params?.key?.reduce((acc: any[], cur: string) => {\r\n array.push(jsonpath.query(data, cur)[0])\r\n }, [])\r\n if (params?.separator) jsonpath.value(data, params.scope[0], array.join(params?.separator || ' '))\r\n break;\r\n case 'enable':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], false)\r\n break;\r\n case 'disabled':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], true)\r\n break;\r\n case 'replace:endpoint':\r\n jsonpath.value(this.crudConfig.esquema, params.scope[0], this.crudConfig.esquema.config.endpointtemp.replace(params.scope[1], jsonpath.query(data, `$..${params.key}`)))\r\n break;\r\n case 'setNull':\r\n jsonpath.value(this.data, `$.${params.key}`, null);\r\n break;\r\n case 'datediff:years':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'years'))\r\n break;\r\n case 'datediff:months':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'months'))\r\n break;\r\n case 'datediff:weeks':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'weeks'))\r\n break;\r\n case 'datediff:days':\r\n jsonpath.value(this.data, params.scope[0], date.diff(moment(jsonpath.query(this.data, params.scope[1])[0]), 'days'))\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setDataTemp(esquema: Shema, dataTemp: any[]) {\r\n dataTemp.forEach(data => {\r\n jsonpath.value(esquema, data.scope, data.value)\r\n });\r\n }\r\n\r\n applyValuesFromObject(event: any) {\r\n if (event.optionValue){\r\n for (let i = 0; i < event.optionValue.length; i++) {\r\n const optionVal = event.optionValue[i];\r\n const newVal = event.data ? this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]): null;\r\n jsonpath.value(this.data, optionVal.scope.replace('.properties',''), this.aplyFormatValue(optionVal.scope, event.data[optionVal.key]))\r\n this.setValueByScope(optionVal.scope, newVal)\r\n }\r\n }\r\n }\r\n\r\n \r\n setValueByScope(scope: string, newVal: any){\r\n for (let i = 0; i < this.controls.length; i++) {\r\n const row = this.controls[i];\r\n row.forEach((el, j) => {\r\n if (el.scope && el.scope.replace('.properties','')== scope.replace('.properties','')){\r\n this.values[i][j] = newVal\r\n }\r\n })\r\n }\r\n }\r\n\r\n aplyFormatValue(scope: string, value: any) {\r\n let control = jsonpath.query(this.crudConfig.esquema, scope)[0]\r\n let resp;\r\n switch (control.type) {\r\n case 'date':\r\n resp = new Date(`${value}`)\r\n break;\r\n case 'numeric':\r\n resp = +value\r\n break;\r\n default:\r\n resp = value\r\n break;\r\n }\r\n return resp\r\n }\r\n}\r\n","<p-blockUI [blocked]=\"enProceso\">\r\n <i class=\"pi pi-cog pi-spin\" style=\"font-size: 50px\"></i>\r\n</p-blockUI>\r\n\r\n<p-toast></p-toast>\r\n\r\n<div class=\"card\" *ngIf=\"!enProceso && controlsLoaded\">\r\n <h5 class=\"card-header mb-2\" style=\"display: flex; justify-content: space-between;align-items: center;\">\r\n <span>{{crudConfig.registro?.label || idEntidad}} {{id != '' ? '-' + id : ''}}</span>\r\n <button *ngIf=\"crudConfig.registro?.canBack\" pButton pRipple type=\"button\" icon=\"pi pi-arrow-left\" (click)=\"back()\"></button>\r\n </h5>\r\n <div *ngFor=\"let element of crudConfig.uiEsquema.elements; let i = index\" [class]=\"element?.class\">\r\n <ng-container [ngSwitch]=\"element.type\">\r\n <div *ngSwitchCase=\"'Label'\" [style]=\"element?.style\">\r\n {{element?.label}}\r\n </div>\r\n <ng-container *ngSwitchCase=\"'HorizontalLayout'\">\r\n <div *ngFor=\"let el of element.elements;let j = index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\"\r\n [value]=\"values[i][j]\" (setValue)=\"setValue($event, el.scope, i, j)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'VerticalLayout'\">\r\n <div *ngFor=\"let el of element.elements;let j = index\" [class]=\"el?.class\">\r\n <ng-container [ngSwitch]=\"el.type\">\r\n <sf-control *ngSwitchCase=\"'Control'\" [control]=\"controls[i][j]\" [label]=\"el.label\"\r\n [value]=\"values[i][j]\" (setValue)=\"setValue($event, el.scope, i, j)\"\r\n (sendNotification)=\"sendNotification($event)\" (sendObject)=\"applyValuesFromObject($event)\"></sf-control>\r\n <ng-container *ngSwitchCase=\"'Table'\">\r\n <p-table [value]=\"getValue(el.scope)\" [columns]=\"getControl(el.scope).config.columns\">\r\n <ng-template pTemplate=\"caption\">\r\n <div class=\"flex align-items-center justify-content-between\">\r\n <button pButton pRipple icon=\"pi pi-plus\" (click)=\"addObjectArray(el)\"\r\n class=\"p-button-success\"></button>\r\n </div>\r\n </ng-template>\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n {{col.label}}\r\n </th>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <th></th>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n <ng-template pTemplate=\"body\" let-rowData let-columns=\"columns\" let-rowIndex=\"rowIndex\">\r\n <tr>\r\n <ng-container *ngFor=\"let col of columns\" [ngSwitch]=\"col.type\">\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <td>{{rowData[col.col]}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'currency:USD'\">\r\n <td>{{rowData[col.col] | currency: 'USD'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:yyyy-mm-dd'\">\r\n <td>{{rowData[col.col] | date: 'yyyy-mm-dd'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date:dd/mm/yyyy'\">\r\n <td>{{rowData[col.col] | date: 'dd/MM/yyyy'}}</td>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'boolean'\">\r\n <td>\r\n <i *ngIf=\"rowData[col.col]\" class=\"pi pi-check\"></i>\r\n <i *ngIf=\"!rowData[col.col]\" class=\"pi pi-times\"></i>\r\n </td>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"trx == 'c' || trx == 'u'\">\r\n <td>\r\n <button pButton pRipple type=\"button\" (click)=\"editRow(el, rowData, rowIndex)\" icon=\"pi pi-pencil\" class=\"p-button-rounded p-button-info mr-1\"></button>\r\n <button pButton pRipple type=\"button\" (click)=\"deleteRow(el, rowIndex)\" icon=\"pi pi-trash\" class=\"p-button-rounded p-button-danger\"></button>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Control'\">\r\n <sf-control [control]=\"getControl(element.scope)\" [label]=\"element.label\"></sf-control>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n <div class=\"card-footer mt-2\" *ngIf=\"btnSubmit\">\r\n <button pButton pRipple type=\"button\" [icon]=\"btnSubmit.icon\" [label]=\"btnSubmit.label\"\r\n (click)=\"submit()\"></button>\r\n </div>\r\n</div>\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-sf-crud',\r\n template: `\r\n <p>\r\n sf-crud works!\r\n </p>\r\n `,\r\n styles: [\r\n ]\r\n})\r\nexport class SfCrudComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { FormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\n//=========================================================\r\n// PrimeNG Modules\r\n//=========================================================\r\nimport { AccordionModule } from 'primeng/accordion';\r\nimport { AutoCompleteModule } from 'primeng/autocomplete';\r\nimport { AvatarGroupModule } from 'primeng/avatargroup';\r\nimport { AvatarModule } from 'primeng/avatar';\r\nimport { BadgeModule } from 'primeng/badge';\r\nimport { BlockUIModule } from 'primeng/blockui';\r\nimport { BreadcrumbModule } from 'primeng/breadcrumb';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { CalendarModule } from 'primeng/calendar';\r\nimport { CardModule } from 'primeng/card';\r\nimport { CarouselModule } from 'primeng/carousel';\r\nimport { CascadeSelectModule } from 'primeng/cascadeselect';\r\nimport { CheckboxModule } from 'primeng/checkbox';\r\nimport { ChipModule } from 'primeng/chip';\r\nimport { ChipsModule } from 'primeng/chips';\r\nimport { ColorPickerModule } from 'primeng/colorpicker';\r\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\r\nimport { ConfirmPopupModule } from 'primeng/confirmpopup';\r\nimport { ContextMenuModule } from 'primeng/contextmenu';\r\nimport { DialogModule } from 'primeng/dialog';\r\nimport { DividerModule } from 'primeng/divider';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { DynamicDialogModule } from 'primeng/dynamicdialog';\r\nimport { FieldsetModule } from 'primeng/fieldset';\r\nimport { FileUploadModule } from 'primeng/fileupload';\r\nimport { GalleriaModule } from 'primeng/galleria';\r\nimport { InplaceModule } from 'primeng/inplace';\r\nimport { InputMaskModule } from 'primeng/inputmask';\r\nimport { InputNumberModule } from 'primeng/inputnumber';\r\nimport { InputSwitchModule } from 'primeng/inputswitch';\r\nimport { InputTextareaModule } from 'primeng/inputtextarea';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { KnobModule } from 'primeng/knob';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MegaMenuModule } from 'primeng/megamenu';\r\nimport { MenubarModule } from 'primeng/menubar';\r\nimport { MenuModule } from 'primeng/menu';\r\nimport { MessageModule } from 'primeng/message';\r\nimport { MessagesModule } from 'primeng/messages';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\nimport { OrganizationChartModule } from 'primeng/organizationchart';\r\nimport { OverlayPanelModule } from 'primeng/overlaypanel';\r\nimport { PanelMenuModule } from 'primeng/panelmenu';\r\nimport { PanelModule } from 'primeng/panel';\r\nimport { PasswordModule } from 'primeng/password';\r\nimport { ProgressBarModule } from 'primeng/progressbar';\r\nimport { RadioButtonModule } from 'primeng/radiobutton';\r\nimport { RatingModule } from 'primeng/rating';\r\nimport { RippleModule } from 'primeng/ripple';\r\nimport { ScrollPanelModule } from 'primeng/scrollpanel';\r\nimport { ScrollTopModule } from 'primeng/scrolltop';\r\nimport { SelectButtonModule } from 'primeng/selectbutton';\r\nimport { SidebarModule } from 'primeng/sidebar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { SlideMenuModule } from 'primeng/slidemenu';\r\nimport { SliderModule } from 'primeng/slider';\r\nimport { SplitButtonModule } from 'primeng/splitbutton';\r\nimport { SplitterModule } from 'primeng/splitter';\r\nimport { StepsModule } from 'primeng/steps';\r\nimport { TableModule } from 'primeng/table';\r\nimport { TabMenuModule } from 'primeng/tabmenu';\r\nimport { TabViewModule } from 'primeng/tabview';\r\nimport { TagModule } from 'primeng/tag';\r\nimport { TerminalModule } from 'primeng/terminal';\r\nimport { TieredMenuModule } from 'primeng/tieredmenu';\r\nimport { TimelineModule } from 'primeng/timeline';\r\nimport { ToastModule } from 'primeng/toast';\r\nimport { ToggleButtonModule } from 'primeng/togglebutton';\r\nimport { ToolbarModule } from 'primeng/toolbar';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { TreeModule } from 'primeng/tree';\r\n\r\n//=========================================================\r\n// Componets\r\n//=========================================================\r\nimport { SfCrudComponent } from './sf-crud.component';\r\nimport { TableroComponent } from './components/tablero/tablero.component';\r\nimport { RegistroComponent } from './components/registro/registro.component';\r\nimport { ControlComponent } from './components/control/control.component';\r\nimport { RegistroChildComponent } from './components/registro-child/registro-child.component';\r\nimport { RegistroDetalleComponent } from './components/registro-detalle/registro-detalle.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent,\r\n RegistroChildComponent,\r\n RegistroDetalleComponent\r\n ],\r\n imports: [\r\n AccordionModule,\r\n AutoCompleteModule,\r\n AvatarGroupModule,\r\n AvatarModule,\r\n BadgeModule,\r\n BlockUIModule,\r\n BreadcrumbModule,\r\n ButtonModule,\r\n CalendarModule,\r\n CardModule,\r\n CarouselModule,\r\n CascadeSelectModule,\r\n CheckboxModule,\r\n ChipModule,\r\n ChipsModule,\r\n ColorPickerModule,\r\n ConfirmDialogModule,\r\n ConfirmPopupModule,\r\n ContextMenuModule,\r\n DialogModule,\r\n DividerModule,\r\n DropdownModule,\r\n DynamicDialogModule,\r\n FieldsetModule,\r\n FileUploadModule,\r\n FormsModule,\r\n GalleriaModule,\r\n HttpClientModule,\r\n InplaceModule,\r\n InputMaskModule,\r\n InputNumberModule,\r\n InputSwitchModule,\r\n InputTextareaModule,\r\n InputTextModule,\r\n KnobModule,\r\n ListboxModule,\r\n MegaMenuModule,\r\n MenubarModule,\r\n MenuModule,\r\n MessageModule,\r\n MessagesModule,\r\n MultiSelectModule,\r\n OrganizationChartModule,\r\n OverlayPanelModule,\r\n PanelMenuModule,\r\n PanelModule,\r\n PasswordModule,\r\n ProgressBarModule,\r\n RadioButtonModule,\r\n RatingModule,\r\n RippleModule,\r\n ScrollPanelModule,\r\n ScrollTopModule,\r\n SelectButtonModule,\r\n SidebarModule,\r\n SkeletonModule,\r\n SlideMenuModule,\r\n SliderModule,\r\n SplitButtonModule,\r\n SplitterModule,\r\n StepsModule,\r\n TableModule,\r\n TabMenuModule,\r\n TabViewModule,\r\n TagModule,\r\n TerminalModule,\r\n TieredMenuModule,\r\n TimelineModule,\r\n ToastModule,\r\n ToggleButtonModule,\r\n ToolbarModule,\r\n TooltipModule,\r\n TreeModule,\r\n ],\r\n exports: [\r\n SfCrudComponent,\r\n TableroComponent,\r\n RegistroComponent,\r\n ControlComponent\r\n ],\r\n entryComponents: [\r\n RegistroChildComponent\r\n ]\r\n})\r\nexport class SfCrudModule { }\r\n","/*\r\n * Public API Surface of sf-crud\r\n */\r\n\r\nexport * from './lib/components/tablero/tablero.component';\r\nexport * from './lib/components/registro/registro.component';\r\nexport * from './lib/components/control/control.component';\r\nexport * from './lib/sf-crud.component';\r\nexport * from './lib/sf-crud.module';\r\nexport * from './lib/sf-crud.service';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.GeneralService","i8","i2","i3","i4","i5","i6","i7","i9","i10","i13","i14","i1","i4.ControlComponent","i5.SfCrudService","i8.ControlComponent","i11","i12"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAAa,KAAK,CAAA;AAAlB,IAAA,WAAA,GAAA;QACI,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;KAMxB;AAAA;;MCLY,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;QACI,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,OAAO,GAAkB,IAAI,aAAa,EAAE,CAAC;AAE7C,QAAA,IAAA,CAAA,OAAO,GAAU,IAAI,KAAK,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,QAAQ,GAAmB,IAAI,cAAc,EAAE,CAAC;KACnD;AAAA,CAAA;MAGY,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;QACI,IAAO,CAAA,OAAA,GAAU,EAAE,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;QACpB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;QACpB,IAAO,CAAA,OAAA,GAAa,EAAE,CAAC;QACvB,IAAI,CAAA,IAAA,GAAsC,EAAE,CAAC;KAChD;AAAA,CAAA;MAEY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;QACI,IAAU,CAAA,UAAA,GAAiB,EAAE,CAAC;QAC9B,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;KAExB;AAAA,CAAA;MAEY,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;QACI,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAA;QACrB,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;AACpB,QAAA,IAAA,CAAA,WAAW,GAAgB,IAAI,WAAW,EAAE,CAAC;KAKhD;AAAA,CAAA;MAEY,GAAG,CAAA;AAIf,CAAA;MAEY,WAAW,CAAA;AAAxB,IAAA,WAAA,GAAA;QACI,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAQ,CAAA,QAAA,GAAyC,EAAE,CAAC;QACpD,IAAM,CAAA,MAAA,GAAW,EAAE,CAAC;QACpB,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;KAEzB;AAAA,CAAA;MAEY,eAAe,CAAA;AACxB,IAAA,WAAA,CACW,QAAiB,EACjB,OAAgB,EAChB,IAAa,EACb,QAAgB,EAAA;QAHhB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAS;QACjB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;QAChB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAS;QACb,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;KACxB;AACN;;MCrDY,cAAc,CAAA;AAKvB,IAAA,WAAA,CACY,IAAgB,EAAA;;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAJrB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AAM1B,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,SAAS,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,iBAAiB,CAAC;KACvD;IAEK,gBAAgB,CAAC,QAAgB,EAAE,SAAiB,EAAA;;AACtD,YAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,SAAS,CAAQ,KAAA,EAAA,QAAQ,CAAI,CAAA,EAAA,SAAS,EAAE,CAAC;AACjE,iBAAA,SAAS,EAAE;iBACX,IAAI,CAAC,CAAC,GAAQ,KAAiB,GAAG,CAAC,IAAI,CAAC;iBACxC,IAAI,CAAC,IAAI,IAAG,EAAG,OAAO,IAAI,CAAA,EAAE,CAAC,CAAA;SACrC,CAAA,CAAA;AAAA,KAAA;AAEK,IAAA,cAAc,CAAC,MAAc,EAAE,QAAgB,EAAE,QAAgB,EAAE,IAAU,EAAA;;AAC/E,YAAA,QAAQ,MAAM;AACV,gBAAA,KAAK,KAAK;AACN,oBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAG,EAAA,QAAQ,EAAE,CAAC;AAC1D,yBAAA,SAAS,EAAE,CAAC;AACrB,gBAAA,KAAK,MAAM;AACP,oBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA,EAAG,QAAQ,CAAE,CAAA,EAAE,IAAI,CAAC;AACjE,yBAAA,SAAS,EAAE,CAAC;AACrB,gBAAA,KAAK,KAAK;AACN,oBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA,EAAG,QAAQ,CAAE,CAAA,EAAE,IAAI,CAAC;AAChE,yBAAA,SAAS,EAAE,CAAC;AACrB,gBAAA,KAAK,QAAQ;AACT,oBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA,EAAG,QAAQ,CAAE,CAAA,EAAE,IAAI,CAAC;AACnE,yBAAA,SAAS,EAAE,CAAC;AACrB,gBAAA;oBACI,OAAM;AACb,aAAA;SACJ,CAAA,CAAA;AAAA,KAAA;;4GApCQ,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,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA;4FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCMY,gBAAgB,CAAA;IAgB3B,WACU,CAAA,cAA8B,EAC9B,MAAc,EAAA;QADd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAhBf,IAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;QACrB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AAGrB,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE/D,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,UAAU,GAAe,IAAI,UAAU,EAAE,CAAC;QAC1C,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAI,CAAA,IAAA,GAAU,EAAE,CAAC;AACjB,QAAA,IAAA,CAAA,GAAG,GAAyD,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;KAM3I;IAEJ,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAA;KACtB;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;aAChE,IAAI,CAAC,GAAG,IAAG;AACV,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;YACtB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC/C,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;AACX,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC,CAAA;KACL;AAED,IAAA,cAAc,CAAC,aAA4B,EAAA;AACzC,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACpJ,aAAA,IAAI,CAAC,CAAC,GAAQ,KAAI;AACjB,YAAA,IAAI,GAAG,CAAC;AACR,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;AAAE,gBAAA,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;;gBAAM,GAAG,GAAG,GAAG,CAAC;AACxD,YAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACvB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;AACX,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC,CAAA;KACL;AAED,IAAA,YAAY,CAAC,IAAW,EAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAS,KAAI;YACzB,IAAI,OAAO,GAAQ,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAG;AAC5C,gBAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACjD,aAAC,CAAC,CAAA;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;AACzB,SAAC,CAAC,CAAA;AACF,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;KACvB;IACD,QAAQ,CAAC,IAAY,EAAE,IAAS,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,CAAA;KAClB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAQ,KAAK,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AACjE,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;AAClG,SAAC,CAAC,CAAA;KACH;IAED,QAAQ,CAAC,MAAc,EAAE,IAAU,EAAA;;AACjC,QAAA,QAAQ,MAAM;AACZ,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,GAAG,CAAC,MAAM,0CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,KAAI,EAAE,CAAC,CAAC;gBAClE,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC3G,MAAK;AACP,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC7G,MAAK;AACP,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC7G,MAAK;AACP,YAAA;gBACE,MAAK;AACR,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,IAAuC,EAAE,QAAgB,EAAE,IAAU,EAAA;AAC5E,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;;YACjB,QAAQ,GAAG,CAAC,GAAG;AACb,gBAAA,KAAK,OAAO;oBACV,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,0CAAE,IAAI,KAAI,EAAE,CAAC,CAAA;oBAC3E,MAAM;AACR,gBAAA,KAAK,OAAO;oBACV,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,cAAc,0CAAE,IAAI,KAAI,EAAE,CAAC,CAAA;oBAC3E,MAAM;AACR,gBAAA,KAAK,WAAW;AACd,oBAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;oBACnD,MAAM;AACR,gBAAA;oBACE,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;AAAE,wBAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,KAAK,KAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACxH,MAAM;AACT,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED,IAAA,UAAU,CAAC,MAAW,EAAA;QACpB,QAAQ,MAAM,CAAC,MAAM;AACnB,YAAA,KAAK,UAAU;gBACb,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvG,MAAM;AACR,YAAA;gBACE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;gBAC1E,MAAM;AACT,SAAA;KACF;;8GA5HU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,uNCZ7B,2/EA8CM,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,KAAA,EAAA,uBAAA,EAAA,uBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,CAAA,CAAA;4FDlCO,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,WAAW,EAAE,0BAA0B;AACxC,iBAAA,CAAA;uHAGU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;METI,gBAAgB,CAAA;AAgB3B,IAAA,WAAA,CACU,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAf/B,QAAA,IAAA,CAAA,OAAO,GAAU,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AAGlB,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;AACtD,QAAA,IAAA,CAAA,gBAAgB,GAA0B,IAAI,YAAY,EAAW,CAAC;AACtE,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAO,CAAC;QAE3D,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAe,CAAA,eAAA,GAAU,EAAE,CAAC;QAC5B,IAAa,CAAA,aAAA,GAAU,EAAE,CAAC;QAC1B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAS,CAAA,SAAA,GAAQ,EAAE,CAAA;KAIrB;IAEL,QAAQ,GAAA;;AACN,QAAA,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,KAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,UAAU;YAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3F,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,cAAc;YAAE,IAAI,CAAC,eAAe,EAAE,CAAC;QACjF,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;KAC/D;IAED,SAAS,GAAA;QACP,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;AAED,IAAA,mBAAmB,CAAC,KAAU,EAAA;QAC5B,QAAQ,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC;AAC9C,YAAA,KAAK,QAAQ;gBACX,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,EAAO,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;AACjF,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACpD,MAAM;AACR,YAAA;AACE,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC3D,MAAM;AACT,SAAA;KACF;AAED,IAAA,aAAa,CAAC,IAAY,EAAA;AACxB,QAAA,QAAQ,IAAI;AACV,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,KAAK,GAAW,IAAI,MAAM,CAAC,wCAAwC,CAAC,CAAC;AACzE,gBAAA,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,IAAI,CAAC,SAAS,EAAE,CAAC;AACxC,qBAAA;AACH,oBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;oBAClB,IAAI,CAAC,SAAS,EAAE,CAAA;AAChB,oBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAA;AACnF,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;KACF;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrH,aAAA,IAAI,CAAC,CAAC,GAAQ,KAAI;AACjB,YAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC,CAAA;KACL;AAED,IAAA,kCAAkC,CAAC,KAAU,EAAA;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA,KAAK,KAAL,IAAA,IAAA,KAAK,uBAAL,KAAK,CAAE,KAAK,KAAI,EAAE,CAAC,CAAC;AAC3J,aAAA,IAAI,CAAC,CAAC,GAAQ,KAAI;AACjB,YAAA,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,IAAI,CAAC;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC,CAAA;KACL;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;QACjB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC9B,IAAI,IAAI,GAAG,oBAAoB,CAAC;AAChC,QAAA,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;QACpC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,CAAI,CAAA,EAAA,IAAI,CAAE,CAAA,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAC/H,IAAI,CAAC,MAAK;AACT,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAgC,8BAAA,CAAA,EAAE,CAAC,CAAA;AAC1F,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,GAAG,IAAI,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE,CAAA;YAC3E,IAAI,CAAC,SAAS,EAAE,CAAA;AAClB,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;AACX,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAChB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;AACtB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAA6B,2BAAA,CAAA,EAAE,CAAC,CAAA;AAC1F,SAAC,CAAC,CAAA;KACL;IAED,UAAU,GAAA;;QACR,IAAI,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,0CAAE,YAAY;YAAE,IAAI,CAAC,mBAAmB,EAAE,CAAC;KACpE;IAED,eAAe,GAAA;;AACb,QAAA,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;KACrJ;AAED,IAAA,WAAW,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;QACjE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;AACjG,aAAA,IAAI,CAAC,CAAC,GAAQ,KAAI;;AACjB,YAAA,IAAI,CAAA,CAAA,EAAA,GAAA,GAAG,KAAA,IAAA,IAAH,GAAG,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAH,GAAG,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,IAAG,CAAC,EAAC;gBACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAE,CAAA;AAC3F,aAAA;AAAI,iBAAA;AACH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAC,CAAsB,oBAAA,CAAA,EAAC,CAAC,CAAA;gBAC7E,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAE,CAAA;AACpF,aAAA;AACH,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAE;AACV,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAChB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAC,CAAgC,8BAAA,CAAA,EAAC,CAAC,CAAA;AAC1F,SAAC,CAAC,CAAA;KACL;IAED,OAAO,GAAA;AACL,QAAA,IAAI,MAAM,GAAI,IAAI,CAAC,OAAe,CAAC,YAAY,CAAA;AAE/C,QAAA,IAAG,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,EAAC;AACvD,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,EAAE,CAAA;AAEjB,SAAA;KACF;;8GApIU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gBAAgB,2OCV7B,o3PAiHe,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,YAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,QAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,EAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,UAAA,EAAA,cAAA,EAAA,KAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,+BAAA,EAAA,8BAAA,EAAA,+BAAA,EAAA,8BAAA,EAAA,+BAAA,EAAA,gCAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,SAAA,EAAA,cAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,KAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,KAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,KAAA,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,GAAA,CAAA,aAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAD,KAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,iGAAA,EAAA,EAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDvGF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,WAAW,EAAE,0BAA0B;AACxC,iBAAA,CAAA;kGAGU,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MENI,wBAAwB,CAAA;AAMnC,IAAA,WAAA,CACS,GAAqB,EACrB,MAA2B,EAC1B,cAA8B,EAAA;QAF/B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAqB;QAC1B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AANjC,QAAA,IAAA,CAAA,OAAO,GAAU,IAAI,KAAK,EAAE,CAAC;KAO/B;IAEL,QAAQ,GAAA;;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,YAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzD,SAAA;KACF;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE;IAED,QAAQ,CAAC,KAAU,EAAE,KAAa,EAAA;AAChC,QAAA,QAAQ,QAAQ,KAAK,CAAC;AACpB,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,oBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;;AAC5H,oBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACxE,MAAM;AACR,YAAA;AACE,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnE,MAAM;AACT,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;KACxF;AAED,IAAA,YAAY,CAAC,OAAc,EAAA;QACzB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,WAAW,GAAU,EAAE,CAAC;QAC9B,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAAI,CAAC,CAAC;AAC/B,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,MAAM;gBACT,OAAO,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,OAAO,IAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACzE,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAAI,KAAK,CAAC;AACnC,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC;AACd,YAAA,KAAK,OAAO,CAAC;AACb,YAAA,KAAK,QAAQ;gBACX,KAAK,MAAM,GAAG,IAAI,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,UAAU,EAAE;AACrC,oBAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;AACjJ,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,eAAe,CAAC,KAAa,EAAA;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,QAAA,IAAI,OAAO,CAAC;AACZ,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAA;AACjE,gBAAA,IAAI,CAAC,OAAO;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;;AACvD,oBAAA,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAI,CAAA,EAAA,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;gBAC3E,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAA;AACjE,gBAAA,IAAI,CAAC,OAAO;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;;AACvD,oBAAA,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAA;gBACvC,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAA;AACjE,gBAAA,IAAI,CAAC,OAAO;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;;AACvD,oBAAA,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAA;gBACvC,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAClB,MAAM;AACR,YAAA;gBACE,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM;AACT,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;QACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;KAClB;IAED,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC9E,QAAA,OAAO,IAAI,CAAC;KACb;IAED,iBAAiB,GAAA;QACf,IAAI,GAAG,GAAa,EAAE,CAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAM,KAAI;AACnD,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAAE,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAClE,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1F,QAAA,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;KACxB;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAE,OAAc,EAAE,KAAc,EAAA;AAC9D,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACpC,gBAAA,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;oBACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtC,iBAAC,CAAC,CAAA;AACH,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAClC,oBAAA,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;wBACpD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtC,qBAAC,CAAC,CAAA;AACH,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,aAAa,CAAC,IAAS,EAAE,MAAoE,EAAA;;AAC3F,QAAA,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9B,QAAQ,MAAM,CAAC,EAAE;AACf,YAAA,KAAK,KAAK;gBACR,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,GAAG,IAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;gBAClH,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,IAAI,KAAK,GAAa,EAAE,CAAA;AACxB,gBAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC,CAAC,GAAU,EAAE,GAAW,KAAI;AAC9C,oBAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;iBACzC,EAAE,EAAE,CAAC,CAAA;AACN,gBAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS;AAAE,oBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS,KAAI,GAAG,CAAC,CAAC,CAAA;gBAClG,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBACpD,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBACnD,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAM,GAAA,EAAA,MAAM,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,CAAA;gBAClK,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAK,EAAA,EAAA,MAAM,CAAC,GAAG,CAAA,CAAE,EAAE,IAAI,CAAC,CAAC;gBACnD,MAAM;AACR,YAAA,KAAK,gBAAgB;AACnB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;gBACrH,MAAM;AACR,YAAA,KAAK,iBAAiB;AACpB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;gBACtH,MAAM;AACR,YAAA,KAAK,gBAAgB;AACnB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;gBACrH,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;gBACpH,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,gBAAgB,CAAC,OAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;KACjC;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,KAAK,CAAC,IAAI;YAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAU,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;AACjL,YAAA,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,KAAU,KAAK,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;KACxH;IACD,eAAe,CAAC,KAAa,EAAE,KAAU,EAAA;AACvC,QAAA,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,QAAA,IAAI,IAAI,CAAC;QACT,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,MAAM;gBACT,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAA,CAAE,CAAC,CAAA;gBAC3B,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,GAAG,CAAC,KAAK,CAAA;gBACb,MAAM;AACR,YAAA;gBACE,IAAI,GAAG,KAAK,CAAA;gBACZ,MAAM;AACT,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;;sHA/MU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAV,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,4DCZrC,wgEAgCM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAU,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDpBO,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBALpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,WAAW,EAAE,mCAAmC;oBAChD,SAAS,EAAE,CAAC,kCAAkC,CAAC;AAChD,iBAAA,CAAA;;;MEEY,sBAAsB,CAAA;AAWjC,IAAA,WAAA,CACS,GAAqB,EACrB,MAA2B,EAC1B,cAA8B,EAC9B,aAA4B,EAAA;QAH7B,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAqB;QAC1B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAZ/B,QAAA,IAAA,CAAA,OAAO,GAAU,IAAI,KAAK,EAAE,CAAC;QAG7B,IAAG,CAAA,GAAA,GAAW,GAAG,CAAC;QAGzB,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;KAOlB;IAEL,QAAQ,GAAA;;AACN,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,MAAM,CAAC,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,CAAC;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5C,YAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzD,SAAA;QACD,IAAI,CAAC,aAAa,EAAE,CAAA;KACrB;IAEC,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,CAAS,KAAI;;AACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAEpB,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAC,OAAY,EAAE,CAAS,KAAI;gBACnD,IAAI,CAAC,OAAO,CAAC,KAAK;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,CAAA;AAC7D,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACrD,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;AACzC,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACnD,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC9B;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC/C;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE;AAED,IAAA,QAAQ,CAAC,KAAU,EAAE,KAAa,EAAE,CAAS,EAAE,CAAS,EAAA;AACtD,QAAA,QAAQ,QAAQ,KAAK,CAAC;AACpB,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,oBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;wBACnD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;wBAC1C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;AAC5E,qBAAC,CAAC,CAAA;AACG,qBAAA;oBACH,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1B,oBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpE,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1B,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnE,MAAM;AACT,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;KACxF;AAED,IAAA,YAAY,CAAC,OAAc,EAAA;QACzB,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,WAAW,GAAU,EAAE,CAAC;QAC9B,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAAI,CAAC,CAAC;AAC/B,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,MAAM;gBACT,OAAO,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,OAAO,IAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACzE,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAAI,KAAK,CAAC;AACnC,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC;AACd,YAAA,KAAK,OAAO,CAAC;AACb,YAAA,KAAK,QAAQ;gBACX,KAAK,MAAM,GAAG,IAAI,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,UAAU,EAAE;AACrC,oBAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;AACtJ,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,iBAAiB,CAAC,OAAc,EAAA;QAC9B,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,WAAW,GAAU,EAAE,CAAC;QAC9B,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAAI,CAAC,CAAC;AAC/B,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,MAAM;gBACT,OAAO,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,OAAO,IAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACzE,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAAI,KAAK,CAAC;AACnC,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC;AACd,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,EAAE,CAAC;AACZ,YAAA,KAAK,QAAQ;gBACX,KAAK,MAAM,GAAG,IAAI,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,UAAU,EAAE;AACrC,oBAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAA;AACjJ,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACf;AAED,IAAA,eAAe,CAAC,KAAa,EAAA;QAC3B,IAAI,IAAI,GAAG,IAAI,CAAC;AAChB,QAAA,IAAI,OAAO,CAAC;AACZ,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,UAAU;AACb,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAA;AACjE,gBAAA,IAAI,CAAC,OAAO;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;;AACvD,oBAAA,IAAI,GAAG,CAAA,EAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAI,CAAA,EAAA,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;gBAC3E,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAA;AACjE,gBAAA,IAAI,CAAC,OAAO;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;;AACvD,oBAAA,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAA;gBACvC,MAAM;AACR,YAAA,KAAK,aAAa;AAChB,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,CAAA;AACjE,gBAAA,IAAI,CAAC,OAAO;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAA;;AACvD,oBAAA,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAA;gBACvC,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAClB,MAAM;AACR,YAAA;gBACE,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM;AACT,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;QACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAED,MAAM,GAAA;QACJ,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;KAClB;IAED,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC9E,QAAA,OAAO,IAAI,CAAC;KACb;IAED,iBAAiB,GAAA;QACf,IAAI,GAAG,GAAa,EAAE,CAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAM,KAAI;AACnD,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAAE,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAClE,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1F,QAAA,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;KACxB;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAE,OAAc,EAAE,KAAc,EAAA;AAC9D,QAAA,IAAI,KAAK,EAAE;YACT,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE;AACpC,gBAAA,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;oBACtD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtC,iBAAC,CAAC,CAAA;AACH,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAClC,oBAAA,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;wBACpD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACtC,qBAAC,CAAC,CAAA;AACH,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,aAAa,CAAC,IAAS,EAAE,MAAoE,EAAA;;AAC3F,QAAA,IAAI,KAAK,CAAC;QACV,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9B,QAAQ,MAAM,CAAC,EAAE;AACf,YAAA,KAAK,KAAK;gBACR,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,GAAG,IAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;gBAClH,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,IAAI,KAAK,GAAa,EAAE,CAAA;AACxB,gBAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC,CAAC,GAAU,EAAE,GAAW,KAAI;AAC9C,oBAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;iBACzC,EAAE,EAAE,CAAC,CAAA;AACN,gBAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS;AAAE,oBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS,KAAI,GAAG,CAAC,CAAC,CAAA;gBAClG,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBACpD,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBACnD,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAM,GAAA,EAAA,MAAM,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,CAAA;gBAClK,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAK,EAAA,EAAA,MAAM,CAAC,GAAG,CAAA,CAAE,EAAE,IAAI,CAAC,CAAC;gBACnD,MAAM;AACR,YAAA,KAAK,gBAAgB;AACnB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;gBACrH,MAAM;AACR,YAAA,KAAK,iBAAiB;AACpB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;gBACtH,MAAM;AACR,YAAA,KAAK,gBAAgB;AACnB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;gBACrH,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;gBACpH,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,gBAAgB,CAAC,OAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;KACjC;AAED,IAAA,cAAc,CAAC,OAAY,EAAA;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE;AACjE,YAAA,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS;AACjD,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,IAAI,EAAE;AACJ,gBAAA,SAAS,EAAO,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,QAAQ,CAAE;gBAClC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC,gBAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;AAC5C,aAAA;AACF,SAAA,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AAC7C,YAAA,IAAI,IAAI;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3E,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;AACjG,SAAC,CAAC,CAAA;KACH;AAED,IAAA,OAAO,CAAC,OAAY,EAAE,IAAS,EAAE,KAAa,EAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,EAAE;AACjE,YAAA,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS;AACjD,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,IAAI,EAAE;AACJ,gBAAA,SAAS,EAAO,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,QAAQ,CAAE;gBAClC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvC,IAAI,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,IAAI,CAAE;AAClB,aAAA;AACF,SAAA,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AAC7C,YAAA,IAAI,IAAI;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC/E,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;AAChG,SAAC,CAAC,CAAA;KACH;IAED,SAAS,CAAC,OAAY,EAAE,KAAa,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxE,KAAK,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI;AACzE,YAAA,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;AACd,YAAA,KAAK,EAAE,CAAC;AACV,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;KAC/F;IAED,eAAe,CAAC,KAAa,EAAE,MAAW,EAAA;AACxC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;gBACpB,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,IAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,EAAC;oBACnF,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;AAC3B,iBAAA;AACH,aAAC,CAAC,CAAA;AACH,SAAA;KACF;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,KAAK,CAAC,WAAW,EAAC;AACpB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACvC,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAE,IAAI,CAAC;AACnG,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACtI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAC9C,aAAA;AACF,SAAA;KACF;IACD,eAAe,CAAC,KAAa,EAAE,KAAU,EAAA;AACvC,QAAA,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACpD,QAAA,IAAI,IAAI,CAAC;QACT,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,MAAM;gBACT,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAA,CAAE,CAAC,CAAA;gBAC3B,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,GAAG,CAAC,KAAK,CAAA;gBACb,MAAM;AACR,YAAA;gBACE,IAAI,GAAG,KAAK,CAAA;gBACZ,MAAM;AACT,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;;oHAxUU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAK,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAV,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,6CAFtB,CAAC,cAAc,EAAC,aAAa,CAAC,0BCX3C,+8LAyFA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAU,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAK,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,UAAA,EAAAK,EAAA,CAAA,YAAA,EAAA,MAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA;4FD5Ea,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,WAAW,EAAE,iCAAiC;AAC9C,oBAAA,SAAS,EAAE,CAAC,cAAc,EAAC,aAAa,CAAC;AAC1C,iBAAA,CAAA;;;MENY,aAAa,CAAA;AAIxB,IAAA,WAAA,GAAA;QAFQ,IAAS,CAAA,SAAA,GAAmB,EAAE,CAAC;KAEtB;IAEjB,YAAY,CAAC,KAAa,EAAE,KAAU,EAAA;QACpC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAA;AACrC,QAAA,cAAc,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAA;KACnE;IAED,WAAW,GAAA;QACT,IAAI,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;AACjD,QAAA,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AACrC,QAAA,OAAO,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAA;KAC5C;IAED,aAAa,GAAA;AACX,QAAA,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;KACtC;;2GAnBU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,aAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCeY,iBAAiB,CAAA;IAuB5B,WACU,CAAA,cAA8B,EAC9B,MAAc,EACd,aAA6B,EAC7B,aAA4B,EAC5B,aAA4B,EAAA;QAJ5B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;QAC7B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QA1B7B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QACtB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;QACjB,IAAE,CAAA,EAAA,GAAW,EAAE,CAAC;AAGf,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;AACtD,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;QAExD,IAAQ,CAAA,QAAA,GAAmB,EAAE,CAAC;AAC/B,QAAA,IAAA,CAAA,UAAU,GAAe,IAAI,UAAU,EAAE,CAAC;QAC1C,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAG3B,QAAA,IAAA,CAAA,eAAe,GAAe,IAAI,UAAU,EAAE,CAAC;QAC/C,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAGhC,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QAUrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;KAClD;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;aAChE,IAAI,CAAC,GAAG,IAAG;YACV,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC7C,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AAEtB,YAAA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG,EAAE;AACnB,gBAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;AACtH,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACvD,gBAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;gBACtB,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,aAAa,EAAE,CAAA;AACrB,aAAA;;gBAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACxD,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;AACX,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC,CAAA;KACL;IAEG,aAAa,GAAA;AACb,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAW,EAAE,CAAS,KAAI;;AACpE,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACpB,CAAA,EAAA,GAAA,MAAM,CAAC,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAC,OAAY,EAAE,CAAQ,KAAI;AAClD,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACrD,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;AACzC,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AAEnD,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC9B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;AACzE,aAAA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAChD,aAAA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA;AACjF,aAAA,IAAI,IAAI,CAAC,GAAG,IAAI,GAAG;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;KACtF;AAED,IAAA,eAAe,CAAC,cAA8B,EAAA;AAC5C,QAAA,IAAI,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;AAC/D,QAAA,IAAI,QAAQ,GAAG,CAAA,EAAE,KAAF,IAAA,IAAA,EAAE,KAAF,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAE,CAAE,QAAQ,KAAI,EAAE,CAAC;QAClC,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxD,QAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1E,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAA,EAAE,KAAA,IAAA,IAAF,EAAE,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAF,EAAE,CAAE,MAAM,KAAI,EAAE,EAAE,CAAA,EAAE,KAAF,IAAA,IAAA,EAAE,KAAF,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAE,CAAE,MAAM,KAAI,EAAE,EAAE,QAAQ,CAAC;AAC7E,aAAA,IAAI,CAAC,CAAC,GAAQ,KAAI;AACjB,YAAA,IAAI,GAAG,KAAH,IAAA,IAAA,GAAG,uBAAH,GAAG,CAAE,IAAI,EAAC;AACZ,gBAAA,IAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;;AAC9C,oBAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AAChB,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACxD,aAAA;YACD,IAAI,CAAC,aAAa,EAAE,CAAA;AACpB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;YACtH,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;AACX,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACzB,SAAC,CAAC,CAAA;KACL;IAED,IAAI,GAAA;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KAC7D;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1D;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;QACpB,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvE;AAED,IAAA,QAAQ,CAAC,KAAU,EAAE,KAAa,EAAE,CAAS,EAAE,CAAS,EAAA;AACtD,QAAA,QAAQ,QAAQ,KAAK,CAAC;AACpB,YAAA,KAAK,QAAQ;AACX,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AAAE,oBAAA,KAAK,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;wBACnD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;wBAC1C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;AAC5E,qBAAC,CAAC,CAAA;AACG,qBAAA;oBACH,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1B,oBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;AACpE,iBAAA;gBACD,MAAM;AACR,YAAA;gBACE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAC1B,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnE,MAAM;AACT,SAAA;QACD,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC9D;AAED,IAAA,YAAY,CAAC,OAAc,EAAA;QACzB,MAAM,MAAM,GAAQ,EAAE,CAAC;QACvB,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAAI,CAAC,CAAC;AAC/B,YAAA,KAAK,QAAQ,CAAC;AACd,YAAA,KAAK,MAAM;gBACT,OAAO,CAAA,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,OAAO,IAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AACzE,YAAA,KAAK,SAAS;gBACZ,OAAO,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,OAAO,KAAI,KAAK,CAAC;AACnC,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,EAAE,CAAC;AACZ,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC;AACd,YAAA,KAAK,QAAQ;AACX,gBAAA,MAAM,CAAC,mBAAmB,CAAC,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,IAAG;AAC5D,oBAAA,IAAI,GAAG,GAAG,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAP,OAAO,CAAE,UAAU,CAAC,GAAG,CAAC,CAAA;AAClC,oBAAA,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;AAC/C,iBAAC,CAAC,CAAC;AACH,gBAAA,OAAO,MAAM,CAAC;AAChB,YAAA;AACE,gBAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACF;IAED,MAAM,GAAA;AACJ,QAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAAE,OAAO;QACjC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;AAC5D,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC7C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;QACvD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC3C,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC;AAC9G,aAAA,IAAI,CAAC,CAAC,GAAG,KAAI;YACZ,IAAI,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAA;AACnH,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,UAAU,CAAC,MAAK;;AACd,gBAAA,IAAI,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,0CAAE,QAAQ;AAAE,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,CAAC,CAAA;;oBACrF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACnC,EAAE,IAAI,CAAC,CAAC;AACX,SAAC,CAAC;aACD,KAAK,CAAC,GAAG,IAAG;YACT,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAE,CAAA;YAC/F,IAAI,CAAC,eAAe,CAAC,EAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,oCAAoC,EAAE,OAAO,EAAE,qBAAqB,EAAC,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,aAAa,CAAC,CAAA;AAC3J,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC3B,SAAC,CAAC,CAAA;KACL;AAEC;;;;;AAKC;AACH,IAAA,eAAe,CAAC,UAAyB,EAAE,GAAQ,EAAE,eAAiC,EAAA;AACpF,QAAA,IAAI,eAAe,EAAC;YAChB,IAAI,eAAe,CAAC,OAAO;gBAAE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,CAAA;;YAE/E,IAAI,eAAe,CAAC,QAAQ,EAAC;AAC3B,gBAAA,MAAM,QAAQ,GAAQ,eAAe,CAAC,QAAQ,CAAA;gBAC9C,IAAG;AACD,oBAAA,IAAI,QAAQ,IAAI,QAAO,GAAG,CAAC,IAAI,QAAQ;AAAE,wBAAA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAC9D,oBAAA,IAAI,QAAQ,EAAE;AACZ,wBAAA,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE;AAC/B,4BAAA,UAAU,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,yBAAA;AACF,qBAAA;AACF,iBAAA;gBAAA,OAAM,KAAK,EAAC;AACX,oBAAA,IAAI,QAAQ;AAAE,wBAAA,UAAU,CAAC,MAAM,GAAG,GAAG,CAAA;AACtC,iBAAA;AACF,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,CAAA,eAAe,KAAA,IAAA,IAAf,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAf,eAAe,CAAE,QAAQ,MAAI,eAAe,aAAf,eAAe,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAf,eAAe,CAAE,IAAI,CAAA;YAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AACzI,gBAAA,IAAI,GAAG,CAAC,WAAW,IAAI,eAAe,CAAC,QAAQ;oBAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAA;AAClG,aAAC,CAAC,CAAA;;AACG,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;KACxC;IAED,YAAY,GAAA;QACV,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,IAAI,OAAO;AAAE,YAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACtF,QAAA,OAAO,IAAI,CAAC;KACb;IAED,iBAAiB,GAAA;;QACf,IAAI,GAAG,GAAa,EAAE,CAAA;AACtB,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,WAAW,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,CAAC,IAAG;AACtD,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAAE,gBAAA,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAClE,SAAC,CAAC,CAAA;AACF,QAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,eAAe,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,OAAO,CAAC,CAAC,EAAO,KAAI;YAChE,QAAQ,EAAE,CAAC,MAAM;AACf,gBAAA,KAAK,UAAU;AACb,oBAAA,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9F,oBAAA,IAAI,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBAC9F,IAAI,IAAI,IAAI,IAAI;AAAE,wBAAA,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAA;oBACtC,MAAM;AACR,gBAAA;oBACE,MAAM;AACT,aAAA;AACH,SAAC,CAAC,CAAA;AACF,QAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;YAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACzF,QAAA,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;KACxB;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACxB,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,EAAC;YACzC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,CAAE,CAAC,CAAA;YACjF,KAAK,GAAG,IAAI,CAAA;AACb,SAAA;AACD,QAAA,QAAQ,KAAK;AACX,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,GAAG,CAAG,EAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAI,CAAA,EAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAA;gBAC1E,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAA;gBACpC,MAAM;AACR,YAAA,KAAK,aAAa;gBAChB,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAA;gBACpC,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAClB,MAAM;AACR,YAAA;gBACE,IAAI,GAAG,KAAK,CAAC;gBACb,MAAM;AACT,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;AAEA,IAAA,WAAW,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC;AACT,QAAA,QAAQ,GAAG,CAAC,IAAI,IAAI,SAAS;AAC3B,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;gBAChB,MAAM;AACR,YAAA;AACE,gBAAA,IAAI,GAAG,IAAI,CAAC,OAAO,CAAA;gBACnB,MAAM;AACT,SAAA;AACD,QAAA,IAAI,IAAI,EAAC;AACP,YAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAA;AAC3C,YAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;AAAE,gBAAA,OAAO,SAAS,CAAA;AACrC,YAAA,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC;AAAE,gBAAA,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;;AAC7B,gBAAA,OAAO,GAAG,CAAA;AAChB,SAAA;AACD,QAAA,OAAO,SAAS,CAAA;KACjB;AAED,IAAA,gBAAgB,CAAC,OAAgB,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;KAChC;AAED,IAAA,cAAc,CAAC,OAAY,EAAA;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC/D,YAAA,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS;AACjD,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE;AACJ,gBAAA,SAAS,EAAO,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,QAAQ,CAAE;gBAClC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACvC,gBAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;AAC5C,aAAA;AACF,SAAA,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AAC7C,YAAA,IAAI,IAAI;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5E,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;AAC3G,SAAC,CAAC,CAAA;KACH;AAED,IAAA,OAAO,CAAC,OAAY,EAAE,IAAS,EAAE,KAAa,EAAA;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC/D,YAAA,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,GAAG,SAAS;AACjD,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,IAAI,EAAE;AACJ,gBAAA,SAAS,EAAO,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,OAAO,CAAC,QAAQ,CAAE;gBAClC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;gBACvC,IAAI,EAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAO,IAAI,CAAE;AAClB,aAAA;AACF,SAAA,CAAC,CAAA;QACF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AAC7C,YAAA,IAAI,IAAI;AAAE,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;YAC/E,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;AAC3G,SAAC,CAAC,CAAA;KACH;IAED,SAAS,CAAC,OAAY,EAAE,KAAa,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACxE,KAAK,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAO,KAAI;AACzE,YAAA,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC;AACd,YAAA,KAAK,EAAE,CAAC;AACV,SAAC,CAAC,CAAA;QACF,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAA;KAC1G;AAED,IAAA,kBAAkB,CAAC,KAAa,EAAE,OAAc,EAAE,GAAY,EAAA;AAC5D,QAAA,IAAI,GAAG,EAAE;YACP,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAClC,gBAAA,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAoD,KAAI;oBAC9F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,iBAAC,CAAC,CAAA;AACH,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE;gBACpC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE;AAClC,oBAAA,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAI;wBACpD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACvC,qBAAC,CAAC,CAAA;AACH,iBAAA;AACF,aAAA;AACF,SAAA;KACF;IAED,aAAa,CAAC,IAAS,EAAE,MAAsE,EAAA;;QAC7F,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9B,QAAQ,MAAM,CAAC,EAAE;AACf,YAAA,KAAK,KAAK;AACR,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,GAAG,IAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,CAAA;gBAChJ,MAAM;AACR,YAAA,KAAK,QAAQ;gBACX,IAAI,KAAK,GAAa,EAAE,CAAA;AACxB,gBAAA,CAAA,EAAA,GAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,GAAG,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAM,CAAC,CAAC,GAAU,EAAE,GAAW,KAAI;AAC9C,oBAAA,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;iBACzC,EAAE,EAAE,CAAC,CAAA;AACN,gBAAA,IAAI,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS;AAAE,oBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA,MAAM,KAAN,IAAA,IAAA,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS,KAAI,GAAG,CAAC,CAAC,CAAA;gBAClG,MAAM;AACR,YAAA,KAAK,QAAQ;AACX,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;gBAC/D,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;gBAC9D,MAAM;AACR,YAAA,KAAK,kBAAkB;gBACrB,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA,GAAA,EAAM,MAAM,CAAC,GAAG,CAAE,CAAA,CAAC,CAAC,CAAC,CAAA;gBACxK,MAAM;AACR,YAAA,KAAK,SAAS;AACZ,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAK,EAAA,EAAA,MAAM,CAAC,GAAG,CAAA,CAAE,EAAE,IAAI,CAAC,CAAC;gBACnD,MAAM;AACN,YAAA,KAAK,gBAAgB;AACnB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;gBACrH,MAAM;AACR,YAAA,KAAK,iBAAiB;AACpB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAA;gBACtH,MAAM;AACR,YAAA,KAAK,gBAAgB;AACnB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;gBACrH,MAAM;AACR,YAAA,KAAK,eAAe;AAClB,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;gBACpH,MAAM;AACV,YAAA;gBACE,MAAM;AACT,SAAA;KACF;IAED,WAAW,CAAC,OAAc,EAAE,QAAe,EAAA;AACzC,QAAA,QAAQ,CAAC,OAAO,CAAC,IAAI,IAAG;AACtB,YAAA,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;AACjD,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,qBAAqB,CAAC,KAAU,EAAA;QAC9B,IAAI,KAAK,CAAC,WAAW,EAAC;AACpB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACjD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACvC,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAE,IAAI,CAAC;AACnG,gBAAA,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;gBACtI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;AAC9C,aAAA;AACF,SAAA;KACF;IAGD,eAAe,CAAC,KAAa,EAAE,MAAW,EAAA;AACxC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC7B,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI;gBACpB,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,IAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAC,EAAE,CAAC,EAAC;oBACnF,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAA;AAC3B,iBAAA;AACH,aAAC,CAAC,CAAA;AACH,SAAA;KACF;IAED,eAAe,CAAC,KAAa,EAAE,KAAU,EAAA;AACvC,QAAA,IAAI,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAC/D,QAAA,IAAI,IAAI,CAAC;QACT,QAAQ,OAAO,CAAC,IAAI;AAClB,YAAA,KAAK,MAAM;gBACT,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAA,CAAE,CAAC,CAAA;gBAC3B,MAAM;AACR,YAAA,KAAK,SAAS;gBACZ,IAAI,GAAG,CAAC,KAAK,CAAA;gBACb,MAAM;AACR,YAAA;gBACE,IAAI,GAAG,KAAK,CAAA;gBACZ,MAAM;AACT,SAAA;AACD,QAAA,OAAO,IAAI,CAAA;KACZ;;+GA/bU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAU,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAHjB,CAAC,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBnF,wjNA8FA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,YAAA,EAAA,OAAA,EAAA,YAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAQ,gBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAP,EAAA,CAAA,KAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,eAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,cAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,aAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,UAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,cAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,4BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAO,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAC,GAAA,CAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAAR,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAAN,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,UAAA,EAAAM,EAAA,CAAA,YAAA,EAAA,MAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA;4FD1Ea,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,WAAW,EAAE,2BAA2B;oBACxC,SAAS,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,CAAC;AACjF,oBAAA,eAAe,EAAE,CAAmB,iBAAA,CAAA;AACrC,iBAAA,CAAA;6MAGU,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MEjBI,eAAe,CAAA;AAE1B,IAAA,WAAA,GAAA,GAAiB;IAEjB,QAAQ,GAAA;KACP;;6GALU,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EARhB,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;4FAIU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAV3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,CAAA;;;;AAIT,EAAA,CAAA;AACD,oBAAA,MAAM,EAAE,EACP;AACF,iBAAA,CAAA;;;MC2KY,YAAY,CAAA;;0GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBA5FrB,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB;QAChB,sBAAsB;AACtB,QAAA,wBAAwB,aAGxB,eAAe;QACf,kBAAkB;QAClB,iBAAiB;QACjB,YAAY;QACZ,WAAW;QACX,aAAa;QACb,gBAAgB;QAChB,YAAY;QACZ,cAAc;QACd,UAAU;QACV,cAAc;QACd,mBAAmB;QACnB,cAAc;QACd,UAAU;QACV,WAAW;QACX,iBAAiB;QACjB,mBAAmB;QACnB,kBAAkB;QAClB,iBAAiB;QACjB,YAAY;QACZ,aAAa;QACb,cAAc;QACd,mBAAmB;QACnB,cAAc;QACd,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,gBAAgB;QAChB,aAAa;QACb,eAAe;QACf,iBAAiB;QACjB,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,UAAU;QACV,aAAa;QACb,cAAc;QACd,aAAa;QACb,UAAU;QACV,aAAa;QACb,cAAc;QACd,iBAAiB;QACjB,uBAAuB;QACvB,kBAAkB;QAClB,eAAe;QACf,WAAW;QACX,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,YAAY;QACZ,YAAY;QACZ,iBAAiB;QACjB,eAAe;QACf,kBAAkB;QAClB,aAAa;QACb,cAAc;QACd,eAAe;QACf,YAAY;QACZ,iBAAiB;QACjB,cAAc;QACd,WAAW;QACX,WAAW;QACX,aAAa;QACb,aAAa;QACb,SAAS;QACT,cAAc;QACd,gBAAgB;QAChB,cAAc;QACd,WAAW;QACX,kBAAkB;QAClB,aAAa;QACb,aAAa;AACb,QAAA,UAAU,aAGV,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,gBAAgB,CAAA,EAAA,CAAA,CAAA;AAMP,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EArFd,OAAA,EAAA,CAAA;YACP,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,YAAY;YACZ,WAAW;YACX,aAAa;YACb,gBAAgB;YAChB,YAAY;YACZ,cAAc;YACd,UAAU;YACV,cAAc;YACd,mBAAmB;YACnB,cAAc;YACd,UAAU;YACV,WAAW;YACX,iBAAiB;YACjB,mBAAmB;YACnB,kBAAkB;YAClB,iBAAiB;YACjB,YAAY;YACZ,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,cAAc;YACd,gBAAgB;YAChB,aAAa;YACb,eAAe;YACf,iBAAiB;YACjB,iBAAiB;YACjB,mBAAmB;YACnB,eAAe;YACf,UAAU;YACV,aAAa;YACb,cAAc;YACd,aAAa;YACb,UAAU;YACV,aAAa;YACb,cAAc;YACd,iBAAiB;YACjB,uBAAuB;YACvB,kBAAkB;YAClB,eAAe;YACf,WAAW;YACX,cAAc;YACd,iBAAiB;YACjB,iBAAiB;YACjB,YAAY;YACZ,YAAY;YACZ,iBAAiB;YACjB,eAAe;YACf,kBAAkB;YAClB,aAAa;YACb,cAAc;YACd,eAAe;YACf,YAAY;YACZ,iBAAiB;YACjB,cAAc;YACd,WAAW;YACX,WAAW;YACX,aAAa;YACb,aAAa;YACb,SAAS;YACT,cAAc;YACd,gBAAgB;YAChB,cAAc;YACd,WAAW;YACX,kBAAkB;YAClB,aAAa;YACb,aAAa;YACb,UAAU;AACX,SAAA,CAAA,EAAA,CAAA,CAAA;4FAWU,YAAY,EAAA,UAAA,EAAA,CAAA;kBA9FxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,eAAe;wBACf,gBAAgB;wBAChB,iBAAiB;wBACjB,gBAAgB;wBAChB,sBAAsB;wBACtB,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,kBAAkB;wBAClB,iBAAiB;wBACjB,YAAY;wBACZ,WAAW;wBACX,aAAa;wBACb,gBAAgB;wBAChB,YAAY;wBACZ,cAAc;wBACd,UAAU;wBACV,cAAc;wBACd,mBAAmB;wBACnB,cAAc;wBACd,UAAU;wBACV,WAAW;wBACX,iBAAiB;wBACjB,mBAAmB;wBACnB,kBAAkB;wBAClB,iBAAiB;wBACjB,YAAY;wBACZ,aAAa;wBACb,cAAc;wBACd,mBAAmB;wBACnB,cAAc;wBACd,gBAAgB;wBAChB,WAAW;wBACX,cAAc;wBACd,gBAAgB;wBAChB,aAAa;wBACb,eAAe;wBACf,iBAAiB;wBACjB,iBAAiB;wBACjB,mBAAmB;wBACnB,eAAe;wBACf,UAAU;wBACV,aAAa;wBACb,cAAc;wBACd,aAAa;wBACb,UAAU;wBACV,aAAa;wBACb,cAAc;wBACd,iBAAiB;wBACjB,uBAAuB;wBACvB,kBAAkB;wBAClB,eAAe;wBACf,WAAW;wBACX,cAAc;wBACd,iBAAiB;wBACjB,iBAAiB;wBACjB,YAAY;wBACZ,YAAY;wBACZ,iBAAiB;wBACjB,eAAe;wBACf,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,YAAY;wBACZ,iBAAiB;wBACjB,cAAc;wBACd,WAAW;wBACX,WAAW;wBACX,aAAa;wBACb,aAAa;wBACb,SAAS;wBACT,cAAc;wBACd,gBAAgB;wBAChB,cAAc;wBACd,WAAW;wBACX,kBAAkB;wBAClB,aAAa;wBACb,aAAa;wBACb,UAAU;AACX,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,eAAe;wBACf,gBAAgB;wBAChB,iBAAiB;wBACjB,gBAAgB;AACjB,qBAAA;AACD,oBAAA,eAAe,EAAE;wBACf,sBAAsB;AACvB,qBAAA;AACF,iBAAA,CAAA;;;ACrLD;;AAEG;;ACFH;;AAEG;;;;"}
|