@seniorsistemas/tmsx-angular-components 1.0.3 → 1.0.4-develop-3f93f121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-tmsx-angular-components.js","sources":["ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/processamento.ts","ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/painel-processamento.component.ts","ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/painel-processamento.module.ts","ng://@seniorsistemas/tmsx-angular-components/utils/services/utils.service.ts","ng://@seniorsistemas/tmsx-angular-components/components/grid-editable-nested/grid-editable-nested.component.ts","ng://@seniorsistemas/tmsx-angular-components/components/grid-editable-nested/grid-editable-nested.module.ts","ng://@seniorsistemas/tmsx-angular-components/tmsx-angular-components.module.ts","ng://@seniorsistemas/tmsx-angular-components/locale/fallback.ts","ng://@seniorsistemas/tmsx-angular-components/seniorsistemas-tmsx-angular-components.ts"],"sourcesContent":["import { Observable } from \"rxjs\";\n\nexport interface ProcessamentoInput {\n quantidadeChamadasSimultaneas: number;\n registros: ProcessamentoRegistro[];\n titulo: string;\n}\n\nexport interface ProcessamentoRegistro {\n descricao: string;\n apiEnvio: (data: object) => Observable<any>;\n objEnvio: any;\n}\n\nexport interface ProcessamentoGrid {\n registro: any;\n label: string;\n status: EnumProcessamentoStatus;\n message?: string;\n}\n\nexport enum EnumProcessamentoStatus {\n SUCCESS = \"SUCCESS\",\n FAILED = \"FAILED\",\n PENDING = \"PENDING\",\n PROCESSING = \"PROCESSING\"\n}\n\nexport const EnumProcessamentoStatusTranslationMap: Record<EnumProcessamentoStatus, string> = {\n [EnumProcessamentoStatus.SUCCESS]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_success',\n [EnumProcessamentoStatus.FAILED]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed',\n [EnumProcessamentoStatus.PENDING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending',\n [EnumProcessamentoStatus.PROCESSING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing'\n};\n\n","import { TranslateService } from '@ngx-translate/core';\nimport { Component, Injectable, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { EnumProcessamentoStatus, EnumProcessamentoStatusTranslationMap, ProcessamentoGrid, ProcessamentoInput } from './processamento';\nimport { Column, EnumColumnFieldType } from '@seniorsistemas/angular-components';\n\n@Injectable({\n providedIn: 'root'\n})\n@Component({\n selector: 'tmsx-painel-processamento',\n templateUrl: './painel-processamento.component.html',\n styleUrls: ['./painel-processamento.component.scss']\n})\nexport class PainelProcessamentoComponent implements OnInit {\n\n @Input() params: ProcessamentoInput;\n @Output() processado = new EventEmitter();\n @Output() concluido = new EventEmitter();\n\n public gridData: ProcessamentoGrid[];\n public gridColumns: Column[];\n\n public totalRecords = 0;\n public successCount = 0;\n public failedCount = 0;\n public pendingCount = 0;\n public successProgress = '0%';\n public failedProgress = '0%';\n public pendingProgress = '100%';\n public processingProgress = '0%';\n public sortField = 'status';\n public sortOrder = 1;\n\n constructor(\n private readonly translate: TranslateService\n ) { }\n\n ngOnInit() {\n this.initPanel();\n }\n\n initPanel() {\n this.gridColumns = this.getGridColumn();\n this.initGrid();\n this.initProgressBar();\n }\n\n initProgressBar() {\n this.successProgress = '0%';\n this.failedProgress = '0%';\n this.pendingProgress = '100%';\n this.processingProgress = '0%';\n this.totalRecords = this.params.registros.length;\n this.pendingCount = this.totalRecords;\n\n if (this.params.quantidadeChamadasSimultaneas > 1) {\n this.processAllRecordsWithPLimit();\n } else {\n this.syncProcessRecord(0);\n }\n }\n\n initGrid() {\n this.gridData = [];\n this.gridData = this.params.registros.map(registro => ({\n registro,\n status: EnumProcessamentoStatus.PENDING,\n label: registro.descricao\n }));\n }\n\n private updateRowSuccess(row: any, index: number): void {\n this.successCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.SUCCESS);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private updateRowError(row: any, index: number, message: string): void {\n this.failedCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.FAILED, message);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private syncProcessRecord(index: number): void {\n if (this.pendingCount < 1) {\n this.concluido.emit('ok');\n return;\n }\n this.updateRowStatus(this.gridData[index], EnumProcessamentoStatus.PROCESSING);\n const record = this.params.registros[index];\n const row = this.gridData.find(item => item.registro === record);\n\n if (record.apiEnvio) {\n record.apiEnvio(record.objEnvio)\n .subscribe(\n () => {\n this.updateRowSuccess(row, index);\n this.syncProcessRecord(index + 1);\n },\n (error: any) => {\n this.updateRowError(row, index, error.message);\n this.syncProcessRecord(index + 1);\n }\n );\n } else {\n this.failedCount = this.pendingCount;\n this.pendingCount = 0;\n this.updateRowStatus(row,\n EnumProcessamentoStatus.FAILED,\n this.translate.instant('tmsx_fnd.tmsx_angular_components.painel_processamento_api_error')\n );\n this.updateProgressBar();\n this.concluido.emit('erro');\n }\n }\n\n async processAllRecordsWithPLimit() {\n const pLimit = require('p-limit');\n const limit = pLimit(this.params.quantidadeChamadasSimultaneas);\n const promises = this.params.registros.map((record, index) => {\n return limit(async () => {\n const row = this.gridData.find(item => item.registro === record);\n this.updateRowStatus(row, EnumProcessamentoStatus.PROCESSING);\n try {\n const result = await record.apiEnvio(record.objEnvio).toPromise();\n this.updateRowSuccess(row, index);\n return { success: true, record, result };\n } catch (error) {\n this.updateRowError(row, index, error.message);\n return { success: false, record, error };\n }\n });\n });\n const results = await Promise.all(promises);\n this.concluido.emit(results);\n return results;\n }\n\n private updateProgressBar(): void {\n const successWidth = (this.successCount / this.totalRecords) * 100;\n const failedWidth = (this.failedCount / this.totalRecords) * 100;\n const pendingWidth = (this.pendingCount / this.totalRecords) * 100;\n this.processingProgress = `${(successWidth + failedWidth)}%`;\n\n this.successProgress = `${successWidth}%`;\n this.failedProgress = `${failedWidth}%`;\n this.pendingProgress = `${pendingWidth}%`;\n }\n\n public updateRowStatus(row: any, status: EnumProcessamentoStatus, message?: string) {\n row.status = status;\n if (message) {\n row.message = message;\n }\n this.sortGridData();\n }\n\n private sortGridData() {\n this.gridData.sort((a: any, b: any) => {\n const statusOrder = {\n [EnumProcessamentoStatus.FAILED]: 1,\n [EnumProcessamentoStatus.PROCESSING]: 2,\n [EnumProcessamentoStatus.SUCCESS]: 3,\n [EnumProcessamentoStatus.PENDING]: 4\n };\n if (this.sortField === 'status') {\n return (statusOrder[a.status as EnumProcessamentoStatus] - statusOrder[b.status as EnumProcessamentoStatus]) * this.sortOrder;\n } else {\n const valA = a[this.sortField] || '';\n const valB = b[this.sortField] || '';\n return valA.localeCompare(valB) * this.sortOrder;\n }\n });\n }\n\n public getData(rowData: any, field: string) {\n if (field === 'status') {\n let text = this.translate.instant(EnumProcessamentoStatusTranslationMap[rowData.status as EnumProcessamentoStatus]);\n if (rowData.message) {\n text += `: ${rowData.message}`;\n }\n return text;\n }\n return rowData[field];\n }\n\n public getClassStatus(rowData: any, field: string) {\n if (field !== 'status') {\n return '';\n }\n return `status ${rowData[field].toLowerCase()}`;\n }\n\n public getGridColumn(): Column[] {\n return [\n {\n field: 'label',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.registro'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n {\n field: 'status',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.status'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n ];\n }\n}\n","\n\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LocaleModule, TooltipModule, TableModule } from '@seniorsistemas/angular-components';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PainelProcessamentoComponent } from './painel-processamento.component';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\nimport { CommonModule } from '@angular/common';\nimport { PanelModule } from 'primeng/panel';\n\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n TooltipModule,\n PrimeTableModule,\n TableModule,\n ButtonModule,\n CommonModule,\n PanelModule,\n\n ],\n declarations: [\n PainelProcessamentoComponent\n ],\n providers: [],\n exports: [\n PainelProcessamentoComponent\n ],\n})\nexport class PainelProcessamentoModule {}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FieldType, FormField, LocalizedDatePipe, Option } from '@seniorsistemas/angular-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(\n private readonly translate: TranslateService,\n private readonly dataPipe: LocalizedDatePipe\n ) { }\n\n public getAuditCreatedBy(createdBy: string, createdDate: Date): string {\n if (!createdBy || !createdDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(createdDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_created_by', {nome: createdBy, data: date[0], hora: date[1]});\n }\n\n public getAuditModifiedBy(modifiedBy: string, modifiedDate: Date): string {\n if (!modifiedBy || !modifiedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(modifiedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_modified_by', {nome: modifiedBy, data: date[0], hora: date[1]});\n }\n\n public getAuditInactivatedBy(inactivatedBy: string, inactivatedDate: Date): string {\n if (!inactivatedBy || !inactivatedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(inactivatedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_inactivated_by', {nome: inactivatedBy, data: date[0], hora: date[1]});\n }\n\n /* usage: [innerHTML]=\"getProp(rowData, 'nome')\" */\n public getProp(obj: any, path: any, type?: string): string {\n let value = path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n if (value || value === 0) {\n if (type) {\n value = this.formatType(value, type);\n }\n return `<span>${value}</span>`;\n }\n return `<span class=\"empty-grid\">${this.translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_empty_field')}</span>`;\n }\n\n public formatType(value: any, type: string): string {\n if (value) {\n if (type === 'date') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item.split(' '));\n return date[0];\n }\n if (type === 'datetime') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item);\n return date;\n }\n if (type === 'decimal') {\n if (typeof value === 'string') {\n value = Number(value);\n }\n return value.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n }\n if (type === 'currency') {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n if (type === 'cep') {\n return value.replace(/^(\\d{2})(\\d{3})(\\d{3})/, '$1.$2-$3');\n }\n }\n return value;\n }\n\n /* usage: [ngClass]=\"emptyGridClass(value)\" */\n public emptyGridClass(value: string): string {\n if (!value || value === this.translate.instant('tmsx_fnd.replicacao.list_grid_empty_field')) {\n return 'empty-grid';\n }\n return '';\n }\n\n public infoContent(entity?: any) {\n let text = '';\n if (!entity) {\n return this.translate.instant(\"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\");\n }\n text += this.getAuditCreatedBy(entity.createdBy, entity.createdDate);\n if (text) {\n text += '\\n';\n }\n text += this.getAuditModifiedBy(entity.lastModifiedBy, entity.lastModifiedDate);\n return text;\n }\n\n public formatCurrency(value: number): string {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n\n public getAtivoTokenLabel(formField: FormField, value: any, translate: TranslateService) {\n const { name, type, label } = formField as any;\n if (type === FieldType.Radio) {\n const labelValue = value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_false');\n return { id: name, label: `${label}: ${labelValue}` };\n }\n return this.createFilterTokens(formField, value, translate);\n }\n\n public getUtilsProp(obj: any, path: any) {\n return path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public createFilterTokens(formField: FormField, value: any, translate: TranslateService) {\n const { name, type, label, searchFields, options } = formField as any;\n const labelValue = this.getLabelValueByType(type, value, searchFields, options, translate);\n return { id: name, label: `${label}: ${labelValue}` };\n }\n\n private getLabelValueByType(\n type: FieldType,\n value: any,\n searchFields: FormField[],\n options: Option[],\n translate: TranslateService\n ): string {\n switch (type) {\n case FieldType.Date:\n return this.getDateLabel(value);\n case FieldType.Time:\n return this.getTimeFromDate(value);\n case FieldType.LocalDateTime:\n case FieldType.DateTime:\n return this.getDateTimeFromDate(value);\n case FieldType.Lookup:\n return this.getLookupLabel(value, searchFields);\n case FieldType.Enum:\n return this.getEnumLabel(value, options);\n case FieldType.Boolean:\n return this.getBooleanLabel(value, translate);\n default:\n return value;\n }\n }\n\n private getDateLabel(value: any): string {\n const dateObj = value instanceof Date ? value : new Date(value);\n return !isNaN(dateObj.getTime()) ? dateObj.toLocaleDateString('pt-BR') : value;\n }\n\n private getLookupLabel(value: any, searchFields: FormField[]): string {\n return searchFields.map((field: FormField) => this.getUtilsProp(value, field.name)).join(' - ');\n }\n\n private getEnumLabel(value: any, options: Option[]): string {\n const option = options.find((opt: Option) => opt.value === value);\n return option ? option.label : value;\n }\n\n private getBooleanLabel(value: any, translate: TranslateService): string {\n return value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_false');\n }\n\n public getTimeFromDate(value: any) {\n let dateObj: Date;\n if (typeof value === 'string' && /^\\d{2}:\\d{2}(:\\d{2})?$/.test(value)) {\n const [h, m, s = '00'] = value.split(':');\n dateObj = new Date();\n dateObj.setHours(+h, +m, +s, 0);\n } else {\n dateObj = value instanceof Date ? value : new Date(value);\n }\n if (!isNaN(dateObj.getTime())) {\n return dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n }\n return value;\n }\n\n public getDateTimeFromDate(value: any) {\n const dateObj = value instanceof Date ? value : new Date(value);\n if (!isNaN(dateObj.getTime())) {\n const datePart = dateObj.toLocaleDateString('pt-BR'); // DD/MM/AAAA\n const timePart = dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n return `${datePart} ${timePart}`;\n }\n return value;\n }\n}\n","import { ChangeDetectorRef, Component, Injectable, Input, OnDestroy,\n OnInit, Output, ViewChild, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { LazyLoadEvent, MenuItem, SortMeta } from 'primeng/api';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { GridConfig, FrozenColumn } from './grid.interface';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { HotkeysService, Hotkey } from 'angular2-hotkeys';\nimport { UtilsService } from '../../utils/services/utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\n@Component({\n selector: 'tmsx-grid-editable-nested',\n templateUrl: './grid-editable-nested.component.html',\n styleUrls: ['./grid-editable-nested.component.scss']\n})\nexport class GridEditableNestedComponent implements OnDestroy, OnInit, OnChanges {\n @Input() public config!: GridConfig;\n @Input() nestedFunction!: (listParams: ListParams, rowData: any) => Promise<void>;\n @Output() openDetails = new EventEmitter<any>();\n @Output() paging = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() save = new EventEmitter<any>();\n @Output() add = new EventEmitter<any>();\n\n @ViewChild(\"table\", { static: false }) public table!: Table;\n public clonedData: { [s: string]: any } = {};\n public gridLoading = true;\n public editing = false;\n public lazy = true;\n public deleteEnabled = false;\n public editEnabled = false;\n public addEnabled = false;\n public detailsEnabled = false;\n public calendarTooltipText = '';\n public currentListParams: ListParams = { page: 0, size: 5, sort: [] };\n\n public gridData: any[] = [];\n public gridColumns: any[] = [];\n public gridTotalRecords = 0;\n public selected: any[] = [];\n\n public nestedGridLoading = false;\n public frozenPosition = 'left';\n public frozenWidth = '200px';\n public frozenColumns: FrozenColumn[] = [];\n\n private readonly ngUnsubscribe = new Subject();\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly translate: TranslateService,\n private readonly utils: UtilsService,\n private readonly hotkeysService: HotkeysService,\n ) {\n this.calendarTooltipText = this.translate.instant('tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required');\n }\n\n ngOnInit(): void {\n this.setGridData();\n this.setHotkeys();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.config) {\n this.setGridData();\n }\n }\n\n public formatData(column: any, value: string) {\n return value;\n }\n\n private setGridData() {\n if (!this.config) {\n return;\n }\n const { data, size, columns, frozenPosition, frozenColumns, editing, lazy,\n deleteActionsEnabled, editEnabled, addEnabled, editActionsEnabled } = this.config;\n\n this.gridData = data ?? [];\n this.gridTotalRecords = size ?? 0;\n this.gridColumns = columns ?? [];\n this.frozenPosition = frozenPosition ?? 'left';\n this.frozenColumns = frozenColumns ?? [];\n this.frozenWidth = this.calculateFrozenWidth(this.frozenColumns);\n\n this.editing = !!editing;\n this.lazy = !!lazy;\n this.deleteEnabled = !!deleteActionsEnabled;\n this.editEnabled = !!editEnabled;\n this.addEnabled = !!addEnabled;\n this.detailsEnabled = !!editActionsEnabled;\n\n this.changeDetectorRef.detectChanges();\n this.nestedGridLoading = false;\n this.gridLoading = false;\n }\n\n private calculateFrozenWidth(frozenColumns: FrozenColumn[]): string {\n const gutter = 120;\n if (!(frozenColumns?.length)) {\n return '120px';\n }\n const totalWidth = frozenColumns.reduce((sum, col) => sum + gutter + (parseInt(col.width, 10) || 0), 0);\n return `${totalWidth}px`;\n }\n\n\n public getActions(data: any): MenuItem[] {\n return [\n {\n id: 'edit',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.edit'),\n disabled: !this.detailsEnabled,\n command: () => {\n this.openRowDetails(data.id);\n },\n },\n { separator: true },\n {\n id: 'delete',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.delete'),\n disabled: !this.deleteEnabled,\n command: () => {\n this.onDelete(data.id);\n },\n },\n ];\n }\n\n public updateGridData(event: LazyLoadEvent) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n this.gridLoading = true;\n\n if (this.clonedData && Object.keys(this.clonedData).length) {\n this.clonedData = {};\n this.table.editingRowKeys = {};\n }\n\n this.paging.emit({ page, size });\n }\n\n public async updateNestedGridData(event: LazyLoadEvent, rowData: any) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n const sort = event.multiSortMeta || [];\n\n rowData.nestedGridLoading = true;\n await this.nestedFunction({ page, size, sort }, rowData);\n }\n\n onTab(event: KeyboardEvent) {\n if (event.key !== 'Tab') {\n return;\n }\n\n event.preventDefault();\n\n const focusables = Array.from(\n document.querySelectorAll<HTMLElement>(\n 'p-cellEditor input, p-cellEditor textarea, p-cellEditor [tabindex=\"0\"]'\n )\n ).filter(el => el.offsetParent !== null);\n\n const currentIndex = focusables.indexOf(event.target as HTMLElement);\n\n let next: HTMLElement | undefined;\n\n if (event.shiftKey) {\n next = focusables[currentIndex - 1] || focusables[focusables.length - 1];\n } else {\n next = focusables[currentIndex + 1] || focusables[0];\n }\n\n if (next) {\n next.focus();\n }\n }\n\n\n public getRowIndex() {\n const page = this.currentListParams.page || 0;\n const size = this.currentListParams.size || 0;\n return page * size;\n }\n\n public getPageSize() {\n return this.currentListParams.size ?? 0;\n }\n\n public openRowDetails(id: string) {\n this.openDetails.emit(id);\n }\n\n public onDelete(id: string) {\n this.delete.emit(id);\n }\n\n public onAdd() {\n this.add.emit();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onEditSave() {\n this.saveAllRows();\n }\n\n public onEditCancel() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n const index = this.gridData.findIndex((row) => row.id === data.id);\n this.gridData[index] = this.clonedData[data.id];\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n }\n\n public initAllRowsEdit() {\n this.gridData.forEach((data) => {\n this.editing = true;\n this.table.initRowEdit(data);\n this.clonedData[data.id] = { ...data };\n });\n }\n\n public saveAllRows() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n this.save.emit(this.gridData);\n }\n\n public formatRowData(field: any) {\n return field;\n }\n\n public filterOptions(event: any) {\n return event;\n }\n\n public getSpanProp(obj: any, path: any, type?: string): string {\n type = type?.toLowerCase();\n const value = this.utils.getProp(obj, path, type);\n if (value === '<span>0</span>' && type === 'decimal') {\n return '<span>0,00</span>';\n }\n if (!obj.tiposDados) {\n return value;\n }\n if ('MONETARIO' === obj.tiposDados[path]) {\n return 'R$ ' + value;\n }\n if ('PERCENTUAL' === obj.tiposDados[path]) {\n return value + ' %';\n }\n return value;\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n 'alt+shift+n',\n () => {\n this.onAdd();\n return false;\n },\n ['INPUT', 'SELECT', 'TEXTAREA']\n )\n );\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","import { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GridEditableNestedComponent } from './grid-editable-nested.component';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\n\nimport {\n ButtonModule,\n LoadingStateModule,\n LocaleModule,\n NumberInputModule,\n TableModule,\n TooltipModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n} from '@seniorsistemas/angular-components';\n\nimport { ToastModule } from 'primeng/toast';\nimport { PanelModule } from 'primeng/panel';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { SharedModule } from 'primeng/api';\nimport { TooltipModule as PrimeTooltipModule } from 'primeng/tooltip';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n ButtonModule,\n TableModule,\n TooltipModule,\n LoadingStateModule,\n NumberInputModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n\n // PrimeNG modules\n ToastModule,\n PrimeTableModule,\n PrimeTooltipModule,\n PanelModule,\n InputTextModule,\n ConfirmDialogModule,\n CalendarModule,\n DropdownModule,\n SharedModule,\n AutoCompleteModule,\n CheckboxModule,\n\n // Angular modules\n FormsModule,\n ReactiveFormsModule\n ],\n declarations: [\n GridEditableNestedComponent,\n ],\n providers: [],\n exports: [\n GridEditableNestedComponent,\n ],\n})\nexport class GridEditableNestedModule {}\n","import {\n ModuleWithProviders,\n NgModule,\n InjectionToken\n} from \"@angular/core\";\n\nexport const HostProjectConfigsInjectionToken = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class TmsxAngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<TmsxAngularComponentsModule> {\n return {\n ngModule: TmsxAngularComponentsModule,\n providers: [\n {\n provide: HostProjectConfigsInjectionToken,\n useValue: config\n }\n ]\n };\n }\n}\n","export const fallback: any = {\n \"tmsx_fnd.tmsx_angular_components.add\": \"Adicionar\",\n \"tmsx_fnd.tmsx_angular_components.audit_created_by\": \"Criado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_modified_by\": \"Modificado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_inactivated_by\": \"Inativado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\": \"Sem informações de auditoria\",\n \"tmsx_fnd.tmsx_angular_components.delete\": \"Excluir\",\n \"tmsx_fnd.tmsx_angular_components.edit\": \"Editar\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_description\": \"Você não tem permissão para acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_title\": \"Acesso Negado\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_description\": \"O recurso solicitado não foi encontrado.\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_title\": \"Não Encontrado\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_description\": \"Você não está autorizado a acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_title\": \"Não Autorizado\",\n \"tmsx_fnd.tmsx_angular_components.grid_aninhada\": \"Grid Aninhada\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required\": \"É necessário informar a data\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar\": \"Cancelar\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar\": \"Editar valores\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging\": \"registros encontrados\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar\": \"Salvar alterações\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_false\": \"Não\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_true\": \"Sim\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_empty_field\": \"Não informado\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento\": \"Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_api_error\": \"API de envio não definida\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed\": \"Ocorreu um erro\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending\": \"Pendente\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing\": \"Processando\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_success\": \"Finalizado com sucesso\",\n \"tmsx_fnd.tmsx_angular_components.registro\": \"Registro\",\n \"tmsx_fnd.tmsx_angular_components.showcase_painel_processamento_title\": \"Demonstração do Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.showcase_table_title\": \"Demonstração da Tabela\",\n \"tmsx_fnd.tmsx_angular_components.showcase_title\": \"Showcase\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_false\": \"Inativo\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_true\": \"Ativo\",\n \"tmsx_fnd.tmsx_angular_components.status\": \"Situação\",\n \"tmsx_fnd.tmsx_angular_components.total_records\": \"{{ value }} registros encontrados\"\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["pLimit","require$$0","PrimeTableModule","TableModule","PrimeTooltipModule"],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-tmsx-angular-components.js","sources":["ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/processamento.ts","ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/painel-processamento.component.ts","ng://@seniorsistemas/tmsx-angular-components/components/painel-processamento/painel-processamento.module.ts","ng://@seniorsistemas/tmsx-angular-components/utils/services/utils.service.ts","ng://@seniorsistemas/tmsx-angular-components/components/grid-editable-nested/grid-editable-nested.component.ts","ng://@seniorsistemas/tmsx-angular-components/components/grid-editable-nested/grid-editable-nested.module.ts","ng://@seniorsistemas/tmsx-angular-components/tmsx-angular-components.module.ts","ng://@seniorsistemas/tmsx-angular-components/locale/fallback.ts","ng://@seniorsistemas/tmsx-angular-components/seniorsistemas-tmsx-angular-components.ts"],"sourcesContent":["import { Observable } from \"rxjs\";\n\nexport interface ProcessamentoInput {\n quantidadeChamadasSimultaneas: number;\n registros: ProcessamentoRegistro[];\n titulo: string;\n}\n\nexport interface ProcessamentoRegistro {\n descricao: string;\n apiEnvio: (data: object) => Observable<any>;\n objEnvio: any;\n}\n\nexport interface ProcessamentoGrid {\n registro: any;\n label: string;\n status: EnumProcessamentoStatus;\n message?: string;\n}\n\nexport enum EnumProcessamentoStatus {\n SUCCESS = \"SUCCESS\",\n FAILED = \"FAILED\",\n PENDING = \"PENDING\",\n PROCESSING = \"PROCESSING\"\n}\n\nexport const EnumProcessamentoStatusTranslationMap: Record<EnumProcessamentoStatus, string> = {\n [EnumProcessamentoStatus.SUCCESS]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_success',\n [EnumProcessamentoStatus.FAILED]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed',\n [EnumProcessamentoStatus.PENDING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending',\n [EnumProcessamentoStatus.PROCESSING]: 'tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing'\n};\n\n","import { TranslateService } from '@ngx-translate/core';\nimport { Component, Injectable, Input, OnInit, Output, EventEmitter } from '@angular/core';\nimport { EnumProcessamentoStatus, EnumProcessamentoStatusTranslationMap, ProcessamentoGrid, ProcessamentoInput } from './processamento';\nimport { Column, EnumColumnFieldType } from '@seniorsistemas/angular-components';\n\n@Injectable({\n providedIn: 'root'\n})\n@Component({\n selector: 'tmsx-painel-processamento',\n templateUrl: './painel-processamento.component.html',\n styleUrls: ['./painel-processamento.component.scss']\n})\nexport class PainelProcessamentoComponent implements OnInit {\n\n private static readonly GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';\n\n @Input() params: ProcessamentoInput;\n @Output() processado = new EventEmitter();\n @Output() concluido = new EventEmitter();\n\n public gridData: ProcessamentoGrid[];\n public gridColumns: Column[];\n\n public totalRecords = 0;\n public successCount = 0;\n public failedCount = 0;\n public pendingCount = 0;\n public successProgress = '0%';\n public failedProgress = '0%';\n public pendingProgress = '100%';\n public processingProgress = '0%';\n public sortField = 'status';\n public sortOrder = 1;\n\n constructor(\n private readonly translate: TranslateService\n ) { }\n\n ngOnInit() {\n this.initPanel();\n }\n\n initPanel() {\n this.gridColumns = this.getGridColumn();\n this.initGrid();\n this.initProgressBar();\n }\n\n initProgressBar() {\n this.successProgress = '0%';\n this.failedProgress = '0%';\n this.pendingProgress = '100%';\n this.processingProgress = '0%';\n this.totalRecords = this.params.registros.length;\n this.pendingCount = this.totalRecords;\n\n if (this.params.quantidadeChamadasSimultaneas > 1) {\n this.processAllRecordsWithPLimit();\n } else {\n this.syncProcessRecord(0);\n }\n }\n\n initGrid() {\n this.gridData = [];\n this.gridData = this.params.registros.map(registro => ({\n registro,\n status: EnumProcessamentoStatus.PENDING,\n label: registro.descricao\n }));\n }\n\n private getErrorMessage(error: any): string {\n try {\n if (!error) {\n return this.genericErrorMsg;\n }\n if (error?.error?.message) {\n return String(error.error.message);\n }\n if (error?.message?.message) {\n return String(error.message.message);\n }\n return this.genericErrorMsg;\n } catch {\n return this.genericErrorMsg;\n }\n }\n\n private get genericErrorMsg(): string {\n return this.translate.instant(PainelProcessamentoComponent.GENERIC_ERR_KEY);\n }\n\n private updateRowSuccess(row: any, index: number): void {\n this.successCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.SUCCESS);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private updateRowError(row: any, index: number, message: string): void {\n this.failedCount++;\n this.pendingCount--;\n this.updateRowStatus(row, EnumProcessamentoStatus.FAILED, message);\n this.processado.emit(row);\n this.updateProgressBar();\n }\n\n private syncProcessRecord(index: number): void {\n if (this.pendingCount < 1) {\n this.concluido.emit('ok');\n return;\n }\n this.updateRowStatus(this.gridData[index], EnumProcessamentoStatus.PROCESSING);\n const record = this.params.registros[index];\n const row = this.gridData.find(item => item.registro === record);\n\n if (record.apiEnvio) {\n record.apiEnvio(record.objEnvio)\n .subscribe(\n () => {\n this.updateRowSuccess(row, index);\n this.syncProcessRecord(index + 1);\n },\n (error: any) => {\n this.updateRowError(row, index, this.getErrorMessage(error));\n this.syncProcessRecord(index + 1);\n }\n );\n } else {\n this.failedCount = this.pendingCount;\n this.pendingCount = 0;\n this.updateRowStatus(row,\n EnumProcessamentoStatus.FAILED,\n this.translate.instant('tmsx_fnd.tmsx_angular_components.painel_processamento_api_error')\n );\n this.updateProgressBar();\n this.concluido.emit('erro');\n }\n }\n\n async processAllRecordsWithPLimit() {\n const pLimit = require('p-limit');\n const limit = pLimit(this.params.quantidadeChamadasSimultaneas);\n const promises = this.params.registros.map((record, index) => {\n return limit(async () => {\n const row = this.gridData.find(item => item.registro === record);\n this.updateRowStatus(row, EnumProcessamentoStatus.PROCESSING);\n try {\n const result = await record.apiEnvio(record.objEnvio).toPromise();\n this.updateRowSuccess(row, index);\n return { success: true, record, result };\n } catch (error) {\n this.updateRowError(row, index, this.getErrorMessage(error));\n return { success: false, record, error };\n }\n });\n });\n const results = await Promise.all(promises);\n this.concluido.emit(results);\n return results;\n }\n\n private updateProgressBar(): void {\n const successWidth = (this.successCount / this.totalRecords) * 100;\n const failedWidth = (this.failedCount / this.totalRecords) * 100;\n const pendingWidth = (this.pendingCount / this.totalRecords) * 100;\n const processedWidth = successWidth + failedWidth;\n\n this.processingProgress = `${processedWidth.toFixed(0)}%`;\n this.successProgress = `${successWidth.toFixed(0)}%`;\n this.failedProgress = `${failedWidth.toFixed(0)}%`;\n this.pendingProgress = `${pendingWidth.toFixed(0)}%`;\n }\n\n public updateRowStatus(row: any, status: EnumProcessamentoStatus, message?: string) {\n row.status = status;\n if (message) {\n row.message = message;\n }\n this.sortGridData();\n }\n\n private sortGridData() {\n this.gridData.sort((a: any, b: any) => {\n const statusOrder = {\n [EnumProcessamentoStatus.FAILED]: 1,\n [EnumProcessamentoStatus.PROCESSING]: 2,\n [EnumProcessamentoStatus.SUCCESS]: 3,\n [EnumProcessamentoStatus.PENDING]: 4\n };\n if (this.sortField === 'status') {\n return (statusOrder[a.status as EnumProcessamentoStatus] - statusOrder[b.status as EnumProcessamentoStatus]) * this.sortOrder;\n } else {\n const valA = a[this.sortField] || '';\n const valB = b[this.sortField] || '';\n return valA.localeCompare(valB) * this.sortOrder;\n }\n });\n }\n\n public getData(rowData: any, field: string) {\n if (field === 'status') {\n let text = this.translate.instant(EnumProcessamentoStatusTranslationMap[rowData.status as EnumProcessamentoStatus]);\n if (rowData.message) {\n text += `: ${rowData.message}`;\n }\n return text;\n }\n return rowData[field];\n }\n\n public getClassStatus(rowData: any, field: string) {\n if (field !== 'status') {\n return '';\n }\n return `status ${rowData[field].toLowerCase()}`;\n }\n\n public getGridColumn(): Column[] {\n return [\n {\n field: 'label',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.registro'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n {\n field: 'status',\n header: this.translate.instant('tmsx_fnd.tmsx_angular_components.status'),\n style: { width: '50%' },\n attributes: [],\n type: EnumColumnFieldType.STRING\n },\n ];\n }\n}\n","\n\nimport { NgModule } from '@angular/core';\nimport { ButtonModule, LocaleModule, TooltipModule, TableModule } from '@seniorsistemas/angular-components';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PainelProcessamentoComponent } from './painel-processamento.component';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\nimport { CommonModule } from '@angular/common';\nimport { PanelModule } from 'primeng/panel';\n\n\n@NgModule({\n imports: [\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n TooltipModule,\n PrimeTableModule,\n TableModule,\n ButtonModule,\n CommonModule,\n PanelModule,\n\n ],\n declarations: [\n PainelProcessamentoComponent\n ],\n providers: [],\n exports: [\n PainelProcessamentoComponent\n ],\n})\nexport class PainelProcessamentoModule {}\n","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { FieldType, FormField, LocalizedDatePipe, Option } from '@seniorsistemas/angular-components';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UtilsService {\n\n constructor(\n private readonly translate: TranslateService,\n private readonly dataPipe: LocalizedDatePipe\n ) { }\n\n public getAuditCreatedBy(createdBy: string, createdDate: Date): string {\n if (!createdBy || !createdDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(createdDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_created_by', {nome: createdBy, data: date[0], hora: date[1]});\n }\n\n public getAuditModifiedBy(modifiedBy: string, modifiedDate: Date): string {\n if (!modifiedBy || !modifiedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(modifiedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_modified_by', {nome: modifiedBy, data: date[0], hora: date[1]});\n }\n\n public getAuditInactivatedBy(inactivatedBy: string, inactivatedDate: Date): string {\n if (!inactivatedBy || !inactivatedDate) {\n return '';\n }\n let date = '';\n this.dataPipe.transform(inactivatedDate).subscribe((item: any) => date = item.split(' '));\n return this.translate.instant('tmsx_fnd.tmsx_angular_components.audit_inactivated_by', {nome: inactivatedBy, data: date[0], hora: date[1]});\n }\n\n /* usage: [innerHTML]=\"getProp(rowData, 'nome')\" */\n public getProp(obj: any, path: any, type?: string): string {\n let value = path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n if (value || value === 0) {\n if (type) {\n value = this.formatType(value, type);\n }\n return `<span>${value}</span>`;\n }\n return `<span class=\"empty-grid\">${this.translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_empty_field')}</span>`;\n }\n\n public formatType(value: any, type: string): string {\n if (value) {\n if (type === 'date') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item.split(' '));\n return date[0];\n }\n if (type === 'datetime') {\n let date = '';\n this.dataPipe.transform(value).subscribe((item: any) => date = item);\n return date;\n }\n if (type === 'decimal') {\n if (typeof value === 'string') {\n value = Number(value);\n }\n return value.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });\n }\n if (type === 'currency') {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n if (type === 'cep') {\n return value.replace(/^(\\d{2})(\\d{3})(\\d{3})/, '$1.$2-$3');\n }\n }\n return value;\n }\n\n /* usage: [ngClass]=\"emptyGridClass(value)\" */\n public emptyGridClass(value: string): string {\n if (!value || value === this.translate.instant('tmsx_fnd.replicacao.list_grid_empty_field')) {\n return 'empty-grid';\n }\n return '';\n }\n\n public infoContent(entity?: any) {\n let text = '';\n if (!entity) {\n return this.translate.instant(\"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\");\n }\n text += this.getAuditCreatedBy(entity.createdBy, entity.createdDate);\n if (text) {\n text += '\\n';\n }\n text += this.getAuditModifiedBy(entity.lastModifiedBy, entity.lastModifiedDate);\n return text;\n }\n\n public formatCurrency(value: number): string {\n return value.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n }\n\n public getAtivoTokenLabel(formField: FormField, value: any, translate: TranslateService) {\n const { name, type, label } = formField as any;\n if (type === FieldType.Radio) {\n const labelValue = value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.situacao_ativo_false');\n return { id: name, label: `${label}: ${labelValue}` };\n }\n return this.createFilterTokens(formField, value, translate);\n }\n\n public getUtilsProp(obj: any, path: any) {\n return path.split('.').reduce((result: any, prop: any) => (result[prop] === undefined ? '' : result[prop]), obj);\n }\n\n public createFilterTokens(formField: FormField, value: any, translate: TranslateService) {\n const { name, type, label, searchFields, options } = formField as any;\n const labelValue = this.getLabelValueByType(type, value, searchFields, options, translate);\n return { id: name, label: `${label}: ${labelValue}` };\n }\n\n private getLabelValueByType(\n type: FieldType,\n value: any,\n searchFields: FormField[],\n options: Option[],\n translate: TranslateService\n ): string {\n switch (type) {\n case FieldType.Date:\n return this.getDateLabel(value);\n case FieldType.Time:\n return this.getTimeFromDate(value);\n case FieldType.LocalDateTime:\n case FieldType.DateTime:\n return this.getDateTimeFromDate(value);\n case FieldType.Lookup:\n return this.getLookupLabel(value, searchFields);\n case FieldType.Enum:\n return this.getEnumLabel(value, options);\n case FieldType.Boolean:\n return this.getBooleanLabel(value, translate);\n default:\n return value;\n }\n }\n\n private getDateLabel(value: any): string {\n const dateObj = value instanceof Date ? value : new Date(value);\n return !isNaN(dateObj.getTime()) ? dateObj.toLocaleDateString('pt-BR') : value;\n }\n\n private getLookupLabel(value: any, searchFields: FormField[]): string {\n return searchFields.map((field: FormField) => this.getUtilsProp(value, field.name)).join(' - ');\n }\n\n private getEnumLabel(value: any, options: Option[]): string {\n const option = options.find((opt: Option) => opt.value === value);\n return option ? option.label : value;\n }\n\n private getBooleanLabel(value: any, translate: TranslateService): string {\n return value\n ? translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_true')\n : translate.instant('tmsx_fnd.tmsx_angular_components.list_grid_boolean_false');\n }\n\n public getTimeFromDate(value: any) {\n let dateObj: Date;\n if (typeof value === 'string' && /^\\d{2}:\\d{2}(:\\d{2})?$/.test(value)) {\n const [h, m, s = '00'] = value.split(':');\n dateObj = new Date();\n dateObj.setHours(+h, +m, +s, 0);\n } else {\n dateObj = value instanceof Date ? value : new Date(value);\n }\n if (!isNaN(dateObj.getTime())) {\n return dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n }\n return value;\n }\n\n public getDateTimeFromDate(value: any) {\n const dateObj = value instanceof Date ? value : new Date(value);\n if (!isNaN(dateObj.getTime())) {\n const datePart = dateObj.toLocaleDateString('pt-BR'); // DD/MM/AAAA\n const timePart = dateObj.toLocaleTimeString('pt-BR', {\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false\n }); // HH:mm:ss\n return `${datePart} ${timePart}`;\n }\n return value;\n }\n}\n","import { ChangeDetectorRef, Component, Injectable, Input, OnDestroy,\n OnInit, Output, ViewChild, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { LazyLoadEvent, MenuItem, SortMeta } from 'primeng/api';\nimport { Table } from 'primeng/table';\nimport { Subject } from 'rxjs';\nimport { GridConfig, FrozenColumn } from './grid.interface';\nimport { TranslateService } from '@ngx-translate/core';\n\nimport { HotkeysService, Hotkey } from 'angular2-hotkeys';\nimport { UtilsService } from '../../utils/services/utils.service';\n\n@Injectable({\n providedIn: 'root'\n})\n@Component({\n selector: 'tmsx-grid-editable-nested',\n templateUrl: './grid-editable-nested.component.html',\n styleUrls: ['./grid-editable-nested.component.scss']\n})\nexport class GridEditableNestedComponent implements OnDestroy, OnInit, OnChanges {\n @Input() public config!: GridConfig;\n @Input() nestedFunction!: (listParams: ListParams, rowData: any) => Promise<void>;\n @Output() openDetails = new EventEmitter<any>();\n @Output() paging = new EventEmitter<any>();\n @Output() delete = new EventEmitter<any>();\n @Output() save = new EventEmitter<any>();\n @Output() add = new EventEmitter<any>();\n\n @ViewChild(\"table\", { static: false }) public table!: Table;\n public clonedData: { [s: string]: any } = {};\n public gridLoading = true;\n public editing = false;\n public lazy = true;\n public deleteEnabled = false;\n public editEnabled = false;\n public addEnabled = false;\n public detailsEnabled = false;\n public calendarTooltipText = '';\n public currentListParams: ListParams = { page: 0, size: 5, sort: [] };\n\n public gridData: any[] = [];\n public gridColumns: any[] = [];\n public gridTotalRecords = 0;\n public selected: any[] = [];\n\n public nestedGridLoading = false;\n public frozenPosition = 'left';\n public frozenWidth = '200px';\n public frozenColumns: FrozenColumn[] = [];\n\n private readonly ngUnsubscribe = new Subject();\n\n constructor(\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly translate: TranslateService,\n private readonly utils: UtilsService,\n private readonly hotkeysService: HotkeysService,\n ) {\n this.calendarTooltipText = this.translate.instant('tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required');\n }\n\n ngOnInit(): void {\n this.setGridData();\n this.setHotkeys();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.config) {\n this.setGridData();\n }\n }\n\n public formatData(column: any, value: string) {\n return value;\n }\n\n private setGridData() {\n if (!this.config) {\n return;\n }\n const { data, size, columns, frozenPosition, frozenColumns, editing, lazy,\n deleteActionsEnabled, editEnabled, addEnabled, editActionsEnabled } = this.config;\n\n this.gridData = data ?? [];\n this.gridTotalRecords = size ?? 0;\n this.gridColumns = columns ?? [];\n this.frozenPosition = frozenPosition ?? 'left';\n this.frozenColumns = frozenColumns ?? [];\n this.frozenWidth = this.calculateFrozenWidth(this.frozenColumns);\n\n this.editing = !!editing;\n this.lazy = !!lazy;\n this.deleteEnabled = !!deleteActionsEnabled;\n this.editEnabled = !!editEnabled;\n this.addEnabled = !!addEnabled;\n this.detailsEnabled = !!editActionsEnabled;\n\n this.changeDetectorRef.detectChanges();\n this.nestedGridLoading = false;\n this.gridLoading = false;\n }\n\n private calculateFrozenWidth(frozenColumns: FrozenColumn[]): string {\n const gutter = 120;\n if (!(frozenColumns?.length)) {\n return '120px';\n }\n const totalWidth = frozenColumns.reduce((sum, col) => sum + gutter + (parseInt(col.width, 10) || 0), 0);\n return `${totalWidth}px`;\n }\n\n\n public getActions(data: any): MenuItem[] {\n return [\n {\n id: 'edit',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.edit'),\n disabled: !this.detailsEnabled,\n command: () => {\n this.openRowDetails(data.id);\n },\n },\n { separator: true },\n {\n id: 'delete',\n label: this.translate.instant('tmsx_fnd.tmsx_angular_components.delete'),\n disabled: !this.deleteEnabled,\n command: () => {\n this.onDelete(data.id);\n },\n },\n ];\n }\n\n public updateGridData(event: LazyLoadEvent) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n this.gridLoading = true;\n\n if (this.clonedData && Object.keys(this.clonedData).length) {\n this.clonedData = {};\n this.table.editingRowKeys = {};\n }\n\n this.paging.emit({ page, size });\n }\n\n public async updateNestedGridData(event: LazyLoadEvent, rowData: any) {\n const size = event.rows ? event.rows : 10;\n const page = event.first ? event.first / size : 0;\n const sort = event.multiSortMeta || [];\n\n rowData.nestedGridLoading = true;\n await this.nestedFunction({ page, size, sort }, rowData);\n }\n\n onTab(event: KeyboardEvent) {\n if (event.key !== 'Tab') {\n return;\n }\n\n event.preventDefault();\n\n const focusables = Array.from(\n document.querySelectorAll<HTMLElement>(\n 'p-cellEditor input, p-cellEditor textarea, p-cellEditor [tabindex=\"0\"]'\n )\n ).filter(el => el.offsetParent !== null);\n\n const currentIndex = focusables.indexOf(event.target as HTMLElement);\n\n let next: HTMLElement | undefined;\n\n if (event.shiftKey) {\n next = focusables[currentIndex - 1] || focusables[focusables.length - 1];\n } else {\n next = focusables[currentIndex + 1] || focusables[0];\n }\n\n if (next) {\n next.focus();\n }\n }\n\n\n public getRowIndex() {\n const page = this.currentListParams.page || 0;\n const size = this.currentListParams.size || 0;\n return page * size;\n }\n\n public getPageSize() {\n return this.currentListParams.size ?? 0;\n }\n\n public openRowDetails(id: string) {\n this.openDetails.emit(id);\n }\n\n public onDelete(id: string) {\n this.delete.emit(id);\n }\n\n public onAdd() {\n this.add.emit();\n }\n\n public ngOnDestroy() {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n }\n\n public onEditSave() {\n this.saveAllRows();\n }\n\n public onEditCancel() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n const index = this.gridData.findIndex((row) => row.id === data.id);\n this.gridData[index] = this.clonedData[data.id];\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n }\n\n public initAllRowsEdit() {\n this.gridData.forEach((data) => {\n this.editing = true;\n this.table.initRowEdit(data);\n this.clonedData[data.id] = { ...data };\n });\n }\n\n public saveAllRows() {\n this.gridData.forEach((data) => {\n if (this.clonedData[data.id]) {\n delete this.clonedData[data.id];\n }\n this.table.cancelRowEdit(data);\n });\n this.editing = false;\n this.save.emit(this.gridData);\n }\n\n public formatRowData(field: any) {\n return field;\n }\n\n public filterOptions(event: any) {\n return event;\n }\n\n public getSpanProp(obj: any, path: any, type?: string): string {\n type = type?.toLowerCase();\n const value = this.utils.getProp(obj, path, type);\n if (value === '<span>0</span>' && type === 'decimal') {\n return '<span>0,00</span>';\n }\n if (!obj.tiposDados) {\n return value;\n }\n if ('MONETARIO' === obj.tiposDados[path]) {\n return 'R$ ' + value;\n }\n if ('PERCENTUAL' === obj.tiposDados[path]) {\n return value + ' %';\n }\n return value;\n }\n\n public setHotkeys() {\n this.hotkeysService.add(\n new Hotkey(\n 'alt+shift+n',\n () => {\n this.onAdd();\n return false;\n },\n ['INPUT', 'SELECT', 'TEXTAREA']\n )\n );\n }\n}\n\nexport interface ListParams {\n page?: number;\n size?: number;\n sort?: SortMeta[];\n filterQuery?: string;\n displayFields?: string[];\n}\n\nexport interface BodyParams {\n offset?: number;\n size?: number;\n orderBy?: string;\n filter?: string;\n displayfields?: string;\n}\n","import { NgModule } from '@angular/core';\n\nimport { TranslateModule } from '@ngx-translate/core';\nimport { GridEditableNestedComponent } from './grid-editable-nested.component';\nimport { TableModule as PrimeTableModule } from 'primeng/table';\n\nimport {\n ButtonModule,\n LoadingStateModule,\n LocaleModule,\n NumberInputModule,\n TableModule,\n TooltipModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n} from '@seniorsistemas/angular-components';\n\nimport { ToastModule } from 'primeng/toast';\nimport { PanelModule } from 'primeng/panel';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { ConfirmDialogModule } from 'primeng/confirmdialog';\nimport { CalendarModule } from 'primeng/calendar';\nimport { DropdownModule } from 'primeng/dropdown';\nimport { SharedModule } from 'primeng/api';\nimport { TooltipModule as PrimeTooltipModule } from 'primeng/tooltip';\nimport { AutoCompleteModule } from 'primeng/autocomplete';\nimport { CheckboxModule } from 'primeng/checkbox';\n\n@NgModule({\n imports: [\n CommonModule,\n LocaleModule.forChild(),\n TranslateModule.forChild(),\n ButtonModule,\n TableModule,\n TooltipModule,\n LoadingStateModule,\n NumberInputModule,\n BreadcrumbModule,\n ControlErrorsModule,\n CustomFieldsModule,\n DynamicFormModule,\n EmptyStateModule,\n TokenListModule,\n\n // PrimeNG modules\n ToastModule,\n PrimeTableModule,\n PrimeTooltipModule,\n PanelModule,\n InputTextModule,\n ConfirmDialogModule,\n CalendarModule,\n DropdownModule,\n SharedModule,\n AutoCompleteModule,\n CheckboxModule,\n\n // Angular modules\n FormsModule,\n ReactiveFormsModule\n ],\n declarations: [\n GridEditableNestedComponent,\n ],\n providers: [],\n exports: [\n GridEditableNestedComponent,\n ],\n})\nexport class GridEditableNestedModule {}\n","import {\n ModuleWithProviders,\n NgModule,\n InjectionToken\n} from \"@angular/core\";\n\nexport const HostProjectConfigsInjectionToken = new InjectionToken<HostProjectConfigs>(\"hostProjectConfigs\");\n\nexport interface HostProjectConfigs {\n domain: string;\n service: string;\n}\n\n@NgModule({})\nexport class TmsxAngularComponentsModule {\n static forRoot(config: HostProjectConfigs): ModuleWithProviders<TmsxAngularComponentsModule> {\n return {\n ngModule: TmsxAngularComponentsModule,\n providers: [\n {\n provide: HostProjectConfigsInjectionToken,\n useValue: config\n }\n ]\n };\n }\n}\n","export const fallback: any = {\n \"tmsx_fnd.tmsx_angular_components.add\": \"Adicionar\",\n \"tmsx_fnd.tmsx_angular_components.audit_created_by\": \"Criado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_modified_by\": \"Modificado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.audit_inactivated_by\": \"Inativado por {{nome}} em {{data}} às {{hora}}.\",\n \"tmsx_fnd.tmsx_angular_components.condicao_valor_lookup_condicional_no_audit\": \"Sem informações de auditoria\",\n \"tmsx_fnd.tmsx_angular_components.delete\": \"Excluir\",\n \"tmsx_fnd.tmsx_angular_components.edit\": \"Editar\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_description\": \"Você não tem permissão para acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_forbidden_title\": \"Acesso Negado\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_description\": \"O recurso solicitado não foi encontrado.\",\n \"tmsx_fnd.tmsx_angular_components.error_not_found_title\": \"Não Encontrado\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_description\": \"Você não está autorizado a acessar este recurso.\",\n \"tmsx_fnd.tmsx_angular_components.error_unauthorized_title\": \"Não Autorizado\",\n \"tmsx_fnd.tmsx_angular_components.grid_aninhada\": \"Grid Aninhada\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_calendar_required\": \"É necessário informar a data\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_cancelar\": \"Cancelar\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_editar\": \"Editar valores\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_paging\": \"registros encontrados\",\n \"tmsx_fnd.tmsx_angular_components.grid_editable_nested_salvar\": \"Salvar alterações\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_false\": \"Não\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_boolean_true\": \"Sim\",\n \"tmsx_fnd.tmsx_angular_components.list_grid_empty_field\": \"Não informado\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento\": \"Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_api_error\": \"API de envio não definida\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_failed\": \"Ocorreu um erro\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_pending\": \"Pendente\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_processing\": \"Processando\",\n \"tmsx_fnd.tmsx_angular_components.painel_processamento_status_success\": \"Finalizado com sucesso\",\n \"tmsx_fnd.tmsx_angular_components.registro\": \"Registro\",\n \"tmsx_fnd.tmsx_angular_components.showcase_painel_processamento_title\": \"Demonstração do Painel de Processamento\",\n \"tmsx_fnd.tmsx_angular_components.showcase_table_title\": \"Demonstração da Tabela\",\n \"tmsx_fnd.tmsx_angular_components.showcase_title\": \"Showcase\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_false\": \"Inativo\",\n \"tmsx_fnd.tmsx_angular_components.situacao_ativo_true\": \"Ativo\",\n \"tmsx_fnd.tmsx_angular_components.status\": \"Situação\",\n \"tmsx_fnd.tmsx_angular_components.total_records\": \"{{ value }} registros encontrados\"\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["pLimit","require$$0","PrimeTableModule","TableModule","PrimeTooltipModule"],"mappings":"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"}
@@ -50,6 +50,7 @@ var PainelProcessamentoComponent = /** @class */ (function () {
50
50
  this.sortField = 'status';
51
51
  this.sortOrder = 1;
52
52
  }
53
+ PainelProcessamentoComponent_1 = PainelProcessamentoComponent;
53
54
  PainelProcessamentoComponent.prototype.ngOnInit = function () {
54
55
  this.initPanel();
55
56
  };
@@ -80,6 +81,31 @@ var PainelProcessamentoComponent = /** @class */ (function () {
80
81
  label: registro.descricao
81
82
  }); });
