@maif/react-forms 1.0.7 → 1.0.8

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.
package/lib/form.js CHANGED
@@ -133,8 +133,8 @@ var CustomizableInput = function CustomizableInput(props) {
133
133
  };
134
134
 
135
135
  var defaultVal = function defaultVal(t, array, defaultValue) {
136
- if (!!array) return [];
137
136
  if (!!defaultValue) return defaultValue;
137
+ if (!!array) return [];
138
138
 
139
139
  switch (t) {
140
140
  case _type.type.bool:
@@ -144,7 +144,8 @@ var defaultVal = function defaultVal(t, array, defaultValue) {
144
144
  return 0;
145
145
 
146
146
  case _type.type.object:
147
- return {};
147
+ return undefined;
148
+ //todo: passur de moi
148
149
 
149
150
  case _type.type.string:
150
151
  return "";
@@ -162,7 +163,7 @@ var getDefaultValues = function getDefaultValues(flow, schema) {
162
163
  return _objectSpread(_objectSpread({}, acc), getDefaultValues(key.flow, schema));
163
164
  }
164
165
 
165
- return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, defaultVal(entry.type, entry.array, entry.defaultValue)));
166
+ return _objectSpread(_objectSpread({}, acc), {}, _defineProperty({}, key, defaultVal(entry.type, entry.array || entry.isMulti, entry.defaultValue)));
166
167
  }, {});
167
168
  };
168
169
 
@@ -333,14 +334,15 @@ var Form = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
333
334
  return !!errors[step];
334
335
  });
