UNPKG

@skbkontur/db-viewer-ui

Version:

Database Viewer with custom configuration

34 lines 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectViewer = void 0; const jsx_runtime_1 = require("react/jsx-runtime"); const edi_ui_1 = require("@skbkontur/edi-ui"); const PropertyMetaInformationUtils_1 = require("../../Domain/Objects/PropertyMetaInformationUtils"); const ObjectRenderer_1 = require("./ObjectRenderer"); const ObjectViewer = ({ objectMeta, objectInfo, onChange, allowEdit, customRenderer, }) => { const handleChange = (value, path) => { let serverValue = value; if (value) { serverValue = String(value); if (value instanceof Date) { serverValue = value.toISOString(); } } onChange(serverValue, path); }; const renderCaption = (path) => { const propertyMeta = PropertyMetaInformationUtils_1.PropertyMetaInformationUtils.getPropertyTypeByPath(objectMeta.typeMetaInformation, path); let typeName = propertyMeta.type.originalTypeName; if (typeName === "Byte[]") { typeName = propertyMeta.type.typeName; } return `Тип: ${typeName}`; }; const renderValue = (target, path) => { const typeMeta = objectMeta.typeMetaInformation; return ((0, jsx_runtime_1.jsx)(ObjectRenderer_1.ObjectRenderer, { target: target, path: path, customRenderer: customRenderer, property: PropertyMetaInformationUtils_1.PropertyMetaInformationUtils.getPropertyTypeByPath(typeMeta, path), objectType: objectMeta.identifier, allowEdit: allowEdit, onChange: handleChange })); }; return ((0, jsx_runtime_1.jsx)(edi_ui_1.Accordion, { "data-tid": "RootAccordion", renderCaption: renderCaption, renderValue: renderValue, value: objectInfo, defaultCollapsed: true, showToggleAll: true })); }; exports.ObjectViewer = ObjectViewer; //# sourceMappingURL=ObjectViewer.js.map