UNPKG

@kineticdata/react

Version:
131 lines (128 loc) 3.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.FieldDefinitionForm = void 0; var _Form = require("../../form/Form"); var _apis = require("../../../apis"); var _FieldDefinitionTable = require("./FieldDefinitionTable"); var dataSources = function dataSources(_ref) { var kappSlug = _ref.kappSlug, name = _ref.name; return { form: { fn: kappSlug ? _apis.fetchKapp : _apis.fetchSpace, params: [{ kappSlug: kappSlug, include: 'fields' }], transform: function transform(result) { return kappSlug ? result.kapp : result.space; } }, fieldDefinition: { fn: function fn(form, name) { return form.get('fields').find(function (f) { return f.get('name') === name; }); }, params: function params(_ref2) { var form = _ref2.form; return form && name && [form, name]; } } }; }; var handleSubmit = function handleSubmit(_ref3) { var kappSlug = _ref3.kappSlug, name = _ref3.name; return function (values, _ref4) { var form = _ref4.form; var dataType = _FieldDefinitionTable.FIELD_DATA_TYPES.find(function (fdt) { return fdt.value === values.get('renderType'); }).dataType; var field = values.set('dataType', dataType); var fields = name ? form.get('fields').map(function (fd) { return fd.get('name') === name ? field : fd; }) : form.get('fields').push(field); return (kappSlug ? (0, _apis.updateKapp)({ kapp: { fields: fields }, kappSlug: kappSlug }) : (0, _apis.updateSpace)({ space: { fields: fields } })).then(function (_ref5) { var kapp = _ref5.kapp, space = _ref5.space, error = _ref5.error; if (error) { throw error.statusCode === 400 && error.message || 'There was an error saving the field definition'; } return kappSlug ? kapp : space; }); }; }; var fields = function fields(_ref6) { var name = _ref6.name; return function (_ref7) { var form = _ref7.form, fieldDefinition = _ref7.fieldDefinition; return (!name || fieldDefinition) && form && [{ name: 'name', label: 'Name', type: 'text', required: true, initialValue: fieldDefinition ? fieldDefinition.get('name') : '' }, { name: 'renderType', label: 'Type', type: 'select', required: true, options: _FieldDefinitionTable.FIELD_DATA_TYPES, initialValue: fieldDefinition ? fieldDefinition.get('renderType') : '' }, { name: 'createdAt', label: 'Created At', type: 'text', visible: false, initialValue: fieldDefinition ? fieldDefinition.get('createdAt') : '2020-08-24T22:06:20.572Z' }, { name: 'createdBy', label: 'Created By', type: 'text', visible: false, initialValue: fieldDefinition ? fieldDefinition.get('createdBy') : 'admin' }, { name: 'updatedAt', label: 'Updated At', type: 'text', visible: false, initialValue: fieldDefinition ? fieldDefinition.get('updatedAt') : '2020-08-24T22:06:20.572Z' }, { name: 'updatedBy', label: 'Updated By', type: 'text', visible: false, initialValue: fieldDefinition ? fieldDefinition.get('updatedBy') : 'admin' }]; }; }; /** * @component * A form for creating and updating Field Definitions within the Kinetic Platform */ var FieldDefinitionForm = exports.FieldDefinitionForm = (0, _Form.generateForm)({ formOptions: ['kappSlug', 'name'], dataSources: dataSources, fields: fields, handleSubmit: handleSubmit }); FieldDefinitionForm.displayName = 'FieldDefinitionForm'; // Specifies the default values for props: FieldDefinitionForm.defaultProps = { fieldName: null, kappSlug: null };