82
83
  };
84
+ PainelProcessamentoComponent.prototype.getErrorMessage = function (error) {
85
+ var _a, _b;
86
+ try {
87
+ if (!error) {
88
+ return this.genericErrorMsg;
89
+ }
90
+ if ((_a = error === null || error === void 0 ? void 0 : error.error) === null || _a === void 0 ? void 0 : _a.message) {
91
+ return String(error.error.message);
92
+ }
93
+ if ((_b = error === null || error === void 0 ? void 0 : error.message) === null || _b === void 0 ? void 0 : _b.message) {
94
+ return String(error.message.message);
95
+ }
96
+ return this.genericErrorMsg;
97
+ }
98
+ catch (_c) {
99
+ return this.genericErrorMsg;
100
+ }
101
+ };
102
+ Object.defineProperty(PainelProcessamentoComponent.prototype, "genericErrorMsg", {
103
+ get: function () {
104
+ return this.translate.instant(PainelProcessamentoComponent_1.GENERIC_ERR_KEY);
105
+ },
106
+ enumerable: true,
107
+ configurable: true
108
+ });
83
109
  PainelProcessamentoComponent.prototype.updateRowSuccess = function (row, index) {
84
110
  this.successCount++;
85
111
  this.pendingCount--;
@@ -109,7 +135,7 @@ var PainelProcessamentoComponent = /** @class */ (function () {
109
135
  _this.updateRowSuccess(row, index);
110
136
  _this.syncProcessRecord(index + 1);
111
137
  }, function (error) {
112
- _this.updateRowError(row, index, error.message);
138
+ _this.updateRowError(row, index, _this.getErrorMessage(error));
113
139
  _this.syncProcessRecord(index + 1);
114
140
  });
115
141
  }
