chem-generic-ui 0.1.33 → 0.1.35

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/app.js +106 -0
  2. package/dist/app.js.map +1 -0
  3. package/dist/asserts/main.css +465 -0
  4. package/dist/asserts/main.scss +496 -0
  5. package/dist/components/admin/ElementManager.js +55 -0
  6. package/dist/components/admin/ElementManager.js.map +1 -0
  7. package/dist/components/details/GenDSDetails.js +274 -0
  8. package/dist/components/details/GenDSDetails.js.map +1 -0
  9. package/dist/components/details/GenSgDetails.js +567 -0
  10. package/dist/components/details/GenSgDetails.js.map +1 -0
  11. package/dist/components/dnd/DragDropItemTypes.js +21 -0
  12. package/dist/components/dnd/DragDropItemTypes.js.map +1 -0
  13. package/dist/components/dnd/GenericElDropTarget.js +275 -0
  14. package/dist/components/dnd/GenericElDropTarget.js.map +1 -0
  15. package/dist/components/dnd/GridDnD.js +78 -0
  16. package/dist/components/dnd/GridDnD.js.map +1 -0
  17. package/dist/components/dnd/PanelDnD.js +172 -0
  18. package/dist/components/dnd/PanelDnD.js.map +1 -0
  19. package/dist/components/fields/ButtonConfirm.js +77 -0
  20. package/dist/components/fields/ButtonConfirm.js.map +1 -0
  21. package/dist/components/fields/ButtonTooltip.js +89 -0
  22. package/dist/components/fields/ButtonTooltip.js.map +1 -0
  23. package/dist/components/fields/FieldLabel.js +39 -0
  24. package/dist/components/fields/FieldLabel.js.map +1 -0
  25. package/dist/components/fields/GenDSMisType.js +45 -0
  26. package/dist/components/fields/GenDSMisType.js.map +1 -0
  27. package/dist/components/fields/GenFormGroupCb.js +32 -0
  28. package/dist/components/fields/GenFormGroupCb.js.map +1 -0
  29. package/dist/components/fields/GenProperties.js +84 -0
  30. package/dist/components/fields/GenProperties.js.map +1 -0
  31. package/dist/components/fields/GenPropertiesFields.js +617 -0
  32. package/dist/components/fields/GenPropertiesFields.js.map +1 -0
  33. package/dist/components/flow/FlowView.js +89 -0
  34. package/dist/components/flow/FlowView.js.map +1 -0
  35. package/dist/components/flow/FlowViewerModal.js +82 -0
  36. package/dist/components/flow/FlowViewerModal.js.map +1 -0
  37. package/dist/components/flow/LayerNode.js +60 -0
  38. package/dist/components/flow/LayerNode.js.map +1 -0
  39. package/dist/components/layers/GenPropertiesLayer.js +281 -0
  40. package/dist/components/layers/GenPropertiesLayer.js.map +1 -0
  41. package/dist/components/layers/LayerModal.js +82 -0
  42. package/dist/components/layers/LayerModal.js.map +1 -0
  43. package/dist/components/layers/LayersLayout.js +89 -0
  44. package/dist/components/layers/LayersLayout.js.map +1 -0
  45. package/dist/components/models/Attachment.js +74 -0
  46. package/dist/components/models/Attachment.js.map +1 -0
  47. package/dist/components/models/GenericSubField.js +38 -0
  48. package/dist/components/models/GenericSubField.js.map +1 -0
  49. package/dist/components/table/DropLinkRenderer.js +56 -0
  50. package/dist/components/table/DropLinkRenderer.js.map +1 -0
  51. package/dist/components/table/DropRenderer.js +46 -0
  52. package/dist/components/table/DropRenderer.js.map +1 -0
  53. package/dist/components/table/DropTextRenderer.js +46 -0
  54. package/dist/components/table/DropTextRenderer.js.map +1 -0
  55. package/dist/components/table/GenericElTableDropTarget.js +253 -0
  56. package/dist/components/table/GenericElTableDropTarget.js.map +1 -0
  57. package/dist/components/table/GridBtn.js +103 -0
  58. package/dist/components/table/GridBtn.js.map +1 -0
  59. package/dist/components/table/GridEntry.js +164 -0
  60. package/dist/components/table/GridEntry.js.map +1 -0
  61. package/dist/components/table/SamOption.js +88 -0
  62. package/dist/components/table/SamOption.js.map +1 -0
  63. package/dist/components/table/SelectRenderer.js +53 -0
  64. package/dist/components/table/SelectRenderer.js.map +1 -0
  65. package/dist/components/table/TableRecord.js +455 -0
  66. package/dist/components/table/TableRecord.js.map +1 -0
  67. package/dist/components/table/UConverterRenderer.js +42 -0
  68. package/dist/components/table/UConverterRenderer.js.map +1 -0
  69. package/dist/components/tools/collate.js +104 -0
  70. package/dist/components/tools/collate.js.map +1 -0
  71. package/dist/components/tools/orten.js +295 -0
  72. package/dist/components/tools/orten.js.map +1 -0
  73. package/dist/components/tools/utils.js +594 -0
  74. package/dist/components/tools/utils.js.map +1 -0
  75. package/dist/data/SystemUnits.js +589 -0
  76. package/dist/data/SystemUnits.js.map +1 -0
  77. package/dist/data/systemUnits.json +430 -0
  78. package/dist/index.css +13 -0
  79. package/dist/index.js +40 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/logo.svg +1 -0
  82. package/dist/simulations/SimWF.js +124 -0
  83. package/dist/simulations/SimWF.js.map +1 -0
  84. package/dist/simulations/SimuDS.js +119 -0
  85. package/dist/simulations/SimuDS.js.map +1 -0
  86. package/dist/simulations/SimuSG.js +124 -0
  87. package/dist/simulations/SimuSG.js.map +1 -0
  88. package/package.json +11 -8
  89. package/dist/generic.js +0 -6219
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _lodash = require("lodash");
13
+
14
+ var _reactBootstrap = require("react-bootstrap");
15
+
16
+ var _LayersLayout = _interopRequireDefault(require("../layers/LayersLayout"));
17
+
18
+ var _utils = require("../tools/utils");
19
+
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
+
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
26
+ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
27
+
28
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
29
+
30
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
31
+
32
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
33
+
34
+ function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
35
+
36
+ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
37
+
38
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
39
+
40
+ function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
41
+
42
+ function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
43
+
44
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
+
46
+ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
47
+
48
+ var GenericDSDetails = /*#__PURE__*/function (_Component) {
49
+ _inherits(GenericDSDetails, _Component);
50
+
51
+ var _super = _createSuper(GenericDSDetails);
52
+
53
+ function GenericDSDetails(props) {
54
+ var _this;
55
+
56
+ _classCallCheck(this, GenericDSDetails);
57
+
58
+ _this = _super.call(this, props);
59
+ _this.handleInputChange = _this.handleInputChange.bind(_assertThisInitialized(_this));
60
+ _this.handleUnitClick = _this.handleUnitClick.bind(_assertThisInitialized(_this));
61
+ _this.handleReload = _this.handleReload.bind(_assertThisInitialized(_this));
62
+ return _this;
63
+ }
64
+
65
+ _createClass(GenericDSDetails, [{
66
+ key: "handleInputChange",
67
+ value: function handleInputChange(event, field, layer) {
68
+ var type = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'text';
69
+ var genericDS = this.props.genericDS;
70
+ var properties = genericDS.properties;
71
+ var value = '';
72
+
73
+ switch (type) {
74
+ case 'checkbox':
75
+ value = event.target.checked;
76
+ break;
77
+
78
+ case 'select':
79
+ value = event ? event.value : null;
80
+ break;
81
+
82
+ case 'formula-field':
83
+ if (event.target) {
84
+ value = event.target.value;
85
+ } else {
86
+ value = event;
87
+ }
88
+
89
+ break;
90
+
91
+ case 'integer':
92
+ value = event.target.value;
93
+ value = Math.trunc(value);
94
+ break;
95
+
96
+ default:
97
+ value = event.target.value;
98
+ }
99
+
100
+ properties.layers["".concat(layer)].fields.find(function (e) {
101
+ return e.field === field;
102
+ }).value = value;
103
+
104
+ if (type === 'system-defined' && (!properties.layers["".concat(layer)].fields.find(function (e) {
105
+ return e.field === field;
106
+ }).value_system || properties.layers["".concat(layer)].fields.find(function (e) {
107
+ return e.field === field;
108
+ }).value_system === '')) {
109
+ var opt = properties.layers["".concat(layer)].fields.find(function (e) {
110
+ return e.field === field;
111
+ }).option_layers;
112
+ properties.layers["".concat(layer)].fields.find(function (e) {
113
+ return e.field === field;
114
+ }).value_system = (0, _utils.genUnits)(opt)[0].key;
115
+ }
116
+
117
+ genericDS.properties = properties;
118
+ genericDS.changed = true; // this.props.onChange('dataset', { target: { value: genericDS } });
119
+
120
+ this.props.onChange(genericDS);
121
+ }
122
+ }, {
123
+ key: "handleUnitClick",
124
+ value: function handleUnitClick(layer, obj) {
125
+ var genericDS = this.props.genericDS;
126
+ var properties = genericDS.properties;
127
+ var newVal = (0, _utils.unitConversion)(obj.option_layers, obj.value_system, obj.value);
128
+ properties.layers["".concat(layer)].fields.find(function (e) {
129
+ return e.field === obj.field;
130
+ }).value_system = obj.value_system;
131
+ properties.layers["".concat(layer)].fields.find(function (e) {
132
+ return e.field === obj.field;
133
+ }).value = newVal;
134
+ genericDS.properties = properties;
135
+ genericDS.changed = true; // this.props.onChange('dataset', { target: { value: genericDS } });
136
+
137
+ this.props.onChange(genericDS);
138
+ }
139
+ }, {
140
+ key: "handleReload",
141
+ value: function handleReload() {
142
+ var _this$props = this.props,
143
+ klass = _this$props.klass,
144
+ genericDS = _this$props.genericDS;
145
+
146
+ if (klass.properties_release) {
147
+ var newProps = (0, _lodash.cloneDeep)(klass.properties_release);
148
+ newProps.klass_uuid = klass.uuid;
149
+ Object.keys(newProps.layers).forEach(function (key) {
150
+ var newLayer = newProps.layers[key] || {};
151
+ var curFields = genericDS.properties.layers[key] && genericDS.properties.layers[key].fields || [];
152
+ (newLayer.fields || []).forEach(function (f, idx) {
153
+ var curIdx = (0, _lodash.findIndex)(curFields, function (o) {
154
+ return o.field === f.field;
155
+ });
156
+
157
+ if (curIdx >= 0) {
158
+ var curVal = genericDS.properties.layers[key].fields[curIdx].value;
159
+
160
+ var curType = _typeof(curVal);
161
+
162
+ if (['select', 'text', 'textarea', 'formula-field'].includes(newProps.layers[key].fields[idx].type)) {
163
+ newProps.layers[key].fields[idx].value = curType !== 'undefined' ? curVal.toString() : '';
164
+ }
165
+
166
+ if (newProps.layers[key].fields[idx].type === 'integer') {
167
+ newProps.layers[key].fields[idx].value = // eslint-disable-next-line no-restricted-globals
168
+ curType === 'undefined' || curType === 'boolean' || isNaN(curVal) ? 0 : parseInt(curVal, 10);
169
+ }
170
+
171
+ if (newProps.layers[key].fields[idx].type === 'checkbox') {
172
+ newProps.layers[key].fields[idx].value = curType !== 'undefined' ? (0, _utils.toBool)(curVal) : false;
173
+ }
174
+
175
+ if (newProps.layers[key].fields[idx].type === 'system-defined') {
176
+ var units = (0, _utils.genUnits)(newProps.layers[key].fields[idx].option_layers);
177
+ var vs = units.find(function (u) {
178
+ return u.key === genericDS.properties.layers[key].fields[curIdx].value_system;
179
+ });
180
+ newProps.layers[key].fields[idx].value_system = vs && vs.key || units[0].key;
181
+ newProps.layers[key].fields[idx].value = (0, _utils.toNum)(curVal);
182
+ }
183
+ }
184
+ });
185
+ });
186
+ genericDS.properties = newProps;
187
+ genericDS.dataset_klass_id = klass.id;
188
+ genericDS.klass_ols = klass.ols_term_id;
189
+ genericDS.klass_label = klass.label;
190
+ genericDS.changed = true; // this.props.onChange('dataset', { target: { value: genericDS } });
191
+
192
+ this.props.onChange(genericDS);
193
+ } else {
194
+ // this.props.onChange('dataset', { target: { value: undefined } });
195
+ this.props.onChange(undefined);
196
+ }
197
+ }
198
+ }, {
199
+ key: "elementalPropertiesItem",
200
+ value: function elementalPropertiesItem(genericDS, klass) {
201
+ var layersLayout = (0, _LayersLayout.default)(genericDS.properties.layers, klass.properties_release && klass.properties_release.select_options || {}, this.handleInputChange, function () {}, this.handleUnitClick);
202
+ return /*#__PURE__*/_react.default.createElement("div", {
203
+ style: {
204
+ margin: '5px'
205
+ }
206
+ }, layersLayout);
207
+ }
208
+ }, {
209
+ key: "render",
210
+ value: function render() {
211
+ var _this2 = this;
212
+
213
+ var _this$props2 = this.props,
214
+ uiCtrl = _this$props2.uiCtrl,
215
+ genericDS = _this$props2.genericDS,
216
+ klass = _this$props2.klass,
217
+ kind = _this$props2.kind;
218
+
219
+ if (uiCtrl && Object.keys(genericDS).length !== 0 && kind && kind !== '') {
220
+ return /*#__PURE__*/_react.default.createElement(_reactBootstrap.Panel, {
221
+ className: "panel-detail"
222
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Panel.Body, {
223
+ style: {
224
+ position: 'relative',
225
+ minHeight: 260,
226
+ overflowY: 'unset'
227
+ }
228
+ }, this.elementalPropertiesItem(genericDS, klass), /*#__PURE__*/_react.default.createElement("span", {
229
+ className: "g-ds-note label"
230
+ }, /*#__PURE__*/_react.default.createElement("span", {
231
+ className: "g-ds-title"
232
+ }, "Note"), /*#__PURE__*/_react.default.createElement("br", null), "Selected analysis type: ", (0, _utils.absOlsTermLabel)(kind), /*#__PURE__*/_react.default.createElement("br", null), "Content is designed for: ", genericDS.klass_label), /*#__PURE__*/_react.default.createElement(_reactBootstrap.ButtonToolbar, {
233
+ className: "pull-right"
234
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.OverlayTrigger, {
235
+ placement: "top",
236
+ overlay: /*#__PURE__*/_react.default.createElement(_reactBootstrap.Tooltip, {
237
+ id: "_tooltip_reload"
238
+ }, "click to reload the content template")
239
+ }, /*#__PURE__*/_react.default.createElement(_reactBootstrap.Button, {
240
+ bsSize: "xsmall",
241
+ bsStyle: "danger",
242
+ onClick: function onClick() {
243
+ return _this2.handleReload();
244
+ }
245
+ }, "Reload")))));
246
+ }
247
+
248
+ return null;
249
+ }
250
+ }]);
251
+
252
+ return GenericDSDetails;
253
+ }(_react.Component);
254
+
255
+ GenericDSDetails.propTypes = {
256
+ uiCtrl: _propTypes.default.bool.isRequired,
257
+ // MatrixCheck(currentUser.matrix, 'genericDataset')
258
+ kind: _propTypes.default.string,
259
+ // selected analysis type
260
+ genericDS: _propTypes.default.object,
261
+ klass: _propTypes.default.object,
262
+ // dataset_klass
263
+ onChange: _propTypes.default.func.isRequired // change callback
264
+
265
+ };
266
+ GenericDSDetails.defaultProps = {
267
+ kind: '',
268
+ genericDS: {},
269
+ klass: {}
270
+ }; // export default DragDropContext(HTML5Backend)(GenericDSDetails);
271
+
272
+ var _default = GenericDSDetails;
273
+ exports.default = _default;
274
+ //# sourceMappingURL=GenDSDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/details/GenDSDetails.js"],"names":["GenericDSDetails","props","handleInputChange","bind","handleUnitClick","handleReload","event","field","layer","type","genericDS","properties","value","target","checked","Math","trunc","layers","fields","find","e","value_system","opt","option_layers","key","changed","onChange","obj","newVal","klass","properties_release","newProps","klass_uuid","uuid","Object","keys","forEach","newLayer","curFields","f","idx","curIdx","o","curVal","curType","includes","toString","isNaN","parseInt","units","vs","u","dataset_klass_id","id","klass_ols","ols_term_id","klass_label","label","undefined","layersLayout","select_options","margin","uiCtrl","kind","length","position","minHeight","overflowY","elementalPropertiesItem","Component","propTypes","PropTypes","bool","isRequired","string","object","func","defaultProps"],"mappings":"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","sourcesContent":["/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findIndex, cloneDeep } from 'lodash';\nimport { Panel, Button, ButtonToolbar, OverlayTrigger, Tooltip } from 'react-bootstrap';\n// import { DragDropContext } from 'react-dnd';\n// import HTML5Backend from 'react-dnd-html5-backend';\nimport LayersLayout from '../layers/LayersLayout';\nimport { genUnits, toBool, toNum, unitConversion, absOlsTermLabel } from '../tools/utils';\n\nclass GenericDSDetails extends Component {\n constructor(props) {\n super(props);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleUnitClick = this.handleUnitClick.bind(this);\n this.handleReload = this.handleReload.bind(this);\n }\n\n handleInputChange(event, field, layer, type = 'text') {\n const { genericDS } = this.props;\n const { properties } = genericDS;\n let value = '';\n switch (type) {\n case 'checkbox':\n value = event.target.checked;\n break;\n case 'select':\n value = event ? event.value : null;\n break;\n case 'formula-field':\n if (event.target) {\n ({ value } = event.target);\n } else {\n value = event;\n }\n break;\n case 'integer':\n ({ value } = event.target);\n value = Math.trunc(value);\n break;\n default:\n ({ value } = event.target);\n }\n properties.layers[`${layer}`].fields.find(e => e.field === field).value = value;\n if (type === 'system-defined' && (!properties.layers[`${layer}`].fields.find(e => e.field === field).value_system || properties.layers[`${layer}`].fields.find(e => e.field === field).value_system === '')) {\n const opt = properties.layers[`${layer}`].fields.find(e => e.field === field).option_layers;\n properties.layers[`${layer}`].fields.find(e => e.field === field).value_system = genUnits(opt)[0].key;\n }\n genericDS.properties = properties;\n genericDS.changed = true;\n // this.props.onChange('dataset', { target: { value: genericDS } });\n this.props.onChange(genericDS);\n }\n\n handleUnitClick(layer, obj) {\n const { genericDS } = this.props;\n const { properties } = genericDS;\n const newVal = unitConversion(obj.option_layers, obj.value_system, obj.value);\n properties.layers[`${layer}`].fields.find(e => e.field === obj.field).value_system = obj.value_system;\n properties.layers[`${layer}`].fields.find(e => e.field === obj.field).value = newVal;\n genericDS.properties = properties;\n genericDS.changed = true;\n // this.props.onChange('dataset', { target: { value: genericDS } });\n this.props.onChange(genericDS);\n }\n\n handleReload() {\n const { klass, genericDS } = this.props;\n if (klass.properties_release) {\n const newProps = cloneDeep(klass.properties_release);\n newProps.klass_uuid = klass.uuid;\n Object.keys(newProps.layers).forEach((key) => {\n const newLayer = newProps.layers[key] || {};\n const curFields =\n (genericDS.properties.layers[key] && genericDS.properties.layers[key].fields) || [];\n (newLayer.fields || []).forEach((f, idx) => {\n const curIdx = findIndex(curFields, o => o.field === f.field);\n if (curIdx >= 0) {\n const curVal = genericDS.properties.layers[key].fields[curIdx].value;\n const curType = typeof curVal;\n if (['select', 'text', 'textarea', 'formula-field'].includes(newProps.layers[key].fields[idx].type)) {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? curVal.toString() : '';\n }\n if (newProps.layers[key].fields[idx].type === 'integer') {\n newProps.layers[key].fields[idx].value =\n // eslint-disable-next-line no-restricted-globals\n (curType === 'undefined' || curType === 'boolean' || isNaN(curVal)) ? 0 : parseInt(curVal, 10);\n }\n if (newProps.layers[key].fields[idx].type === 'checkbox') {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? toBool(curVal) : false;\n }\n if (newProps.layers[key].fields[idx].type === 'system-defined') {\n const units = genUnits(newProps.layers[key].fields[idx].option_layers);\n const vs = units.find(u =>\n u.key === genericDS.properties.layers[key].fields[curIdx].value_system);\n newProps.layers[key].fields[idx].value_system = (vs && vs.key) || units[0].key;\n newProps.layers[key].fields[idx].value = toNum(curVal);\n }\n }\n });\n });\n genericDS.properties = newProps;\n genericDS.dataset_klass_id = klass.id;\n genericDS.klass_ols = klass.ols_term_id;\n genericDS.klass_label = klass.label;\n genericDS.changed = true;\n // this.props.onChange('dataset', { target: { value: genericDS } });\n this.props.onChange(genericDS);\n } else {\n // this.props.onChange('dataset', { target: { value: undefined } });\n this.props.onChange(undefined);\n }\n }\n\n elementalPropertiesItem(genericDS, klass) {\n const layersLayout = LayersLayout(\n genericDS.properties.layers,\n (klass.properties_release && klass.properties_release.select_options) || {},\n this.handleInputChange,\n () => {},\n this.handleUnitClick\n );\n return (<div style={{ margin: '5px' }}>{layersLayout}</div>);\n }\n\n render() {\n const {\n // eslint-disable-next-line no-unused-vars\n uiCtrl, genericDS, klass, kind\n } = this.props;\n if (uiCtrl && Object.keys(genericDS).length !== 0 && kind && kind !== '') {\n return (\n <Panel className=\"panel-detail\">\n <Panel.Body style={{ position: 'relative', minHeight: 260, overflowY: 'unset' }}>\n {this.elementalPropertiesItem(genericDS, klass)}\n <span className=\"g-ds-note label\">\n <span className=\"g-ds-title\">Note</span><br />\n Selected analysis type: {absOlsTermLabel(kind)}<br />\n Content is designed for: {genericDS.klass_label}\n </span>\n <ButtonToolbar className=\"pull-right\">\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id=\"_tooltip_reload\">click to reload the content template</Tooltip>}>\n <Button bsSize=\"xsmall\" bsStyle=\"danger\" onClick={() => this.handleReload()}>Reload</Button>\n </OverlayTrigger>\n </ButtonToolbar>\n </Panel.Body>\n </Panel>\n );\n }\n return null;\n }\n}\n\nGenericDSDetails.propTypes = {\n uiCtrl: PropTypes.bool.isRequired, // MatrixCheck(currentUser.matrix, 'genericDataset')\n kind: PropTypes.string, // selected analysis type\n genericDS: PropTypes.object,\n klass: PropTypes.object, // dataset_klass\n onChange: PropTypes.func.isRequired // change callback\n};\nGenericDSDetails.defaultProps = { kind: '', genericDS: {}, klass: {} };\n\n// export default DragDropContext(HTML5Backend)(GenericDSDetails);\nexport default GenericDSDetails;\n"],"file":"GenDSDetails.js"}