@synerise/ds-form 0.2.17 → 0.3.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,23 +3,25 @@
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.2.17](https://github.com/Synerise/synerise-design/compare/@synerise/ds-form@0.2.16...@synerise/ds-form@0.2.17) (2022-08-04)
7
-
8
- **Note:** Version bump only for package @synerise/ds-form
6
+ # [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)
9
7
 
10
8
 
9
+ ### Bug Fixes
11
10
 
11
+ * **form:** editable-list imports refactor and fix + export in index.ts ([369a6d9](https://github.com/Synerise/synerise-design/commit/369a6d9f8c7aa562eb860fcb105b1f2d1c0b2a99))
12
+ * **form:** initial value, renderProps in EditableList ([9f6ffeb](https://github.com/Synerise/synerise-design/commit/9f6ffeb40efb8e77f16692c5d2f4c91b4e563536))
12
13
 
13
14
 
14
- ## [0.2.16](https://github.com/Synerise/synerise-design/compare/@synerise/ds-form@0.2.14...@synerise/ds-form@0.2.16) (2022-08-04)
15
+ ### Features
15
16
 
16
- **Note:** Version bump only for package @synerise/ds-form
17
+ * **form:** add new component editable-list ([3f3331c](https://github.com/Synerise/synerise-design/commit/3f3331c6e832f396c7f26123539fe074be35e498))
18
+ * **form:** add new component editable-list ([35edb08](https://github.com/Synerise/synerise-design/commit/35edb08fc02079b04ae828664c618849cedb3525))
17
19
 
18
20
 
19
21
 
20
22
 
21
23
 
22
- ## [0.2.15](https://github.com/Synerise/synerise-design/compare/@synerise/ds-form@0.2.14...@synerise/ds-form@0.2.15) (2022-08-04)
24
+ ## [0.2.19](https://github.com/Synerise/synerise-design/compare/@synerise/ds-form@0.2.14...@synerise/ds-form@0.2.19) (2022-08-11)
23
25
 
24
26
  **Note:** Version bump only for package @synerise/ds-form
25
27
 
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { EditListProps } from './editable-list.types';
3
+ export declare const EditableList: React.FC<EditListProps>;
4
+ export default EditableList;
@@ -0,0 +1,95 @@
1
+ import { Input } from '@synerise/ds-input';
2
+ import Autocomplete from '@synerise/ds-autocomplete';
3
+ import * as React from 'react';
4
+ import theme from '@synerise/ds-core/dist/js/DSProvider/ThemeProvider/theme';
5
+ import Icon, { Add3M } from '@synerise/ds-icon';
6
+ import Cruds from '@synerise/ds-cruds';
7
+ import * as S from './editable-list.styles';
8
+ export var EditableList = function EditableList(_ref) {
9
+ var _renderAddButton;
10
+
11
+ var leftColumnName = _ref.leftColumnName,
12
+ rightColumnName = _ref.rightColumnName,
13
+ autocompleteOptions = _ref.autocompleteOptions,
14
+ value = _ref.value,
15
+ _onChange = _ref.onChange,
16
+ textAddButton = _ref.textAddButton,
17
+ onSearch = _ref.onSearch,
18
+ renderAddButton = _ref.renderAddButton,
19
+ renderLeftColumn = _ref.renderLeftColumn,
20
+ renderRightColumn = _ref.renderRightColumn,
21
+ renderAdditionalColumn = _ref.renderAdditionalColumn,
22
+ renderActions = _ref.renderActions;
23
+
24
+ var _React$useState = React.useState([]),
25
+ params = _React$useState[0],
26
+ setParams = _React$useState[1];
27
+
28
+ var paramsWithNewValue = function paramsWithNewValue(id, name, newValue) {
29
+ var updatedParams = [].concat(params || []);
30
+ updatedParams[id] = {
31
+ name: name,
32
+ value: newValue
33
+ };
34
+ return updatedParams;
35
+ };
36
+
37
+ React.useEffect(function () {
38
+ setParams(value);
39
+ }, [value]);
40
+ return /*#__PURE__*/React.createElement("div", null, params == null ? void 0 : params.map(function (param, id) {
41
+ var _renderLeftColumn, _renderRightColumn;
42
+
43
+ return (
44
+ /*#__PURE__*/
45
+ // eslint-disable-next-line react/no-array-index-key
46
+ React.createElement(S.RowWrapper, {
47
+ key: id
48
+ }, (_renderLeftColumn = renderLeftColumn == null ? void 0 : renderLeftColumn(param)) != null ? _renderLeftColumn : /*#__PURE__*/React.createElement(S.AutoCompleteWrapper, null, /*#__PURE__*/React.createElement(Autocomplete, {
49
+ style: {
50
+ width: 350
51
+ },
52
+ onSearch: onSearch,
53
+ value: param.name,
54
+ onChange: function onChange(paramName) {
55
+ var newParams = paramsWithNewValue(id, paramName, param.value);
56
+ setParams(newParams);
57
+ if (_onChange) _onChange(newParams);
58
+ },
59
+ 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, {
61
+ value: param.value,
62
+ onChange: function onChange(ev) {
63
+ var newParams = paramsWithNewValue(id, param.name, ev.target.value);
64
+ setParams(newParams);
65
+ if (_onChange) _onChange(newParams);
66
+ },
67
+ style: {
68
+ width: '300px'
69
+ },
70
+ 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, {
72
+ marginWithLabel: id === 0 ? leftColumnName : null
73
+ }, /*#__PURE__*/React.createElement(Cruds, {
74
+ onRemove: function onRemove() {
75
+ return setParams([].concat(params.slice(0, id), params.slice(id + 1, params.length)));
76
+ }
77
+ })) || undefined)
78
+ );
79
+ }), (_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
+ },
88
+ type: "ghost-primary"
89
+ }, /*#__PURE__*/React.createElement(S.AddIconWrapper, null, /*#__PURE__*/React.createElement(Icon, {
90
+ component: /*#__PURE__*/React.createElement(Add3M, null),
91
+ size: 24,
92
+ color: theme.palette['blue-600']
93
+ })), /*#__PURE__*/React.createElement("span", null, textAddButton))));
94
+ };
95
+ export default EditableList;
@@ -0,0 +1,10 @@
1
+ import Button from '@synerise/ds-button';
2
+ export declare const RowWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ export declare const AutoCompleteWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export declare const ButtonWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
5
+ export declare const AddButton: import("styled-components").StyledComponent<typeof Button, any, {}, never>;
6
+ export declare const AddIconWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
7
+ export declare const CrudWrapper: import("styled-components").StyledComponent<"div", any, {
8
+ marginWithLabel?: boolean | React.ReactNode;
9
+ }, never>;
10
+ export declare const InputWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -0,0 +1,32 @@
1
+ import styled from 'styled-components';
2
+ import Button from '@synerise/ds-button';
3
+ export var RowWrapper = styled.div.withConfig({
4
+ displayName: "editable-liststyles__RowWrapper",
5
+ componentId: "ctaimf-0"
6
+ })(["@media (min-width:1280px){display:flex;padding:8px 200px 8px 0px;align-items:center;}padding:8px 0px 8px 0px;"]);
7
+ export var AutoCompleteWrapper = styled.div.withConfig({
8
+ displayName: "editable-liststyles__AutoCompleteWrapper",
9
+ componentId: "ctaimf-1"
10
+ })(["padding-right:10px;margin-bottom:15px;"]);
11
+ export var ButtonWrapper = styled.div.withConfig({
12
+ displayName: "editable-liststyles__ButtonWrapper",
13
+ componentId: "ctaimf-2"
14
+ })([""]);
15
+ export var AddButton = styled(Button).withConfig({
16
+ displayName: "editable-liststyles__AddButton",
17
+ componentId: "ctaimf-3"
18
+ })(["span{padding:0 4px;}"]);
19
+ export var AddIconWrapper = styled.div.withConfig({
20
+ displayName: "editable-liststyles__AddIconWrapper",
21
+ componentId: "ctaimf-4"
22
+ })(["display:inline-block;"]);
23
+ export var CrudWrapper = styled.div.withConfig({
24
+ displayName: "editable-liststyles__CrudWrapper",
25
+ componentId: "ctaimf-5"
26
+ })(["padding-left:4px;margin:", ";"], function (props) {
27
+ return props.marginWithLabel ? '8px 0 0' : '0 0 16px';
28
+ });
29
+ export var InputWrapper = styled.div.withConfig({
30
+ displayName: "editable-liststyles__InputWrapper",
31
+ componentId: "ctaimf-6"
32
+ })(["padding-left:4px;"]);
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ export declare type EditableParam = {
3
+ name: string;
4
+ value: string;
5
+ };
6
+ export declare type EditListProps = {
7
+ autocompleteOptions?: string | React.ReactNode;
8
+ leftColumnName?: string | React.ReactNode;
9
+ rightColumnName?: string | React.ReactNode;
10
+ value?: EditableParam[];
11
+ onChange?: (params: EditableParam[]) => void;
12
+ onSearch?: (query: string) => void;
13
+ textAddButton?: string;
14
+ renderAddButton?: (params?: EditableParam[]) => JSX.Element;
15
+ renderLeftColumn?: (props?: EditableParam) => JSX.Element;
16
+ renderRightColumn?: (props?: EditableParam, ref?: React.ClassAttributes<{}>['ref']) => JSX.Element;
17
+ renderAdditionalColumn?: (row?: EditableParam[]) => JSX.Element;
18
+ renderActions?: boolean | ((param?: EditableParam, idx?: number, params?: EditableParam[]) => JSX.Element);
19
+ };
@@ -0,0 +1 @@
1
+ export {};
package/dist/index.d.ts CHANGED
@@ -1 +1,3 @@
1
+ import { EditableList } from './editable-list/editable-list';
2
+ export { EditableList };
1
3
  export { default } from './Form';
package/dist/index.js CHANGED
@@ -1 +1,3 @@
1
+ import { EditableList } from './editable-list/editable-list';
2
+ export { EditableList };
1
3
  export { default } from './Form';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-form",
3
- "version": "0.2.17",
3
+ "version": "0.3.0",
4
4
  "description": "Form UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "Synerise/synerise-design",
@@ -32,15 +32,19 @@
32
32
  ],
33
33
  "types": "dist/index.d.ts",
34
34
  "dependencies": {
35
- "@synerise/ds-divider": "^0.5.17",
36
- "@synerise/ds-typography": "^0.12.5"
35
+ "@synerise/ds-button": "^0.17.2",
36
+ "@synerise/ds-cruds": "^0.3.9",
37
+ "@synerise/ds-divider": "^0.5.19",
38
+ "@synerise/ds-icon": "^0.49.0",
39
+ "@synerise/ds-input": "^0.18.10",
40
+ "@synerise/ds-typography": "^0.12.7"
37
41
  },
38
42
  "peerDependencies": {
39
43
  "@synerise/ds-core": "*",
40
44
  "react": ">=16.9.0 < 17.0.0"
41
45
  },
42
46
  "devDependencies": {
43
- "@synerise/ds-utils": "^0.22.6"
47
+ "@synerise/ds-utils": "^0.22.8"
44
48
  },
45
- "gitHead": "28486eab4b37b485cbe2a383e3ae9b8e9d789862"
49
+ "gitHead": "44b5cd564f1f5d1b2d896849591aa5297ba26f30"
46
50
  }