venice-ui 1.2.0 → 1.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.
@@ -56,7 +56,6 @@ const DropdownMenu = ({ size = 'medium', iconName = 'more_vert', header = false,
56
56
  document.removeEventListener('click', handleClickOutside, true);
57
57
  };
58
58
  }, [open]);
59
- console.log(open);
60
59
  return (react_1.default.createElement(DropdownMenu_styles_1.DropdownMenuElement, null,
61
60
  react_1.default.createElement(Icons_1.Icon, { name: iconName, onClick: () => toogleOpen(!open), size: (0, common_1.setIconSize)(size), isActive: open, right: right, left: left, iconColor: iconColor, iconHoverColor: iconHoverColor, iconBgColor: iconBgColor, iconBgHoverColor: iconBgHoverColor }),
62
61
  open && (react_1.default.createElement(common_1.Panel, { ref: ref, size: size, position: "right" },
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Form = void 0;
7
+ const react_1 = __importDefault(require("react"));
8
+ const Input_1 = require("../Input");
9
+ const File_1 = require("../File");
10
+ const FormElements_1 = require("./FormElements");
11
+ const Form = ({ formData, size = 'medium', read }) => {
12
+ const onChangeHandler = (name, value) => {
13
+ formData.action(name, value);
14
+ };
15
+ const onIntChangeHandler = (name, value) => {
16
+ let valueString = value;
17
+ if (valueString.length > 0) {
18
+ const modify = valueString
19
+ .replaceAll(',', '.')
20
+ .replace(/[^\d.-]/g, '')
21
+ .split('.');
22
+ let digit = modify.shift();
23
+ if (modify.length > 0) {
24
+ digit = digit + '.' + modify.join('');
25
+ }
26
+ valueString = digit;
27
+ }
28
+ formData.action(name, valueString);
29
+ };
30
+ const onFileHandler = (event) => {
31
+ const fileList = event.currentTarget.files;
32
+ if (!fileList)
33
+ return;
34
+ if (event.currentTarget.files) {
35
+ }
36
+ formData.action(event.currentTarget.name, event.currentTarget.files ? event.currentTarget.files[0] : null);
37
+ };
38
+ const selectType = (item) => {
39
+ switch (item.type) {
40
+ case 'text':
41
+ return (react_1.default.createElement(Input_1.Input, { label: item.label, value: item.value, name: item.name, type: "text", size: size, handleChange: onChangeHandler }));
42
+ case 'number':
43
+ return (react_1.default.createElement(Input_1.Input, { label: item.label, value: item.value, name: item.name, type: "number", size: size, min: item.min, max: item.max, step: item.step, handleChange: onIntChangeHandler }));
44
+ case 'increase':
45
+ return (react_1.default.createElement(Input_1.Input, { type: "increase", label: item.label, value: item.value, name: item.name, size: size, handleChange: onIntChangeHandler, min: item.min, max: item.max, step: item.step }));
46
+ case 'file':
47
+ return (react_1.default.createElement(File_1.File, { label: item.label, fileValue: item.value, name: item.name, size: size, handleChange: onFileHandler }));
48
+ }
49
+ };
50
+ return (react_1.default.createElement(FormElements_1.FormWrapper, null, formData.data.map((item) => {
51
+ if ('row' in item) {
52
+ return (react_1.default.createElement(FormElements_1.FormRow, { key: `subRow-${item.row[0].name}` }, item.row.map((rowItem) => (react_1.default.createElement(FormElements_1.FormSubRow, { factor: item.row.length, key: rowItem.name }, selectType(rowItem))))));
53
+ }
54
+ else {
55
+ return react_1.default.createElement(FormElements_1.FormRow, { key: item.name }, selectType(item));
56
+ }
57
+ })));
58
+ };
59
+ exports.Form = Form;
60
+ exports.default = exports.Form;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.IntputWrapperBig = exports.FormSubRow = exports.FormRow = exports.FormWrapper = void 0;
7
+ const styled_components_1 = __importDefault(require("styled-components"));
8
+ exports.FormWrapper = styled_components_1.default.div `
9
+ display: flex;
10
+ flex-direction: column;
11
+ width: 100%;
12
+ `;
13
+ exports.FormRow = styled_components_1.default.div `
14
+ width: 100%;
15
+ margin-bottom: 0.8rem;
16
+ display: flex;
17
+ justify-content: space-between;
18
+ `;
19
+ exports.FormSubRow = styled_components_1.default.div `
20
+ display: flex;
21
+ width: calc((100% - ((${(p) => p.factor} - 1) * 2rem)) / ${(p) => p.factor});
22
+ `;
23
+ exports.IntputWrapperBig = styled_components_1.default.div `
24
+ width: 100%;
25
+ display: flex;
26
+ flex-direction: column;
27
+ margin-bottom: 1.6rem;
28
+ `;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateForm = void 0;
4
+ const updateForm = (state, updateState, field, value) => {
5
+ updateState({ ...state, [field]: value });
6
+ };
7
+ exports.updateForm = updateForm;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Form"), exports);
@@ -31,8 +31,33 @@ const Input_styles_1 = require("./Input.styles");
31
31
  const Icons_1 = require("../Icons");
32
32
  const Theme_1 = require("../../Theme");
33
33
  const Input = ({ label, labelPosition = 'top', value, type = 'text', name, disabled = false, size = 'medium', handleChange, handleSubmit, width, error, placeholder, min, max, step = 0.1, autoFocus, theme = Theme_1.mainTheme, }) => {
34
+ const calculateNumberValue = (numberValue) => {
35
+ return isNaN(parseFloat(numberValue))
36
+ ? numberValue
37
+ : parseFloat(numberValue);
38
+ };
34
39
  const onChange = (e) => {
35
- handleChange(name, e.target.value);
40
+ let returnedValue = type === 'number' || type === 'increase'
41
+ ? calculateNumberValue(e.target.value)
42
+ : e.target.value.toString();
43
+ handleChange(name, returnedValue);
44
+ };
45
+ const onBlurValidation = () => {
46
+ if (type === 'number' || type === 'increase') {
47
+ let validateValue = value;
48
+ if (isNaN(parseFloat(validateValue.toString()))) {
49
+ validateValue = min !== undefined ? min : 0;
50
+ }
51
+ if (typeof value === 'number') {
52
+ if (min !== undefined && value < min) {
53
+ validateValue = min;
54
+ }
55
+ else if (max !== undefined && value > max) {
56
+ validateValue = max;
57
+ }
58
+ }
59
+ handleChange(name, validateValue);
60
+ }
36
61
  };
37
62
  const onKeyDown = (e) => {
38
63
  if (handleSubmit && e.key === 'Enter') {
@@ -65,12 +90,12 @@ const Input = ({ label, labelPosition = 'top', value, type = 'text', name, disab
65
90
  react_1.default.createElement(Aligment_1.Aligment, { align: labelPosition === 'top' ? 'flex-start' : 'center', direction: labelPosition === 'top' ? 'column' : 'row', wrap: 'nowrap' },
66
91
  label && (react_1.default.createElement(Input_styles_1.InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
67
92
  react_1.default.createElement(Input_styles_1.InputWrapper, { width: width },
68
- react_1.default.createElement(Input_styles_1.InputTextElement, { autoFocus: autoFocus, inputSize: size, type: showPassword ? 'text' : inputType, disabled: disabled, name: name, value: value, onChange: onChange, onKeyDown: onKeyDown, error: error, placeholder: placeholder, min: min, max: max, step: step }),
93
+ react_1.default.createElement(Input_styles_1.InputTextElement, { autoFocus: autoFocus, inputSize: size, type: showPassword ? 'text' : inputType, disabled: disabled, name: name, value: value, onChange: onChange, onKeyDown: onKeyDown, onBlur: onBlurValidation, error: error, placeholder: placeholder, min: min, max: max, step: step }),
69
94
  inputType === 'password' && (react_1.default.createElement(Input_styles_1.EyeIconWrapper, { size: size },
70
- react_1.default.createElement(Icons_1.Icon, { name: showPassword ? 'visability_off' : 'visibility', size: 24, onClick: tooglePassword, iconColor: theme.inputDefaultTextColor, iconBgHoverColor: 'transparent' }))),
95
+ react_1.default.createElement(Icons_1.Icon, { name: showPassword ? 'visability_off' : 'visibility', size: 24, onClick: tooglePassword, iconColor: theme.inputDefaultTextColor, iconBgHoverColor: "transparent" }))),
71
96
  type === 'increase' && (react_1.default.createElement(Input_styles_1.IconsWrapper, null,
72
- react_1.default.createElement(Icons_1.Icon, { name: "add", size: 24, onClick: () => increaseValue(value), iconColor: theme.inputDefaultTextColor }),
73
- react_1.default.createElement(Icons_1.Icon, { name: "remove", size: 24, onClick: () => decreaseValue(value), iconColor: theme.inputDefaultTextColor }))),
97
+ react_1.default.createElement(Icons_1.Icon, { name: "add", size: size === 'small' ? 16 : 24, onClick: () => increaseValue(value), iconColor: theme.inputDefaultTextColor }),
98
+ react_1.default.createElement(Icons_1.Icon, { name: "remove", size: size === 'small' ? 16 : 24, onClick: () => decreaseValue(value), iconColor: theme.inputDefaultTextColor }))),
74
99
  error && react_1.default.createElement(Input_styles_1.InputErrorMsg, null, error)))));
75
100
  };
76
101
  exports.Input = Input;
package/dist/cjs/index.js CHANGED
@@ -23,6 +23,7 @@ __exportStar(require("./components/Dropdown"), exports);
23
23
  __exportStar(require("./components/DropdownMenu"), exports);
24
24
  __exportStar(require("./components/ElementHeader"), exports);
25
25
  __exportStar(require("./components/DropdownMenu"), exports);
26
+ __exportStar(require("./components/Form"), exports);
26
27
  __exportStar(require("./components/File"), exports);
27
28
  __exportStar(require("./components/Filters"), exports);
28
29
  __exportStar(require("./components/Icons"), exports);
@@ -30,7 +30,6 @@ export const DropdownMenu = ({ size = 'medium', iconName = 'more_vert', header =
30
30
  document.removeEventListener('click', handleClickOutside, true);
31
31
  };
32
32
  }, [open]);
33
- console.log(open);
34
33
  return (React.createElement(DropdownMenuElement, null,
35
34
  React.createElement(Icon, { name: iconName, onClick: () => toogleOpen(!open), size: setIconSize(size), isActive: open, right: right, left: left, iconColor: iconColor, iconHoverColor: iconHoverColor, iconBgColor: iconBgColor, iconBgHoverColor: iconBgHoverColor }),
36
35
  open && (React.createElement(Panel, { ref: ref, size: size, position: "right" },
@@ -0,0 +1,53 @@
1
+ import React from 'react';
2
+ import { Input } from '../Input';
3
+ import { File } from '../File';
4
+ import { FormRow, FormSubRow, FormWrapper } from './FormElements';
5
+ export const Form = ({ formData, size = 'medium', read }) => {
6
+ const onChangeHandler = (name, value) => {
7
+ formData.action(name, value);
8
+ };
9
+ const onIntChangeHandler = (name, value) => {
10
+ let valueString = value;
11
+ if (valueString.length > 0) {
12
+ const modify = valueString
13
+ .replaceAll(',', '.')
14
+ .replace(/[^\d.-]/g, '')
15
+ .split('.');
16
+ let digit = modify.shift();
17
+ if (modify.length > 0) {
18
+ digit = digit + '.' + modify.join('');
19
+ }
20
+ valueString = digit;
21
+ }
22
+ formData.action(name, valueString);
23
+ };
24
+ const onFileHandler = (event) => {
25
+ const fileList = event.currentTarget.files;
26
+ if (!fileList)
27
+ return;
28
+ if (event.currentTarget.files) {
29
+ }
30
+ formData.action(event.currentTarget.name, event.currentTarget.files ? event.currentTarget.files[0] : null);
31
+ };
32
+ const selectType = (item) => {
33
+ switch (item.type) {
34
+ case 'text':
35
+ return (React.createElement(Input, { label: item.label, value: item.value, name: item.name, type: "text", size: size, handleChange: onChangeHandler }));
36
+ case 'number':
37
+ return (React.createElement(Input, { label: item.label, value: item.value, name: item.name, type: "number", size: size, min: item.min, max: item.max, step: item.step, handleChange: onIntChangeHandler }));
38
+ case 'increase':
39
+ return (React.createElement(Input, { type: "increase", label: item.label, value: item.value, name: item.name, size: size, handleChange: onIntChangeHandler, min: item.min, max: item.max, step: item.step }));
40
+ case 'file':
41
+ return (React.createElement(File, { label: item.label, fileValue: item.value, name: item.name, size: size, handleChange: onFileHandler }));
42
+ }
43
+ };
44
+ return (React.createElement(FormWrapper, null, formData.data.map((item) => {
45
+ if ('row' in item) {
46
+ return (React.createElement(FormRow, { key: `subRow-${item.row[0].name}` }, item.row.map((rowItem) => (React.createElement(FormSubRow, { factor: item.row.length, key: rowItem.name }, selectType(rowItem))))));
47
+ }
48
+ else {
49
+ return React.createElement(FormRow, { key: item.name }, selectType(item));
50
+ }
51
+ })));
52
+ };
53
+ export default Form;
@@ -0,0 +1,22 @@
1
+ import styled from "styled-components";
2
+ export const FormWrapper = styled.div `
3
+ display: flex;
4
+ flex-direction: column;
5
+ width: 100%;
6
+ `;
7
+ export const FormRow = styled.div `
8
+ width: 100%;
9
+ margin-bottom: 0.8rem;
10
+ display: flex;
11
+ justify-content: space-between;
12
+ `;
13
+ export const FormSubRow = styled.div `
14
+ display: flex;
15
+ width: calc((100% - ((${(p) => p.factor} - 1) * 2rem)) / ${(p) => p.factor});
16
+ `;
17
+ export const IntputWrapperBig = styled.div `
18
+ width: 100%;
19
+ display: flex;
20
+ flex-direction: column;
21
+ margin-bottom: 1.6rem;
22
+ `;
@@ -0,0 +1,3 @@
1
+ export const updateForm = (state, updateState, field, value) => {
2
+ updateState({ ...state, [field]: value });
3
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export * from './Form';
@@ -5,8 +5,33 @@ import { InputTextElement, InputLabelElement, InputErrorMsg, InputWrapper, EyeIc
5
5
  import { Icon } from '../Icons';
6
6
  import { mainTheme } from '../../Theme';
7
7
  export const Input = ({ label, labelPosition = 'top', value, type = 'text', name, disabled = false, size = 'medium', handleChange, handleSubmit, width, error, placeholder, min, max, step = 0.1, autoFocus, theme = mainTheme, }) => {
8
+ const calculateNumberValue = (numberValue) => {
9
+ return isNaN(parseFloat(numberValue))
10
+ ? numberValue
11
+ : parseFloat(numberValue);
12
+ };
8
13
  const onChange = (e) => {
9
- handleChange(name, e.target.value);
14
+ let returnedValue = type === 'number' || type === 'increase'
15
+ ? calculateNumberValue(e.target.value)
16
+ : e.target.value.toString();
17
+ handleChange(name, returnedValue);
18
+ };
19
+ const onBlurValidation = () => {
20
+ if (type === 'number' || type === 'increase') {
21
+ let validateValue = value;
22
+ if (isNaN(parseFloat(validateValue.toString()))) {
23
+ validateValue = min !== undefined ? min : 0;
24
+ }
25
+ if (typeof value === 'number') {
26
+ if (min !== undefined && value < min) {
27
+ validateValue = min;
28
+ }
29
+ else if (max !== undefined && value > max) {
30
+ validateValue = max;
31
+ }
32
+ }
33
+ handleChange(name, validateValue);
34
+ }
10
35
  };
11
36
  const onKeyDown = (e) => {
12
37
  if (handleSubmit && e.key === 'Enter') {
@@ -39,11 +64,11 @@ export const Input = ({ label, labelPosition = 'top', value, type = 'text', name
39
64
  React.createElement(Aligment, { align: labelPosition === 'top' ? 'flex-start' : 'center', direction: labelPosition === 'top' ? 'column' : 'row', wrap: 'nowrap' },
40
65
  label && (React.createElement(InputLabelElement, { size: size, labelPosition: labelPosition }, label)),
41
66
  React.createElement(InputWrapper, { width: width },
42
- React.createElement(InputTextElement, { autoFocus: autoFocus, inputSize: size, type: showPassword ? 'text' : inputType, disabled: disabled, name: name, value: value, onChange: onChange, onKeyDown: onKeyDown, error: error, placeholder: placeholder, min: min, max: max, step: step }),
67
+ React.createElement(InputTextElement, { autoFocus: autoFocus, inputSize: size, type: showPassword ? 'text' : inputType, disabled: disabled, name: name, value: value, onChange: onChange, onKeyDown: onKeyDown, onBlur: onBlurValidation, error: error, placeholder: placeholder, min: min, max: max, step: step }),
43
68
  inputType === 'password' && (React.createElement(EyeIconWrapper, { size: size },
44
- React.createElement(Icon, { name: showPassword ? 'visability_off' : 'visibility', size: 24, onClick: tooglePassword, iconColor: theme.inputDefaultTextColor, iconBgHoverColor: 'transparent' }))),
69
+ React.createElement(Icon, { name: showPassword ? 'visability_off' : 'visibility', size: 24, onClick: tooglePassword, iconColor: theme.inputDefaultTextColor, iconBgHoverColor: "transparent" }))),
45
70
  type === 'increase' && (React.createElement(IconsWrapper, null,
46
- React.createElement(Icon, { name: "add", size: 24, onClick: () => increaseValue(value), iconColor: theme.inputDefaultTextColor }),
47
- React.createElement(Icon, { name: "remove", size: 24, onClick: () => decreaseValue(value), iconColor: theme.inputDefaultTextColor }))),
71
+ React.createElement(Icon, { name: "add", size: size === 'small' ? 16 : 24, onClick: () => increaseValue(value), iconColor: theme.inputDefaultTextColor }),
72
+ React.createElement(Icon, { name: "remove", size: size === 'small' ? 16 : 24, onClick: () => decreaseValue(value), iconColor: theme.inputDefaultTextColor }))),
48
73
  error && React.createElement(InputErrorMsg, null, error)))));
49
74
  };
package/dist/esm/index.js CHANGED
@@ -7,6 +7,7 @@ export * from './components/Dropdown';
7
7
  export * from './components/DropdownMenu';
8
8
  export * from './components/ElementHeader';
9
9
  export * from './components/DropdownMenu';
10
+ export * from './components/Form';
10
11
  export * from './components/File';
11
12
  export * from './components/Filters';
12
13
  export * from './components/Icons';
@@ -0,0 +1,10 @@
1
+ import { FC } from 'react';
2
+ import { FormSourceData } from './formTypes';
3
+ import { InputSize } from 'types';
4
+ export interface FormProps {
5
+ formData: FormSourceData;
6
+ size?: InputSize;
7
+ read?: boolean;
8
+ }
9
+ export declare const Form: FC<FormProps>;
10
+ export default Form;
@@ -0,0 +1,8 @@
1
+ export declare const FormWrapper: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export declare const FormRow: import("styled-components").StyledComponent<"div", any, {}, never>;
3
+ interface FormSubRowProps {
4
+ factor: number;
5
+ }
6
+ export declare const FormSubRow: import("styled-components").StyledComponent<"div", any, FormSubRowProps, never>;
7
+ export declare const IntputWrapperBig: import("styled-components").StyledComponent<"div", any, {}, never>;
8
+ export {};
@@ -0,0 +1 @@
1
+ export declare const updateForm: (state: any, updateState: any, field: string, value: string | number) => void;
@@ -0,0 +1,23 @@
1
+ export interface FormDataProps {
2
+ type: string;
3
+ label: string;
4
+ value: any;
5
+ name: string;
6
+ min?: number;
7
+ max?: number;
8
+ step?: number;
9
+ }
10
+ interface FormDataParentProps {
11
+ row: FormDataProps[];
12
+ }
13
+ export type DataType = FormDataProps | FormDataParentProps;
14
+ export interface FormSourceData {
15
+ data: DataType[];
16
+ action: any;
17
+ }
18
+ export interface IDetailsProps {
19
+ label: string;
20
+ value: any;
21
+ type: string;
22
+ }
23
+ export {};
@@ -0,0 +1 @@
1
+ export * from './Form';
@@ -7,6 +7,7 @@ export * from './components/Dropdown';
7
7
  export * from './components/DropdownMenu';
8
8
  export * from './components/ElementHeader';
9
9
  export * from './components/DropdownMenu';
10
+ export * from './components/Form';
10
11
  export * from './components/File';
11
12
  export * from './components/Filters';
12
13
  export * from './components/Icons';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "venice-ui",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Component library",
5
5
  "main": "index.js",
6
6
  "module": "./dist/esm/index.js",