@seniorsistemas/tmsx-angular-components 1.0.3 → 1.0.4-feature-tmsx-1991-1376e6b0
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/seniorsistemas-tmsx-angular-components.umd.js +36 -7
- package/bundles/seniorsistemas-tmsx-angular-components.umd.js.map +1 -1
- package/bundles/seniorsistemas-tmsx-angular-components.umd.min.js +1 -1
- package/bundles/seniorsistemas-tmsx-angular-components.umd.min.js.map +1 -1
- package/components/painel-processamento/painel-processamento.component.d.ts +3 -0
- package/esm2015/components/painel-processamento/painel-processamento.component.js +33 -9
- package/esm5/components/painel-processamento/painel-processamento.component.js +37 -8
- package/fesm2015/seniorsistemas-tmsx-angular-components.js +32 -8
- package/fesm2015/seniorsistemas-tmsx-angular-components.js.map +1 -1
- package/fesm5/seniorsistemas-tmsx-angular-components.js +36 -7
- package/fesm5/seniorsistemas-tmsx-angular-components.js.map +1 -1
- package/package.json +1 -1
- package/seniorsistemas-tmsx-angular-components.metadata.json +1 -1
|
@@ -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
|
|
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
|
|
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
|
-
|
|
172
|
-
this.
|
|
173
|
-
this.
|
|
174
|
-
this.
|
|
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
|
}),
|