all files / src/workflows/openfoam/windtunnel/components/steps/Input/ index.js

25.64% Statements 10/39
22.73% Branches 5/22
16.67% Functions 1/6
28.13% Lines 9/32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77                                                                                                                                       
'use strict';
 
Object.defineProperty(exports, "__esModule", {
  value: true
});
 
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
 
var _react = require('react');
 
var _react2 = _interopRequireDefault(_react);
 
var _SimputReact = require('../../../../../generic/components/steps/SimputReact');
 
var _SimputReact2 = _interopRequireDefault(_SimputReact);
 
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
 
// ----------------------------------------------------------------------------
 
function simputModelDecorator(model, props) {
  // Add external data from project mesh
  if (!model.external) {
    model.external = {};
  }
  if (!model.external.geometryName) {
    model.external.geometryName = props.project.metadata.mesh.split('.')[0];
  }
  if (!model.external.groupName && model.external.geometryName) {
    model.external.groupName = model.external.geometryName + 'Group';
  }
 
  // Push Geometry step data to simput...
  if (props.simulation.steps.Geometry.metadata.assign) {
    var assign = JSON.parse(props.simulation.steps.Geometry.metadata.assign);
 
    var _loop = function _loop() {
      var item = assign.pop();
      var container = model.data;
      item.path.forEach(function (key, idx, array) {
        if (!container[key]) {
          if (Number.isInteger(array[idx + 1])) {
            container[key] = [];
          } else {
            container[key] = {};
          }
        }
        container = container[key];
      });
      container.value = item.value;
    };
 
    while (assign.length) {
      _loop();
    }
  }
 
  console.log(JSON.stringify(model, null, 2));
 
  return model;
}
 
// ----------------------------------------------------------------------------
 
exports.default = function (props) {
  return _react2.default.createElement(_SimputReact2.default, _extends({}, props, {
    simputType: 'openfoam-windtunnel',
    inputFileKeys: [{ key: '__export__', name: 'input-deck.json', parse: false }],
    initialDataModel: {
      data: {},
      type: 'openfoam-windtunnel',
      hideViews: []
    },
    simputModelDecorator: simputModelDecorator
  }));
};