335
336
  return /*#__PURE__*/_react["default"].createElement(_index.Collapse, {
336
- key: idx,
337
+ key: "collapse-".concat(idx),
337
338
  label: entry.label,
338
339
  collapsed: entry.collapsed,
339
340
  errored: errored
340
- }, entry.flow.map(function (entry, idx) {
341
- var step = schema[entry];
341
+ }, entry.flow.map(function (entry, entryIdx) {
342
+ var step = schema[entry]; //FIXME: better key ==> entry name + idx
343
+
342
344
  return /*#__PURE__*/_react["default"].createElement(BasicWrapper, {
343
- key: idx,
345
+ key: "collapse-".concat(idx, "-").concat(entry, "-").concat(entryIdx),
344
346
  entry: entry,
345
347
  error: error,
346
348
  label: step.label || entry,
@@ -367,7 +369,7 @@ var Form = /*#__PURE__*/_react["default"].forwardRef(function (_ref2, ref) {
367
369
  return object && object[key];
368
370
  }, errors);
369
371
  return /*#__PURE__*/_react["default"].createElement(BasicWrapper, {
370
- key: idx,
372
+ key: "".concat(entry, "-").concat(idx),
371
373
  entry: entry,
372
374
  error: error,
373
375
  label: step.label || entry,
@@ -973,15 +975,20 @@ var ArrayStep = function ArrayStep(_ref15) {
973
975
  append = _useFieldArray.append,
974
976
  remove = _useFieldArray.remove;
975
977
 
978
+ console.log({
979
+ fields: fields
980
+ });
976
981
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, fields.map(function (field, idx) {
977
982
  return /*#__PURE__*/_react["default"].createElement("div", {
978
983
  key: field.id,
979
984
  className: "d-flex flex-row"
985
+ }, /*#__PURE__*/_react["default"].createElement("div", {
986
+ className: "flex-grow-1"
980
987
  }, component(_objectSpread(_objectSpread({
981
988
  key: field.id
982
989
  }, field), {}, {
983
990
  defaultValue: values[idx] || defaultValue
984
- }), idx), /*#__PURE__*/_react["default"].createElement("div", {
991
+ }), idx)), /*#__PURE__*/_react["default"].createElement("div", {
985
992
  className: "input-group-append"
986
993
  }, /*#__PURE__*/_react["default"].createElement("button", {
987
994
  className: "btn btn-danger btn-sm",
@@ -997,7 +1004,7 @@ var ArrayStep = function ArrayStep(_ref15) {
997
1004
  }),
998
1005
  onClick: function onClick() {
999
1006
  append({
1000
- value: defaultValue
1007
+ value: step.addableDefaultValue
1001
1008
  });
1002
1009
  trigger(entry);
1003
1010
  },
@@ -84,7 +84,7 @@ var ArrayInput = function ArrayInput(props) {
84
84
  });
85
85
  }
86
86
  }
87
- }, [props, value]);
87
+ }, [props.optionsFrom]);
88
88
 
89
89
  var handleChanges = function handleChanges(changes) {
90
90
  props.onChange(changes.map(function (x) {
@@ -1,4 +1,5 @@
1
- export function CodeInput({ onChange, value, className, readOnly, theme, mode }: {
1
+ export function CodeInput({ onChange, value, className, readOnly, theme, mode, ...props }: {
2
+ [x: string]: any;
2
3
  onChange: any;
3
4
  value: any;
4
5
  className?: string | undefined;
@@ -9,6 +9,8 @@ var _react = _interopRequireDefault(require("react"));
9
9
 
10
10
  var _reactAce = _interopRequireDefault(require("react-ace"));
11
11
 
12
+ var _extBeautify = _interopRequireDefault(require("ace-builds/src-noconflict/ext-beautify"));
13
+
12
14
  require("ace-builds/src-noconflict/mode-html");
13
15
 
14
16
  require("ace-builds/src-noconflict/mode-json");
@@ -27,8 +29,14 @@ require("ace-builds/src-noconflict/ext-searchbox");
27
29
 
28
30
  require("ace-builds/src-noconflict/ext-language_tools");
29
31
 
32
+ var _excluded = ["onChange", "value", "className", "readOnly", "theme", "mode"];
33
+
30
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
31
35
 
36
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
37
+
38
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
39
+
32
40
  var CodeInput = function CodeInput(_ref) {
33
41
  var onChange = _ref.onChange,
34
42
  value = _ref.value,
@@ -38,8 +46,11 @@ var CodeInput = function CodeInput(_ref) {
38
46
  _ref$theme = _ref.theme,
39
47
  theme = _ref$theme === void 0 ? 'monokai' : _ref$theme,
40
48
  _ref$mode = _ref.mode,
41
- mode = _ref$mode === void 0 ? 'javascript' : _ref$mode;
49
+ mode = _ref$mode === void 0 ? 'javascript' : _ref$mode,
50
+ props = _objectWithoutProperties(_ref, _excluded);
51
+
42
52
  return /*#__PURE__*/_react["default"].createElement(_reactAce["default"], {
53
+ commands: _extBeautify["default"].commands,
43
54
  className: className,
44
55
  readOnly: readOnly,
45
56
  style: {
@@ -54,8 +65,15 @@ var CodeInput = function CodeInput(_ref) {
54
65
  editorProps: {
55
66
  $blockScrolling: true
56
67
  },
57
- height: "300px",
58
- width: "100%",
68
+ onLoad: function onLoad(editorInstance) {
69
+ editorInstance.container.style.resize = "both"; // mouseup = css resize end
70
+
71
+ document.addEventListener("mouseup", function (e) {
72
+ return editorInstance.resize();
73
+ });
74
+ },
75
+ height: props.height,
76
+ width: props.width,
59
77
  showGutter: true,
60
78
  tabSize: 2,
61
79
  highlightActiveLine: true,
@@ -1,2 +1 @@
1
1
  export function Collapse(props: any): JSX.Element;
2
- export function Panel(props: any): JSX.Element;
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.Panel = exports.Collapse = void 0;
8
+ exports.Collapse = void 0;
9
9
 
10
10
  var _classnames = _interopRequireDefault(require("classnames"));
11
11
 
@@ -13,6 +13,8 @@ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _reactFeather = require("react-feather");
15
15
 
16
+ var _styleContext = require("../styleContext");
17
+
16
18
  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); }
17
19
 
18
20
  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; }
@@ -37,6 +39,8 @@ var Collapse = function Collapse(props) {
37
39
  collapsed = _useState2[0],
38
40
  setCollapsed = _useState2[1];
39
41
 
42
+ var classes = (0, _styleContext.useCustomStyle)();
43
+
40
44
  var toggle = function toggle(e) {
41
45
  if (e && e.preventDefault) e.preventDefault();
42
46
  setCollapsed(!collapsed);
@@ -47,58 +51,15 @@ var Collapse = function Collapse(props) {
47
51
  errored: props.errored
48
52
  })
49
53
  }, /*#__PURE__*/_react["default"].createElement("hr", null), /*#__PURE__*/_react["default"].createElement("div", {
50
- className: "form-group row"
51
- }, /*#__PURE__*/_react["default"].createElement("div", {
52
- className: "col-sm-12",
53
- onClick: toggle,
54
- style: {
55
- cursor: 'pointer'
56
- }
54
+ className: "".concat(classes.cursor_pointer, " ").concat(classes.flex, " ").concat(classes.justifyContentBetween),
55
+ onClick: toggle
57
56
  }, /*#__PURE__*/_react["default"].createElement("span", {
58
- className: "form__collapse__label",
59
- style: {
60
- fontWeight: 'bold',
61
- marginTop: 7
62
- }
57
+ className: classes.collapse_label
63
58
  }, props.label), /*#__PURE__*/_react["default"].createElement("button", {
64
59
  type: "button",
65
- className: "btn btn-access-negative pull-right btn-sm",
66
- style: {
67
- "float": 'right'
68
- },
69
- onClick: toggle
70
- }, !!collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.Eye, null), !collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.EyeOff, null)))), !collapsed && props.children, props.lineEnd && /*#__PURE__*/_react["default"].createElement("hr", null));
71
- };
72
-
73
- exports.Collapse = Collapse;
74
-
75
- var Panel = function Panel(props) {
76
- var _useState3 = (0, _react.useState)(props.initCollapsed || props.collapsed),
77
- _useState4 = _slicedToArray(_useState3, 2),
78
- collapsed = _useState4[0],
79
- setCollapsed = _useState4[1];
80
-
81
- var toggle = function toggle(e) {
82
- if (e && e.preventDefault) e.preventDefault();
83
- setCollapsed(!collapsed);
84
- };
85
-
86
- return /*#__PURE__*/_react["default"].createElement("div", {
87
- className: "col-xs-12 col-sm-3"
88
- }, /*#__PURE__*/_react["default"].createElement("div", {
89
- className: "panel panel-primary",
90
- style: {
91
- marginBottom: 0
92
- }
93
- }, /*#__PURE__*/_react["default"].createElement("div", {
94
- className: "panel-heading",
95
- style: {
96
- cursor: 'pointer'
97
- },
60
+ className: classes.btn,
98
61
  onClick: toggle
99
- }, props.title), !collapsed && /*#__PURE__*/_react["default"].createElement("div", {
100
- className: "panel-body"
101
- }, props.children)));
62
+ }, !!collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.Eye, null), !collapsed && /*#__PURE__*/_react["default"].createElement(_reactFeather.EyeOff, null))), !collapsed && props.children, props.lineEnd && /*#__PURE__*/_react["default"].createElement("hr", null));
102
63
  };
103
64
 
104
- exports.Panel = Panel;
65
+ exports.Collapse = Collapse;
@@ -15,6 +15,8 @@ var _reactSelect = _interopRequireDefault(require("react-select"));
15
15
 
16
16
  var _Option = require("../Option");
17
17
 
18
+ var _utils = require("../utils");
19
+
18
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
21
 
20
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); }
@@ -46,28 +48,31 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
46
48
  var valueToSelectOption = function valueToSelectOption(value) {
47
49
  var possibleValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
48
50
  var isMulti = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
51
+ var maybeTransformer = arguments.length > 3 ? arguments[3] : undefined;
49
52
 
50
53
  if (value === null) {
51
54
  return null;
52
55
  }
53
56
 
54
57
  if (isMulti) {
55
- return value.map(function (x) {
56
- return valueToSelectOption(x, possibleValues, false);
57
- });
58
+ return (0, _Option.option)(value).map(function (v) {
59
+ return v.map(function (x) {
60
+ return valueToSelectOption(x, possibleValues, false, maybeTransformer);
61
+ });
62
+ }).getOrElse([]);
58
63
  }
59
64
 
60
65
  var maybeValue = (0, _Option.option)(possibleValues.find(function (v) {
61
- return v.value === value;
66
+ return (0, _utils.deepEqual)(v.value, value);
62
67
  }));
63
- return {
68
+ return maybeValue.getOrElse({
64
69
  label: maybeValue.map(function (v) {
65
70
  return v.label;
66
71
  }).getOrElse(value),
67
72
  value: maybeValue.map(function (v) {
68
73
  return v.value;
69
74
  }).getOrElse(value)
70
- };
75
+ });
71
76
  };
72
77
 
73
78
  var SelectInput = function SelectInput(props) {
@@ -90,13 +95,13 @@ var SelectInput = function SelectInput(props) {
90
95
  values = _useState4[0],
91
96
  setValues = _useState4[1];
92
97
 
93
- var _useState5 = (0, _react.useState)(valueToSelectOption(props.value || props.defaultValue, possibleValues, props.isMulti)),
98
+ var _useState5 = (0, _react.useState)(valueToSelectOption(props.value || props.defaultValue, possibleValues, props.isMulti, props.transformer)),
94
99
  _useState6 = _slicedToArray(_useState5, 2),
95
100
  value = _useState6[0],
96
101
  setValue = _useState6[1];
97
102
 
98
103
  (0, _react.useEffect)(function () {
99
- setValue(valueToSelectOption(props.value, values, props.isMulti));
104
+ setValue(valueToSelectOption(props.value, values, props.isMulti, props.transformer));
100
105
  }, [props.value, values]);
101
106
  (0, _react.useEffect)(function () {
102
107
  if (props.optionsFrom) {
@@ -110,7 +115,7 @@ var SelectInput = function SelectInput(props) {
110
115
  return r.json();
111
116
  }).then(function (values) {
112
117
  return values.map(function (x) {
113
- return props.transformer ? props.transformer(x) : valueToSelectOption(x);
118
+ return props.transformer ? props.transformer(x) : valueToSelectOption(x, values, props.isMulti, props.transformer);
114
119
  });
115
120
  }).then(function (values) {
116
121
  setValues(values);
@@ -121,7 +126,7 @@ var SelectInput = function SelectInput(props) {
121
126
  });
122
127
  }
123
128
  }
124
- }, [values, props.isMulti]);
129
+ }, [props.optionsFrom]);
125
130
 
126
131
  var onChange = function onChange(changes) {
127
132
  setValue(changes);
@@ -135,11 +140,21 @@ var SelectInput = function SelectInput(props) {
135
140
  }
136
141
  };
137
142
 
138
- var createOption = function createOption(option) {
139
- var fn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
140
- fn(option);
141
- setValues([].concat(_toConsumableArray(values), [valueToSelectOption(option, values)]));
142
- onChange([].concat(_toConsumableArray(value), [valueToSelectOption(option, [].concat(_toConsumableArray(values), [valueToSelectOption(option, values)]))]));
143
+ var handleCreate = function handleCreate(label, fn) {
144
+ var createdValue = (0, _Option.option)(fn).map(function (func) {
145
+ return func(label);
146
+ }).map(function (createdOpt) {
147
+ return (0, _Option.option)(props.transformer).map(function (t) {
148
+ return t(createdOpt);
149
+ }).getOrElse(createdOpt);
150
+ }).getOrElse(valueToSelectOption(label, values));
151
+ setValues([].concat(_toConsumableArray(values), [createdValue]));
152
+
153
+ if (props.isMulti) {
154
+ onChange([].concat(_toConsumableArray(value), [createdValue]));
155
+ } else {
156
+ onChange(createdValue);
157
+ }
143
158
  };
144
159
 
145
160
  if (props.createOption) {
@@ -153,7 +168,7 @@ var SelectInput = function SelectInput(props) {
153
168
  onChange: onChange,
154
169
  options: values,
155
170
  onCreateOption: function onCreateOption(option) {
156
- return props.onCreateOption ? createOption(option, props.onCreateOption) : createOption(option);
171
+ return handleCreate(option, props.onCreateOption);
157
172
  },
158
173
  classNamePrefix: "react-form-select",
159
174
  className: props.className
package/lib/style.d.ts CHANGED
@@ -109,13 +109,16 @@ export namespace style {
109
109
  const display_1: string;
110
110
  export { display_1 as display };
111
111
  }
112
- namespace flexDirection {
113
- const flexDirection_1: string;
114
- export { flexDirection_1 as flexDirection };
112
+ namespace flexColumn {
113
+ const flexDirection: string;
115
114
  }
116
- namespace jc_end {
115
+ namespace justifyContentBetween {
117
116
  const justifyContent: string;
118
117
  }
118
+ namespace jc_end {
119
+ const justifyContent_1: string;
120
+ export { justifyContent_1 as justifyContent };
121
+ }
119
122
  namespace ac_center {
120
123
  const alignContent: string;
121
124
  }
@@ -129,8 +132,8 @@ export namespace style {
129
132
  namespace collapse {
130
133
  const display_2: string;
131
134
  export { display_2 as display };
132
- const justifyContent_1: string;
133
- export { justifyContent_1 as justifyContent };
135
+ const justifyContent_2: string;
136
+ export { justifyContent_2 as justifyContent };
134
137
  const cursor_2: string;
135
138
  export { cursor_2 as cursor };
136
139
  }
package/lib/style.js CHANGED
@@ -108,9 +108,12 @@ var style = {
108
108
  flex: {
109
109
  display: "flex"
110
110
  },
111
- flexDirection: {
111
+ flexColumn: {
112
112
  flexDirection: "column"
113
113
  },
114
+ justifyContentBetween: {
115
+ justifyContent: "space-between"
116
+ },
114
117
  jc_end: {
115
118
  justifyContent: "end"
116
119
  },
@@ -1 +1 @@
1
- export function useCustomStyle(overrideStyle?: {}): import("jss").Classes<"code" | "flex" | "flexDirection" | "input" | "btn" | "btn_sm" | "btn_group" | "btn_red" | "btn_green" | "btn_blue" | "btn_grey" | "txt_red" | "ml_5" | "ml_10" | "mt_5" | "mt_10" | "mt_20" | "mb_5" | "p_15" | "pr_15" | "d_none" | "jc_end" | "ac_center" | "ai_center" | "cursor_pointer" | "collapse" | "collapse_label" | "datepicker" | "input__boolean__on" | "input__boolean__off">;
1
+ export function useCustomStyle(overrideStyle?: {}): import("jss").Classes<"code" | "flex" | "input" | "btn" | "btn_sm" | "btn_group" | "btn_red" | "btn_green" | "btn_blue" | "btn_grey" | "txt_red" | "ml_5" | "ml_10" | "mt_5" | "mt_10" | "mt_20" | "mb_5" | "p_15" | "pr_15" | "d_none" | "flexColumn" | "justifyContentBetween" | "jc_end" | "ac_center" | "ai_center" | "cursor_pointer" | "collapse" | "collapse_label" | "datepicker" | "input__boolean__on" | "input__boolean__off">;
package/lib/utils.d.ts ADDED
@@ -0,0 +1 @@
1
+ export function deepEqual(a: any, b: any): boolean;
package/lib/utils.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deepEqual = void 0;
7
+
8
+ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
9
+
10
+ var deepEqual = function deepEqual(a, b) {
11
+ if (a === b) return true;
12
+ if (_typeof(a) !== 'object' || _typeof(b) !== 'object' || a === null || b === null) return false;
13
+ var keysA = Object.keys(a),
14
+ keysB = Object.keys(b);
15
+ if (keysA.length !== keysB.length) return false;
16
+
17
+ for (var _i = 0, _keysA = keysA; _i < _keysA.length; _i++) {
18
+ var key = _keysA[_i];
19
+ if (!keysB.includes(key)) return false;
20
+
21
+ if (typeof a[key] === 'function' || typeof b[key] === 'function') {
22
+ if (a[key].toString() !== b[key].toString()) return false;
23
+ } else {
24
+ if (!deepEqual(a[key], b[key])) return false;
25
+ }
26
+ }
27
+
28
+ return true;
29
+ };
30
+
31
+ exports.deepEqual = deepEqual;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@maif/react-forms",
3
3
  "description": "Build react safe forms as fast as possible",
4
- "version": "1.0.7",
4
+ "version": "1.0.8",
5
5
  "main": "lib/index.js",
6
6
  "author": "MAIF team",
7
7
  "keywords": [