{ "version": 3, "sources": ["apps/frontend/src/app/notifications/services/notifications.service.ts"], "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { Entity } from '@proman/services/entity.service';\nimport { FilterService } from '@proman/services/filter.service';\nimport { Subject } from 'rxjs';\nimport { snakeCase } from '@proman/utils';\nimport { TextPreviewDialogComponent } from '@frontend/shared/components/text-preview-dialog.component';\nimport { getFieldValue } from '@proman/table/utils/tools';\nimport { Dialog } from '@frontend/shared/services/dialog.service';\nimport moment from 'moment/moment';\n\n@Injectable({ providedIn: 'root' })\nexport class NotificationsService {\n notificationEntity: any;\n objects: any;\n timeStamp: Subject = new Subject();\n\n constructor(Entity: Entity, private Filter: FilterService, private Dialog: Dialog) {\n this.notificationEntity = Entity.get('notification');\n }\n\n toJsName = (name: string) => snakeCase(name);\n\n toJsTranslate = (name: string) => this.Filter.translate(this.toJsName(name));\n\n prepareField = (fieldData: any) => {\n return {\n id: fieldData.fieldName,\n type: fieldData.type,\n name: this.toJsTranslate(fieldData.fieldName),\n values: fieldData.values\n };\n };\n\n prepareAssociation = (associationData: any) => {\n return {\n id: associationData.fieldName,\n toOne: associationData.toOne,\n name: this.toJsTranslate(associationData.fieldName),\n className: associationData.className,\n fields: this.prepareAssociationFields(associationData)\n };\n };\n\n isDateType = (field: any) => field.type === 'date'\n\n prepareObject = (object: any) => {\n object.name = this.toJsTranslate(object.className);\n object.fields = object.fields.map(this.prepareField);\n object.dateFields = object.fields.filter(this.isDateType);\n object.associations = object.associations.map(this.prepareAssociation);\n\n return object;\n };\n\n prepareAssociationFields = (association: any) => {\n let objectItem;\n let assosiationFields: any = [];\n\n objectItem = this.objects.Filter((object: any) => object.className === association.className)[0];\n\n if (!objectItem) return [];\n\n objectItem.fields.forEach((field: any) => {\n\n if (!field._translated) {\n field.name = this.toJsTranslate(association.className) + ' - ' + this.toJsTranslate(field.id);\n field._translated = true;\n\n }\n\n assosiationFields.push(field);\n });\n\n return assosiationFields;\n };\n\n getObjects = () => {\n return this.notificationEntity\n .getObjects()\n .then((response: any) => {\n this.objects = response;\n\n return response?.map(this.prepareObject);\n });\n };\n\n refresh() {\n this.timeStamp.next(new Date().getTime());\n }\n\n getTables = () => {\n return [\n 'sale_opportunity_project',\n 'purchase',\n 'orders',\n 'material_quants',\n 'shipments',\n 'productions',\n 'events',\n 'documents',\n 'persons',\n 'products',\n 'employees',\n 'development_project',\n ].map((item: string) => ({ id: item, name: this.Filter.translate(item) }))\n };\n\n readLastResult = (row: any) => {\n this.Dialog.open2(TextPreviewDialogComponent, {\n type: 'html',\n header: 'last_result',\n text: `${row.lastResult}`\n })\n }\n\n getActionValue = (row: any) => {\n if (!row.actionClass) return '';\n\n const splits = row.actionClass.split('\\\\');\n\n return splits[splits.length - 1];\n };\n fullDate = (date: string) => date ? moment(date).utcOffset(0).format('YYYY-MM-DD HH:mm:ss') : '';\n\n getBooleanIcon = (row: any, key: any) => {\n const value = getFieldValue(key, row);\n\n const icon = {\n icon: value ? 'check' : 'times',\n color: value ? 'green' : 'grey'\n };\n\n return {\n icon,\n text: ''\n };\n };\n}\n"], "mappings": "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", "names": ["import_moment", "NotificationsService", "constructor", "Entity", "Filter", "Dialog", "timeStamp", "Subject", "toJsName", "name", "snakeCase", "toJsTranslate", "translate", "prepareField", "fieldData", "id", "fieldName", "type", "values", "prepareAssociation", "associationData", "toOne", "className", "fields", "prepareAssociationFields", "isDateType", "field", "prepareObject", "object", "map", "dateFields", "filter", "associations", "association", "objectItem", "assosiationFields", "objects", "forEach", "_translated", "push", "getObjects", "notificationEntity", "then", "response", "getTables", "item", "readLastResult", "row", "open2", "TextPreviewDialogComponent", "header", "text", "lastResult", "getActionValue", "actionClass", "splits", "split", "length", "fullDate", "date", "moment", "utcOffset", "format", "getBooleanIcon", "key", "value", "getFieldValue", "icon", "color", "get", "refresh", "next", "Date", "getTime", "\u0275\u0275inject", "FilterService", "factory", "\u0275fac", "providedIn", "_NotificationsService"] }