UNPKG

@kineticdata/react

Version:
105 lines (104 loc) 3.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BridgeModelAttributeForm = void 0; var _Form = require("../../form/Form"); var _apis = require("../../../apis"); var dataSources = function dataSources(_ref) { var modelName = _ref.modelName, attributeName = _ref.attributeName; return { bridgeModel: { fn: _apis.fetchBridgeModel, params: [{ modelName: modelName }], transform: function transform(result) { return result.bridgeModel; } }, bridgeModelAttribute: { fn: _apis.fetchBridgeModelAttributeMapping, params: function params(_ref2) { var bridgeModel = _ref2.bridgeModel; return attributeName && bridgeModel && [{ modelName: modelName, mappingName: bridgeModel.get('activeMappingName'), attributeName: attributeName }]; }, transform: function transform(result) { return result.bridgeModelAttributeMapping; } } }; }; var handleSubmit = function handleSubmit(_ref3) { var modelName = _ref3.modelName, attributeName = _ref3.attributeName; return function (values, _ref4) { var bridgeModel = _ref4.bridgeModel; var mappingName = bridgeModel.get('activeMappingName'); var name = values.get('name'); var structureField = values.get('mapping'); return (attributeName ? _apis.updateBridgeModelAttribute : _apis.createBridgeModelAttribute)({ modelName: modelName, attributeName: attributeName, bridgeModelAttribute: { name: name } }).then(function (result) { return result.error ? result : (attributeName ? _apis.updateBridgeModelAttributeMapping : _apis.createBridgeModelAttributeMapping)({ modelName: modelName, mappingName: mappingName, attributeName: name, bridgeModelAttributeMapping: { name: name, structureField: structureField } }); }).then(function (_ref5) { var bridgeModelAttributeMapping = _ref5.bridgeModelAttributeMapping, error = _ref5.error; if (error) { throw error.statusCode === 400 && error.message || 'There was an error saving the attribute'; } return bridgeModelAttributeMapping; }); }; }; var fields = function fields(_ref6) { var modelName = _ref6.modelName, attributeName = _ref6.attributeName; return function (_ref7) { var bridgeModelAttribute = _ref7.bridgeModelAttribute; return (!attributeName || bridgeModelAttribute) && [{ name: 'name', label: 'Name', type: 'text', required: true, initialValue: bridgeModelAttribute ? bridgeModelAttribute.get('name') : '' }, { name: 'mapping', label: 'Mapping', type: 'code', language: 'js-template', required: true, initialValue: bridgeModelAttribute && bridgeModelAttribute.get('structureField') || '', options: [{ label: 'fields', type: 'function', quoteType: 'double', detail: 'Add Field Mapping' }] }]; }; }; var BridgeModelAttributeForm = exports.BridgeModelAttributeForm = (0, _Form.generateForm)({ formOptions: ['modelName', 'attributeName'], dataSources: dataSources, fields: fields, handleSubmit: handleSubmit }); BridgeModelAttributeForm.displayName = 'BridgeModelAttributeForm';