@@ -148,7 +174,7 @@ var PainelProcessamentoComponent = /** @class */ (function () {
148
174
  return [2 /*return*/, { success: true, record: record, result: result }];
149
175
  case 3:
150
176
  error_1 = _a.sent();
151
- this.updateRowError(row, index, error_1.message);
177
+ this.updateRowError(row, index, this.getErrorMessage(error_1));
152
178
  return [2 /*return*/, { success: false, record: record, error: error_1 }];
153
179
  case 4: return [2 /*return*/];
154
180
  }
@@ -168,10 +194,11 @@ var PainelProcessamentoComponent = /** @class */ (function () {
168
194
  var successWidth = (this.successCount / this.totalRecords) * 100;
169
195
  var failedWidth = (this.failedCount / this.totalRecords) * 100;
170
196
  var pendingWidth = (this.pendingCount / this.totalRecords) * 100;
171
- this.processingProgress = (successWidth + failedWidth) + "%";
172
- this.successProgress = successWidth + "%";
173
- this.failedProgress = failedWidth + "%";
174
- this.pendingProgress = pendingWidth + "%";
197
+ var processedWidth = successWidth + failedWidth;
198
+ this.processingProgress = processedWidth.toFixed(0) + "%";
199
+ this.successProgress = successWidth.toFixed(0) + "%";
200
+ this.failedProgress = failedWidth.toFixed(0) + "%";
201
+ this.pendingProgress = pendingWidth.toFixed(0) + "%";
175
202
  };
176
203
  PainelProcessamentoComponent.prototype.updateRowStatus = function (row, status, message) {
177
204
  row.status = status;
@@ -234,6 +261,8 @@ var PainelProcessamentoComponent = /** @class */ (function () {
234
261
  },
235
262
  ];
236
263
  };
264
+ var PainelProcessamentoComponent_1;
265
+ PainelProcessamentoComponent.GENERIC_ERR_KEY = 'tmsx_fnd.tmsx_angular_components.painel_processamento_generic_error';
237
266
  PainelProcessamentoComponent.ctorParameters = function () { return [
238
267
  { type: TranslateService }
239
268
  ]; };
@@ -247,7 +276,7 @@ var PainelProcessamentoComponent = /** @class */ (function () {
247
276
  __decorate([
248
277
  Output()
249
278
  ], PainelProcessamentoComponent.prototype, "concluido", void 0);
250
- PainelProcessamentoComponent = __decorate([
279
+ PainelProcessamentoComponent = PainelProcessamentoComponent_1 = __decorate([
251
280
  Injectable({
252
281
  providedIn: 'root'
253
282
  }),