@skbkontur/db-viewer-ui
Version:
Database Viewer with custom configuration
34 lines • 1.87 kB
JavaScript
;
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