@synerise/ds-form 0.3.0 → 0.5.0

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/CHANGELOG.md CHANGED
@@ -3,6 +3,36 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [0.5.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-form@0.4.0...@synerise/ds-form@0.5.0) (2022-08-31)
7
+
8
+
9
+ ### Features
10
+
11
+ * **form:** add onClickDelete to editable-list ([95c67a6](https://github.com/Synerise/synerise-design/commit/95c67a693c31d4b60532bd6fc62cdb0f885d8560))
12
+
13
+
14
+
15
+
16
+
17
+ # [0.4.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-form@0.3.1...@synerise/ds-form@0.4.0) (2022-08-29)
18
+
19
+
20
+ ### Features
21
+
22
+ * **form:** add index for render column functions in EditableList ([54a2699](https://github.com/Synerise/synerise-design/commit/54a26997a4b6d136273da47f20b14ff17939119b))
23
+
24
+
25
+
26
+
27
+
28
+ ## [0.3.1](https://github.com/Synerise/synerise-design/compare/@synerise/ds-form@0.3.0...@synerise/ds-form@0.3.1) (2022-08-25)
29
+
30
+ **Note:** Version bump only for package @synerise/ds-form
31
+
32
+
33
+
34
+
35
+
6
36
  # [0.3.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-form@0.2.19...@synerise/ds-form@0.3.0) (2022-08-22)
7
37
 
8
38
 
@@ -0,0 +1,10 @@
1
+ describe('editable-list', function () {
2
+ it.todo('is able to invalidate every second row'
3
+ /* () => {
4
+ const container = renderWithProvider(<EditableList value={[{}, {}, {}, {}]} renderLeftColumn={(param, i) => <input className={i % 2 == 'error' : ''}/>}>)
5
+ container.querySelectorAll('.error')
6
+ return render
7
+ } */
8
+ );
9
+ it.todo('onClickDelete is called when removing items (and has removed item and its index)');
10
+ });
@@ -15,6 +15,8 @@ export var EditableList = function EditableList(_ref) {
15
15
  _onChange = _ref.onChange,
16
16
  textAddButton = _ref.textAddButton,
17
17
  onSearch = _ref.onSearch,
18
+ onClickAddRow = _ref.onClickAddRow,
19
+ onClickDelete = _ref.onClickDelete,
18
20
  renderAddButton = _ref.renderAddButton,
19
21
  renderLeftColumn = _ref.renderLeftColumn,
20
22
  renderRightColumn = _ref.renderRightColumn,
@@ -37,6 +39,16 @@ export var EditableList = function EditableList(_ref) {
37
39
  React.useEffect(function () {
38
40
  setParams(value);
39
41
  }, [value]);
42
+
43
+ var onSetParamsDefault = function onSetParamsDefault() {
44
+ return setParams(function (prevParams) {
45
+ return [].concat(prevParams || [], [{
46
+ name: '',
47
+ value: ''
48
+ }]);
49
+ });
50
+ };
51
+
40
52
  return /*#__PURE__*/React.createElement("div", null, params == null ? void 0 : params.map(function (param, id) {
41
53
  var _renderLeftColumn, _renderRightColumn;
42
54
 
@@ -45,7 +57,7 @@ export var EditableList = function EditableList(_ref) {
45
57
  // eslint-disable-next-line react/no-array-index-key
46
58
  React.createElement(S.RowWrapper, {
47
59
  key: id
48
- }, (_renderLeftColumn = renderLeftColumn == null ? void 0 : renderLeftColumn(param)) != null ? _renderLeftColumn : /*#__PURE__*/React.createElement(S.AutoCompleteWrapper, null, /*#__PURE__*/React.createElement(Autocomplete, {
60
+ }, (_renderLeftColumn = renderLeftColumn == null ? void 0 : renderLeftColumn(param, id)) != null ? _renderLeftColumn : /*#__PURE__*/React.createElement(S.AutoCompleteWrapper, null, /*#__PURE__*/React.createElement(Autocomplete, {
49
61
  style: {
50
62
  width: 350
51
63
  },
@@ -57,7 +69,7 @@ export var EditableList = function EditableList(_ref) {
57
69
  if (_onChange) _onChange(newParams);
58
70
  },
59
71
  label: id === 0 ? leftColumnName : null
60
- }, autocompleteOptions)), (_renderRightColumn = renderRightColumn == null ? void 0 : renderRightColumn(param)) != null ? _renderRightColumn : /*#__PURE__*/React.createElement(S.InputWrapper, null, /*#__PURE__*/React.createElement(Input, {
72
+ }, autocompleteOptions)), (_renderRightColumn = renderRightColumn == null ? void 0 : renderRightColumn(param, id)) != null ? _renderRightColumn : /*#__PURE__*/React.createElement(S.InputWrapper, null, /*#__PURE__*/React.createElement(Input, {
61
73
  value: param.value,
62
74
  onChange: function onChange(ev) {
63
75
  var newParams = paramsWithNewValue(id, param.name, ev.target.value);
@@ -68,23 +80,24 @@ export var EditableList = function EditableList(_ref) {
68
80
  width: '300px'
69
81
  },
70
82
  label: id === 0 ? rightColumnName : null
71
- })), renderAdditionalColumn == null ? void 0 : renderAdditionalColumn(), typeof renderActions === 'function' && (renderActions == null ? void 0 : renderActions(param, id, params)) || renderActions === true && /*#__PURE__*/React.createElement(S.CrudWrapper, {
83
+ })), renderAdditionalColumn == null ? void 0 : renderAdditionalColumn(), typeof renderActions === 'function' && (renderActions == null ? void 0 : renderActions(param, id, params, {
84
+ onClickDelete: onClickDelete
85
+ })) || renderActions === true && /*#__PURE__*/React.createElement(S.CrudWrapper, {
72
86
  marginWithLabel: id === 0 ? leftColumnName : null
73
87
  }, /*#__PURE__*/React.createElement(Cruds, {
74
88
  onRemove: function onRemove() {
75
- return setParams([].concat(params.slice(0, id), params.slice(id + 1, params.length)));
89
+ var newParams = params ? [].concat(params.slice(0, id), params.slice(id + 1, params.length)) : [];
90
+
91
+ if (onClickDelete) {
92
+ onClickDelete(param, id, newParams);
93
+ } else {
94
+ setParams(newParams);
95
+ }
76
96
  }
77
97
  })) || undefined)
78
98
  );
79
99
  }), (_renderAddButton = renderAddButton == null ? void 0 : renderAddButton()) != null ? _renderAddButton : /*#__PURE__*/React.createElement(S.ButtonWrapper, null, /*#__PURE__*/React.createElement(S.AddButton, {
80
- onClick: function onClick() {
81
- return setParams(function (prevParams) {
82
- return [].concat(prevParams || [], [{
83
- name: '',
84
- value: ''
85
- }]);
86
- });
87
- },
100
+ onClick: onClickAddRow || onSetParamsDefault,
88
101
  type: "ghost-primary"
89
102
  }, /*#__PURE__*/React.createElement(S.AddIconWrapper, null, /*#__PURE__*/React.createElement(Icon, {
90
103
  component: /*#__PURE__*/React.createElement(Add3M, null),
@@ -3,7 +3,7 @@ import Button from '@synerise/ds-button';
3
3
  export var RowWrapper = styled.div.withConfig({
4
4
  displayName: "editable-liststyles__RowWrapper",
5
5
  componentId: "ctaimf-0"
6
- })(["@media (min-width:1280px){display:flex;padding:8px 200px 8px 0px;align-items:center;}padding:8px 0px 8px 0px;"]);
6
+ })(["@media (min-width:1280px){display:flex;padding:8px 200px 8px 0px;align-items:start;}padding:8px 0px 8px 0px;"]);
7
7
  export var AutoCompleteWrapper = styled.div.withConfig({
8
8
  displayName: "editable-liststyles__AutoCompleteWrapper",
9
9
  componentId: "ctaimf-1"
@@ -23,8 +23,8 @@ export var AddIconWrapper = styled.div.withConfig({
23
23
  export var CrudWrapper = styled.div.withConfig({
24
24
  displayName: "editable-liststyles__CrudWrapper",
25
25
  componentId: "ctaimf-5"
26
- })(["padding-left:4px;margin:", ";"], function (props) {
27
- return props.marginWithLabel ? '8px 0 0' : '0 0 16px';
26
+ })(["padding-left:4px;margin-top:", ";"], function (props) {
27
+ return props.marginWithLabel ? '30px' : '4px';
28
28
  });
29
29
  export var InputWrapper = styled.div.withConfig({
30
30
  displayName: "editable-liststyles__InputWrapper",
@@ -10,10 +10,12 @@ export declare type EditListProps = {
10
10
  value?: EditableParam[];
11
11
  onChange?: (params: EditableParam[]) => void;
12
12
  onSearch?: (query: string) => void;
13
+ onClickAddRow?: () => void;
14
+ onClickDelete?: (param?: EditableParam, index?: number, params?: EditableParam[]) => void;
13
15
  textAddButton?: string;
14
16
  renderAddButton?: (params?: EditableParam[]) => JSX.Element;
15
- renderLeftColumn?: (props?: EditableParam) => JSX.Element;
16
- renderRightColumn?: (props?: EditableParam, ref?: React.ClassAttributes<{}>['ref']) => JSX.Element;
17
+ renderLeftColumn?: (param?: EditableParam, index?: number) => JSX.Element;
18
+ renderRightColumn?: (param?: EditableParam, index?: number, ref?: React.ClassAttributes<{}>['ref']) => JSX.Element;
17
19
  renderAdditionalColumn?: (row?: EditableParam[]) => JSX.Element;
18
- renderActions?: boolean | ((param?: EditableParam, idx?: number, params?: EditableParam[]) => JSX.Element);
20
+ renderActions?: boolean | ((param?: EditableParam, idx?: number, params?: EditableParam[], actionsCallbacks?: object) => JSX.Element);
19
21
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-form",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Form UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "Synerise/synerise-design",
@@ -32,11 +32,11 @@
32
32
  ],
33
33
  "types": "dist/index.d.ts",
34
34
  "dependencies": {
35
- "@synerise/ds-button": "^0.17.2",
36
- "@synerise/ds-cruds": "^0.3.9",
35
+ "@synerise/ds-button": "^0.17.8",
36
+ "@synerise/ds-cruds": "^0.3.16",
37
37
  "@synerise/ds-divider": "^0.5.19",
38
- "@synerise/ds-icon": "^0.49.0",
39
- "@synerise/ds-input": "^0.18.10",
38
+ "@synerise/ds-icon": "^0.50.0",
39
+ "@synerise/ds-input": "^0.18.18",
40
40
  "@synerise/ds-typography": "^0.12.7"
41
41
  },
42
42
  "peerDependencies": {
@@ -46,5 +46,5 @@
46
46
  "devDependencies": {
47
47
  "@synerise/ds-utils": "^0.22.8"
48
48
  },
49
- "gitHead": "44b5cd564f1f5d1b2d896849591aa5297ba26f30"
49
+ "gitHead": "46da8adb55d48c5b05bad4ce548b4f13e37c09c1"
50
50
  }