@ssplib/react-components 0.0.261 → 0.0.263

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.
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import 'dayjs/locale/pt-br';
3
+ export default function GenericDatePicker({ name, required, title, xs, sm, md, minDt, defaultValue, persistValue, maxDt, ...props }: {
4
+ minDt?: string;
5
+ maxDt?: string;
6
+ name: string;
7
+ title?: string;
8
+ required?: boolean;
9
+ defaultValue?: string;
10
+ persistValue?: boolean;
11
+ xs?: number;
12
+ sm?: number;
13
+ md?: number;
14
+ }): JSX.Element;
@@ -0,0 +1,105 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const material_1 = require("@mui/material");
41
+ const x_date_pickers_1 = require("@mui/x-date-pickers");
42
+ const AdapterDayjs_1 = require("@mui/x-date-pickers/AdapterDayjs");
43
+ const x_date_pickers_2 = require("@mui/x-date-pickers");
44
+ const dayjs_1 = __importDefault(require("dayjs"));
45
+ require("dayjs/locale/pt-br");
46
+ const lodash_get_1 = __importDefault(require("lodash.get"));
47
+ const lodash_hasin_1 = __importDefault(require("lodash.hasin"));
48
+ const react_1 = __importStar(require("react"));
49
+ const react_hook_form_1 = require("react-hook-form");
50
+ function GenericDatePicker(_a) {
51
+ var _b;
52
+ var { name, required = false, title, xs = 12, sm, md, minDt, defaultValue, persistValue, maxDt } = _a, props = __rest(_a, ["name", "required", "title", "xs", "sm", "md", "minDt", "defaultValue", "persistValue", "maxDt"]);
53
+ const context = (0, react_hook_form_1.useFormContext)();
54
+ const [value, setValue] = (0, react_1.useState)(defaultValue !== undefined ? (0, dayjs_1.default)(defaultValue, 'DD/MM/YYYY') : undefined);
55
+ const handleChange = (newValue) => {
56
+ setValue(undefined);
57
+ };
58
+ (0, react_1.useEffect)(() => {
59
+ if (value === undefined)
60
+ return;
61
+ context.setValue(name, value ? value.format('DD/MM/YYYY') : value);
62
+ }, [value]);
63
+ (0, react_1.useEffect)(() => {
64
+ // Vamos executar o unregister em casos em que não queremos persistir o valor
65
+ if (persistValue)
66
+ return;
67
+ return () => {
68
+ context.unregister(name);
69
+ };
70
+ }, []);
71
+ return (react_1.default.createElement(react_1.default.Fragment, null,
72
+ react_1.default.createElement(material_1.Grid, Object.assign({ item: true }, { xs, sm, md }),
73
+ title && react_1.default.createElement(material_1.InputLabel, { required: required }, title),
74
+ react_1.default.createElement(x_date_pickers_1.LocalizationProvider, { adapterLocale: 'pt-br', dateAdapter: AdapterDayjs_1.AdapterDayjs },
75
+ react_1.default.createElement(x_date_pickers_2.DatePicker, { minDate: (0, dayjs_1.default)(minDt, 'DD/MM/YYYY'), maxDate: (0, dayjs_1.default)(maxDt, 'DD/MM/YYYY'), format: 'DD/MM/YYYY', value: value, onChange: handleChange, disableHighlightToday: true, sx: {
76
+ outline: (0, lodash_get_1.default)(context.formState.errors, name) ? '1px solid #a51c30' : '',
77
+ backgroundColor: 'white',
78
+ width: '100%',
79
+ div: {
80
+ input: {
81
+ paddingX: 2,
82
+ paddingY: 1.05,
83
+ },
84
+ },
85
+ }, inputRef: (params) => (react_1.default.createElement(material_1.TextField, Object.assign({ size: 'small' }, params, context === null || context === void 0 ? void 0 : context.register(name, {
86
+ validate: (v, f) => {
87
+ if (!(0, lodash_hasin_1.default)(f, name)) {
88
+ return true;
89
+ }
90
+ if (!v)
91
+ v = '';
92
+ if (v.length <= 0 && required)
93
+ return 'Este campo é obrigatório';
94
+ if (v.length < 10 && required)
95
+ return 'A data precisa seguir o padrão DD/MM/AAAA';
96
+ if (minDt && !((0, dayjs_1.default)(minDt, 'DD/MM/YYYY').isSame((0, dayjs_1.default)(v, 'DD/MM/YYYY')) || (0, dayjs_1.default)(minDt, 'DD/MM/YYYY').isBefore((0, dayjs_1.default)(v, 'DD/MM/YYYY'))))
97
+ return `A data tem que ser depois de ${minDt} e antes de ${maxDt}`;
98
+ if (maxDt && !((0, dayjs_1.default)(maxDt, 'DD/MM/YYYY').isSame((0, dayjs_1.default)(v, 'DD/MM/YYYY')) || (0, dayjs_1.default)(maxDt, 'DD/MM/YYYY').isAfter((0, dayjs_1.default)(v, 'DD/MM/YYYY'))))
99
+ return 'A data escolhida não é válida';
100
+ },
101
+ shouldUnregister: true,
102
+ }), { fullWidth: true }))) }),
103
+ react_1.default.createElement(material_1.Typography, { sx: { color: '#a51c30', fontSize: 14, paddingLeft: 1 } }, (_b = (0, lodash_get_1.default)(context.formState.errors, name)) === null || _b === void 0 ? void 0 : _b.message)))));
104
+ }
105
+ exports.default = GenericDatePicker;
@@ -0,0 +1,20 @@
1
+ /// <reference types="react" />
2
+ export default function GenericFetchAutoComplete({ name, url, title, customLoadingText, shouldRefetch, required, defaultValue, route, onChange, xs, sm, watchValue, md, disabled, }: {
3
+ name: string;
4
+ url: string;
5
+ title: string;
6
+ watchValue?: {
7
+ id: number | string;
8
+ label: string;
9
+ };
10
+ customLoadingText?: string;
11
+ defaultValue?: number;
12
+ required?: boolean;
13
+ route?: string;
14
+ onChange?: (id: number | undefined) => void;
15
+ shouldRefetch?: boolean;
16
+ xs?: number;
17
+ sm?: number;
18
+ md?: number;
19
+ disabled?: boolean;
20
+ }): JSX.Element;
@@ -0,0 +1,132 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ const material_1 = require("@mui/material");
30
+ const lodash_get_1 = __importDefault(require("lodash.get"));
31
+ const react_1 = __importStar(require("react"));
32
+ const auth_1 = require("../../../context/auth");
33
+ const react_hook_form_1 = require("react-hook-form");
34
+ let useDefault = true;
35
+ function GenericFetchAutoComplete({ name, url, title, customLoadingText, shouldRefetch = true, required = false, defaultValue, route = '', onChange = () => { }, xs = 12, sm, watchValue, md, disabled = false, }) {
36
+ const context = (0, react_hook_form_1.useFormContext)();
37
+ const [loading, setLoading] = (0, react_1.useState)(true);
38
+ const [list, setList] = (0, react_1.useState)([]);
39
+ const [loadingText, setLoadingText] = (0, react_1.useState)('Carregando...');
40
+ const [dValue, setDValue] = (0, react_1.useState)(null);
41
+ const [value, setValue] = (0, react_1.useState)(null);
42
+ const { user } = (0, react_1.useContext)(auth_1.AuthContext);
43
+ (0, react_1.useEffect)(() => {
44
+ if (defaultValue) {
45
+ fetch(url, {
46
+ method: 'GET',
47
+ headers: {
48
+ Authorization: `Bearer ${user === null || user === void 0 ? void 0 : user.token}`,
49
+ },
50
+ }).then((res) => {
51
+ if (res.ok) {
52
+ console.log('llll');
53
+ res.json().then((j) => {
54
+ let value = (0, lodash_get_1.default)(j, route, j).filter((x) => x.id === defaultValue);
55
+ if (value.length > 0) {
56
+ setList((0, lodash_get_1.default)(j, route, j));
57
+ setLoading(false);
58
+ context.setValue(name, defaultValue);
59
+ setDValue(value[0]);
60
+ }
61
+ else {
62
+ setLoadingText('Erro ao carregar dados. Valor inválido');
63
+ }
64
+ });
65
+ }
66
+ else {
67
+ setLoadingText('Erro ao carregar dados');
68
+ }
69
+ });
70
+ }
71
+ }, []);
72
+ (0, react_1.useEffect)(() => {
73
+ if (watchValue && useDefault) {
74
+ setValue(watchValue);
75
+ context.setValue(name, watchValue.id);
76
+ onChange(watchValue.id);
77
+ }
78
+ }, [watchValue]);
79
+ function onFocus() {
80
+ if ((defaultValue || !shouldRefetch) && list.length > 0)
81
+ return;
82
+ setLoading(true);
83
+ setList([]);
84
+ customLoadingText && setLoadingText(customLoadingText);
85
+ fetch(url, {
86
+ method: 'GET',
87
+ headers: {
88
+ Authorization: `Bearer ${user === null || user === void 0 ? void 0 : user.token}`,
89
+ },
90
+ }).then((res) => {
91
+ if (res.ok) {
92
+ res.json().then((j) => {
93
+ setList((0, lodash_get_1.default)(j, route, j));
94
+ setLoading(false);
95
+ });
96
+ }
97
+ else {
98
+ setLoadingText('Erro ao carregar dados');
99
+ }
100
+ });
101
+ }
102
+ function handleAutoCompleteChange(value) {
103
+ useDefault = false;
104
+ if (value) {
105
+ setValue(value);
106
+ context.setValue(name, value.id);
107
+ onChange(value.id);
108
+ return;
109
+ }
110
+ setValue(null);
111
+ context.setValue(name, '');
112
+ onChange(undefined);
113
+ }
114
+ if (defaultValue && list.length <= 0 && !dValue)
115
+ return (react_1.default.createElement(material_1.Grid, Object.assign({ item: true }, { xs, sm, md }),
116
+ react_1.default.createElement(material_1.TextField, { size: 'small', fullWidth: true, placeholder: loadingText, disabled: true })));
117
+ return (react_1.default.createElement(material_1.Grid, Object.assign({ item: true }, { xs, sm, md }),
118
+ title && react_1.default.createElement(material_1.InputLabel, { required: required }, title),
119
+ react_1.default.createElement("input", Object.assign({ type: 'text' }, context === null || context === void 0 ? void 0 : context.register(name, {
120
+ validate: (v, f) => {
121
+ if (v.length <= 0 && required)
122
+ return 'Este campo é obrigatório';
123
+ },
124
+ }), { hidden: true })),
125
+ react_1.default.createElement(material_1.Autocomplete, { value: value, loading: loading, loadingText: loadingText, options: list, defaultValue: dValue, getOptionDisabled: (option) => { var _a; return (_a = option === null || option === void 0 ? void 0 : option.disabled) !== null && _a !== void 0 ? _a : false; }, isOptionEqualToValue: (op, value) => op.id === value.id, onChange: (e, v) => handleAutoCompleteChange(v), renderInput: (params) => {
126
+ var _a;
127
+ return (react_1.default.createElement(material_1.TextField, Object.assign({}, params, { size: 'small', fullWidth: true, placeholder: title, onFocus: onFocus, error: (0, lodash_get_1.default)(context.formState.errors, name) ? true : false, helperText: (_a = (0, lodash_get_1.default)(context.formState.errors, name)) === null || _a === void 0 ? void 0 : _a.message })));
128
+ }, sx: {
129
+ bgcolor: 'white',
130
+ }, size: 'small', fullWidth: true, disabled: disabled })));
131
+ }
132
+ exports.default = GenericFetchAutoComplete;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ export declare function Input({ type, numberMask, xs, sm, inputMinLength, inputMaxLength, defaultValue, md, disabled, watchValue, ...props }: {
3
+ type: 'cnpj' | 'cpf' | 'input' | 'email' | 'cpf_cnpj' | 'phone' | 'input' | 'number' | 'rg' | 'password' | 'cep' | 'sei';
4
+ name: string;
5
+ watchValue?: string;
6
+ title?: string;
7
+ required?: boolean;
8
+ numberMask?: string;
9
+ customPlaceholder?: string;
10
+ defaultValue?: string;
11
+ inputMinLength?: number;
12
+ inputMaxLength?: number;
13
+ xs?: number;
14
+ sm?: number;
15
+ md?: number;
16
+ disabled?: boolean;
17
+ }): JSX.Element;
18
+ declare const _default: React.MemoExoticComponent<typeof Input>;
19
+ export default _default;
@@ -0,0 +1,168 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.Input = void 0;
41
+ const material_1 = require("@mui/material");
42
+ const lodash_get_1 = __importDefault(require("lodash.get"));
43
+ const react_1 = __importStar(require("react"));
44
+ const MaskInput_1 = __importDefault(require("./MaskInput"));
45
+ const react_hook_form_1 = require("react-hook-form");
46
+ function Input(_a) {
47
+ var { type = 'input', numberMask = '000000000000000', xs = 12, sm, inputMinLength = 1, inputMaxLength = 255, defaultValue = '', md, disabled = false, watchValue } = _a, props = __rest(_a, ["type", "numberMask", "xs", "sm", "inputMinLength", "inputMaxLength", "defaultValue", "md", "disabled", "watchValue"]);
48
+ const methods = (0, react_hook_form_1.useFormContext)();
49
+ (0, react_1.useEffect)(() => {
50
+ if (watchValue !== undefined)
51
+ methods.setValue(props.name, watchValue);
52
+ }, [watchValue]);
53
+ const chooseInput = () => {
54
+ const inputConfig = {
55
+ fullWidth: true,
56
+ size: 'small',
57
+ placeholder: props.customPlaceholder ? props.customPlaceholder : props.title,
58
+ };
59
+ const name = props.name;
60
+ const errorData = (0, lodash_get_1.default)(methods === null || methods === void 0 ? void 0 : methods.formState.errors, props.name);
61
+ const helperText = errorData === null || errorData === void 0 ? void 0 : errorData.message;
62
+ const error = errorData ? true : false;
63
+ const formConfig = Object.assign(Object.assign(Object.assign(Object.assign({}, methods === null || methods === void 0 ? void 0 : methods.register(name, {
64
+ validate: (v, f) => {
65
+ const value = v !== null && v !== void 0 ? v : '';
66
+ if (value.length <= 0 && props.required)
67
+ return 'Este campo é obrigatório';
68
+ if (type === 'cnpj') {
69
+ if (value.length < 18 && props.required)
70
+ return 'O CNPJ precisa ter no mínimo 14 dígitos';
71
+ }
72
+ //
73
+ else if (type === 'cpf') {
74
+ if (value.length < 14 && props.required)
75
+ return 'O CPF precisa ter no mínimo 11 dígitos';
76
+ } //
77
+ else if (type === 'sei') {
78
+ if (value.length < 22 && props.required)
79
+ return 'O Número SEI precisa ter no mínimo 19 dígitos';
80
+ }
81
+ //
82
+ else if (type === 'cep') {
83
+ if (value.length < 9 && props.required)
84
+ return 'O CPF precisa ter no mínimo 8 dígitos';
85
+ }
86
+ //
87
+ else if (type === 'input' || type === 'password' || type === 'number') {
88
+ if (value.length > inputMaxLength)
89
+ return `Limite máximo de ${inputMaxLength} caracteres`;
90
+ if (value.length < inputMinLength && props.required)
91
+ return `Limite mínimo de ${inputMinLength} caracteres`;
92
+ }
93
+ //
94
+ else if (type === 'email') {
95
+ if (value.length > 50)
96
+ return 'Limite máximo de 50 caracteres';
97
+ if (!/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/g.test(v) && props.required)
98
+ return 'O e-mail inserido não é valido';
99
+ }
100
+ //
101
+ else if (type === 'cpf_cnpj') {
102
+ if ((value.length < 14 || (value.length > 14 && value.length < 18)) && props.required)
103
+ return 'O CPF/CNPJ precisa ter no mínimo 11/14 dígitos';
104
+ }
105
+ //
106
+ else if (type === 'phone') {
107
+ if (value.length < 14 && props.required)
108
+ return 'O número precisa ter pelo menos 10 dígitos';
109
+ }
110
+ },
111
+ })), { error,
112
+ helperText }), inputConfig), { sx: {
113
+ backgroundColor: 'white',
114
+ } });
115
+ switch (type) {
116
+ case 'input':
117
+ case 'email':
118
+ return react_1.default.createElement(material_1.TextField, Object.assign({}, formConfig, { defaultValue: defaultValue, disabled: disabled }));
119
+ case 'password':
120
+ return react_1.default.createElement(material_1.TextField, Object.assign({}, formConfig, { type: 'password', disabled: disabled }));
121
+ case 'number':
122
+ return (react_1.default.createElement(MaskInput_1.default, { formConfig: formConfig, defaultValue: defaultValue, maskProps: {
123
+ mask: numberMask,
124
+ }, watchValue: watchValue, disabled: disabled }));
125
+ case 'cep':
126
+ return (react_1.default.createElement(MaskInput_1.default, { formConfig: formConfig, defaultValue: defaultValue, maskProps: {
127
+ mask: '00000-000',
128
+ }, watchValue: watchValue, disabled: disabled }));
129
+ case 'phone':
130
+ return (react_1.default.createElement(MaskInput_1.default, { formConfig: formConfig, defaultValue: defaultValue, maskProps: {
131
+ mask: '(00) [#]0000-0000',
132
+ definitions: {
133
+ '#': /^9$/,
134
+ },
135
+ }, watchValue: watchValue, disabled: disabled }));
136
+ case 'sei':
137
+ return (react_1.default.createElement(MaskInput_1.default, { formConfig: formConfig, defaultValue: defaultValue, maskProps: {
138
+ mask: '00000-00000000/0000-00',
139
+ }, watchValue: watchValue, disabled: disabled }));
140
+ case 'cpf_cnpj':
141
+ return (react_1.default.createElement(MaskInput_1.default, { formConfig: formConfig, defaultValue: defaultValue, maskProps: {
142
+ mask: '000.000.000-00[0]',
143
+ }, onMask: (value, setMask) => {
144
+ if (value.length > 14)
145
+ setMask('00.000.000/0000-00');
146
+ else
147
+ setMask('000.000.000-00[0]');
148
+ }, watchValue: watchValue, disabled: disabled }));
149
+ case 'cpf':
150
+ return (react_1.default.createElement(MaskInput_1.default, { formConfig: formConfig, defaultValue: defaultValue, maskProps: {
151
+ mask: '000.000.000-00',
152
+ }, watchValue: watchValue, disabled: disabled }));
153
+ case 'cnpj':
154
+ return (react_1.default.createElement(MaskInput_1.default, { formConfig: formConfig, defaultValue: defaultValue, maskProps: {
155
+ mask: '00.000.000/0000-00',
156
+ }, watchValue: watchValue, disabled: disabled }));
157
+ case 'rg':
158
+ return (react_1.default.createElement(MaskInput_1.default, { formConfig: formConfig, defaultValue: defaultValue, maskProps: {
159
+ mask: '00000[000000]',
160
+ }, watchValue: watchValue, disabled: disabled }));
161
+ }
162
+ };
163
+ return (react_1.default.createElement(material_1.Grid, Object.assign({ item: true }, { xs, sm, md }),
164
+ props.title && (react_1.default.createElement(material_1.InputLabel, { htmlFor: 'campo', required: props.required }, props.title)),
165
+ chooseInput()));
166
+ }
167
+ exports.Input = Input;
168
+ exports.default = react_1.default.memo(Input);
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export default function GenericMaskInput(props: {
3
+ formConfig: object;
4
+ defaultValue?: string;
5
+ maskProps: {
6
+ mask: string | RegExp;
7
+ definitions?: {
8
+ [key: string]: string | RegExp;
9
+ };
10
+ };
11
+ disabled?: boolean;
12
+ watchValue?: string;
13
+ onMask?: (value: string, setMask: React.Dispatch<React.SetStateAction<string>>) => void;
14
+ }): JSX.Element;
@@ -0,0 +1,79 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const material_1 = require("@mui/material");
38
+ const react_1 = __importStar(require("react"));
39
+ const react_imask_1 = require("react-imask");
40
+ const form_1 = require("../../../context/form");
41
+ const react_hook_form_1 = require("react-hook-form");
42
+ const TextMaskCustom = react_1.default.forwardRef(function TextMaskCustom(props, ref) {
43
+ const { onChange, maskProps, onMask, maskValue, setMaskValue, watchValue } = props, prop = __rest(props, ["onChange", "maskProps", "onMask", "maskValue", "setMaskValue", "watchValue"]);
44
+ const [mask, setMask] = (0, react_1.useState)(maskProps.mask);
45
+ delete prop.value;
46
+ const myRef = (0, react_1.useRef)(null);
47
+ const [myValue, setMyValue] = (0, react_1.useState)('');
48
+ const context = (0, react_hook_form_1.useFormContext)();
49
+ (0, react_1.useEffect)(() => {
50
+ if (watchValue) {
51
+ setMyValue(watchValue);
52
+ }
53
+ }, [watchValue]);
54
+ (0, react_1.useEffect)(() => {
55
+ context.setValue(prop.name, myRef.current.element.value);
56
+ }, [myValue]);
57
+ delete prop.watchValue;
58
+ return (react_1.default.createElement(react_imask_1.IMaskInput, Object.assign({}, prop, maskProps, { mask: mask, value: myValue, ref: myRef, inputRef: ref, onChange: (e) => { }, onAccept: (value, mask) => {
59
+ setMyValue(value);
60
+ mask.updateValue();
61
+ if (!onMask)
62
+ return;
63
+ onMask(value, setMask);
64
+ } })));
65
+ });
66
+ function GenericMaskInput(props) {
67
+ const context = (0, react_1.useContext)(form_1.FormContext);
68
+ const [maskValue, setMaskValue] = (0, react_1.useState)('');
69
+ return (react_1.default.createElement(react_1.default.Fragment, null,
70
+ react_1.default.createElement(material_1.TextField, Object.assign({}, props.formConfig, { onInput: (e) => {
71
+ const name = props.formConfig.name;
72
+ const value = e.target.value;
73
+ context.formSetValue(name, value);
74
+ }, InputProps: {
75
+ inputComponent: TextMaskCustom,
76
+ inputProps: { maskProps: props.maskProps, onMask: props.onMask, maskValue, setMaskValue, watchValue: props.watchValue },
77
+ }, disabled: props.disabled, fullWidth: true }))));
78
+ }
79
+ exports.default = GenericMaskInput;
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ export default function MultInput({ name, required, title, customPlaceholder, defaultValue, xs, sm, watchValue, inputMinLength, inputMaxLength, md, ...props }: {
3
+ name: string;
4
+ title?: string;
5
+ watchValue?: string;
6
+ customPlaceholder?: string;
7
+ required?: boolean;
8
+ defaultValue?: string;
9
+ inputMinLength?: number;
10
+ inputMaxLength?: number;
11
+ xs?: number;
12
+ sm?: number;
13
+ md?: number;
14
+ }): JSX.Element;
@@ -0,0 +1,67 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ const material_1 = require("@mui/material");
41
+ const InputLabel_1 = __importDefault(require("@mui/material/InputLabel"));
42
+ const lodash_get_1 = __importDefault(require("lodash.get"));
43
+ const react_1 = __importStar(require("react"));
44
+ const react_hook_form_1 = require("react-hook-form");
45
+ function MultInput(_a) {
46
+ var _b;
47
+ var { name, required = false, title, customPlaceholder, defaultValue = '', xs = 12, sm, watchValue = '', inputMinLength = 3, inputMaxLength = 255, md } = _a, props = __rest(_a, ["name", "required", "title", "customPlaceholder", "defaultValue", "xs", "sm", "watchValue", "inputMinLength", "inputMaxLength", "md"]);
48
+ const context = (0, react_hook_form_1.useFormContext)();
49
+ (0, react_1.useEffect)(() => {
50
+ context.setValue(name, watchValue);
51
+ }, [watchValue]);
52
+ return (react_1.default.createElement(material_1.Grid, Object.assign({ item: true }, { xs, sm, md }),
53
+ title && (react_1.default.createElement(InputLabel_1.default, { required: required, sx: { textTransform: 'capitalize' } }, title)),
54
+ react_1.default.createElement(material_1.TextField, Object.assign({ multiline: true, fullWidth: true, minRows: 3, defaultValue: defaultValue }, context.register(name, {
55
+ validate: (v, f) => {
56
+ if (required && v.length <= 0)
57
+ return 'Este campo é obrigatório';
58
+ if (v.length > inputMaxLength)
59
+ return `Limite máximo de ${inputMaxLength} caracteres`;
60
+ if (v.length < inputMinLength && required)
61
+ return `Limite mínimo de ${inputMinLength} caracteres`;
62
+ },
63
+ }), { error: (0, lodash_get_1.default)(context.formState.errors, name) ? true : false, helperText: (_b = (0, lodash_get_1.default)(context.formState.errors, name)) === null || _b === void 0 ? void 0 : _b.message, sx: {
64
+ bgcolor: 'white',
65
+ }, placeholder: customPlaceholder ? customPlaceholder : title }))));
66
+ }
67
+ exports.default = MultInput;
package/index.d.ts CHANGED
@@ -1,14 +1,16 @@
1
1
  import CheckBox from './components/form/checkbox/CheckBox';
2
2
  import CheckBoxWarning from './components/form/checkbox/CheckBoxWarning';
3
3
  import DatePicker from './components/form/date/DatePicker';
4
+ import GenericDatePicker from './components/form/date/GenericDatePicker';
4
5
  import TimePicker from './components/form/date/TimePicker';
5
6
  import FileUpload from './components/form/file/FileUpload';
6
7
  import ActiveInput from './components/form/input/ActiveInput';
7
8
  import AutoComplete from './components/form/input/AutoComplete';
8
9
  import FetchAutoComplete from './components/form/input/FetchAutoComplete';
10
+ import GenericFetchAutoComplete from './components/form/input/GenericFetchAutoComplete';
9
11
  import Input from './components/form/input/Input';
10
12
  import MaskInput from './components/form/input/MaskInput';
11
- import MultInput from './components/form/input/MultInput';
13
+ import GenericMaskInput from './components/form/input/GenericMaskInput';
12
14
  import OtherCheckBox from './components/form/input/OtherCheckBox';
13
15
  import Stepper from './components/form/stepper/Stepper';
14
16
  import StepperBlock from './components/form/stepper/StepperBlock';
@@ -34,4 +36,5 @@ import { MODAL } from './components/modal/Modal';
34
36
  import { SspComponentsProvider } from './components/providers/SspComponentsProvider';
35
37
  import Button from './components/utils/Bt';
36
38
  import Menu from './components/utils/CustomMenu';
37
- export { CheckBox, CheckBoxWarning, DatePicker, TimePicker, FileUpload, ActiveInput, AutoComplete, FetchAutoComplete, Input, MaskInput, MultInput, OtherCheckBox, Stepper, StepperBlock, Switch, SwitchWatch, ToggleVisibility, Table, NavBar, FormProvider, OAuthProvider, AUTH_COOKIE_NAME, AuthContext, FormContext, KeycloakAuthProvider, CheckBoxAdditional, RequiredCheckBoxGroup, FixedAutoComplete, Category, Field, FieldLabel, File, DropFileUpload, MODAL, SspComponentsProvider, TabNavBar, Button, Menu };
39
+ import GenericInput from './components/form/input/GenericInput';
40
+ export { CheckBox, CheckBoxWarning, DatePicker, GenericDatePicker, TimePicker, FileUpload, ActiveInput, AutoComplete, FetchAutoComplete, GenericFetchAutoComplete, Input, GenericInput, MaskInput, GenericMaskInput, OtherCheckBox, Stepper, StepperBlock, Switch, SwitchWatch, ToggleVisibility, Table, NavBar, FormProvider, OAuthProvider, AUTH_COOKIE_NAME, AuthContext, FormContext, KeycloakAuthProvider, CheckBoxAdditional, RequiredCheckBoxGroup, FixedAutoComplete, Category, Field, FieldLabel, File, DropFileUpload, MODAL, SspComponentsProvider, TabNavBar, Button, Menu, };
package/index.js CHANGED
@@ -3,13 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Menu = exports.Button = exports.TabNavBar = exports.SspComponentsProvider = exports.MODAL = exports.DropFileUpload = exports.File = exports.FieldLabel = exports.Field = exports.Category = exports.FixedAutoComplete = exports.RequiredCheckBoxGroup = exports.CheckBoxAdditional = exports.KeycloakAuthProvider = exports.FormContext = exports.AuthContext = exports.AUTH_COOKIE_NAME = exports.OAuthProvider = exports.FormProvider = exports.NavBar = exports.Table = exports.ToggleVisibility = exports.SwitchWatch = exports.Switch = exports.StepperBlock = exports.Stepper = exports.OtherCheckBox = exports.MultInput = exports.MaskInput = exports.Input = exports.FetchAutoComplete = exports.AutoComplete = exports.ActiveInput = exports.FileUpload = exports.TimePicker = exports.DatePicker = exports.CheckBoxWarning = exports.CheckBox = void 0;
6
+ exports.Menu = exports.Button = exports.TabNavBar = exports.SspComponentsProvider = exports.MODAL = exports.DropFileUpload = exports.File = exports.FieldLabel = exports.Field = exports.Category = exports.FixedAutoComplete = exports.RequiredCheckBoxGroup = exports.CheckBoxAdditional = exports.KeycloakAuthProvider = exports.FormContext = exports.AuthContext = exports.AUTH_COOKIE_NAME = exports.OAuthProvider = exports.FormProvider = exports.NavBar = exports.Table = exports.ToggleVisibility = exports.SwitchWatch = exports.Switch = exports.StepperBlock = exports.Stepper = exports.OtherCheckBox = exports.GenericMaskInput = exports.MaskInput = exports.GenericInput = exports.Input = exports.GenericFetchAutoComplete = exports.FetchAutoComplete = exports.AutoComplete = exports.ActiveInput = exports.FileUpload = exports.TimePicker = exports.GenericDatePicker = exports.DatePicker = exports.CheckBoxWarning = exports.CheckBox = void 0;
7
7
  const CheckBox_1 = __importDefault(require("./components/form/checkbox/CheckBox"));
8
8
  exports.CheckBox = CheckBox_1.default;
9
9
  const CheckBoxWarning_1 = __importDefault(require("./components/form/checkbox/CheckBoxWarning"));
10
10
  exports.CheckBoxWarning = CheckBoxWarning_1.default;
11
11
  const DatePicker_1 = __importDefault(require("./components/form/date/DatePicker"));
12
12
  exports.DatePicker = DatePicker_1.default;
13
+ const GenericDatePicker_1 = __importDefault(require("./components/form/date/GenericDatePicker"));
14
+ exports.GenericDatePicker = GenericDatePicker_1.default;
13
15
  const TimePicker_1 = __importDefault(require("./components/form/date/TimePicker"));
14
16
  exports.TimePicker = TimePicker_1.default;
15
17
  const FileUpload_1 = __importDefault(require("./components/form/file/FileUpload"));
@@ -20,12 +22,14 @@ const AutoComplete_1 = __importDefault(require("./components/form/input/AutoComp
20
22
  exports.AutoComplete = AutoComplete_1.default;
21
23
  const FetchAutoComplete_1 = __importDefault(require("./components/form/input/FetchAutoComplete"));
22
24
  exports.FetchAutoComplete = FetchAutoComplete_1.default;
25
+ const GenericFetchAutoComplete_1 = __importDefault(require("./components/form/input/GenericFetchAutoComplete"));
26
+ exports.GenericFetchAutoComplete = GenericFetchAutoComplete_1.default;
23
27
  const Input_1 = __importDefault(require("./components/form/input/Input"));
24
28
  exports.Input = Input_1.default;
25
29
  const MaskInput_1 = __importDefault(require("./components/form/input/MaskInput"));
26
30
  exports.MaskInput = MaskInput_1.default;
27
- const MultInput_1 = __importDefault(require("./components/form/input/MultInput"));
28
- exports.MultInput = MultInput_1.default;
31
+ const GenericMaskInput_1 = __importDefault(require("./components/form/input/GenericMaskInput"));
32
+ exports.GenericMaskInput = GenericMaskInput_1.default;
29
33
  const OtherCheckBox_1 = __importDefault(require("./components/form/input/OtherCheckBox"));
30
34
  exports.OtherCheckBox = OtherCheckBox_1.default;
31
35
  const Stepper_1 = __importDefault(require("./components/form/stepper/Stepper"));
@@ -78,3 +82,5 @@ const Bt_1 = __importDefault(require("./components/utils/Bt"));
78
82
  exports.Button = Bt_1.default;
79
83
  const CustomMenu_1 = __importDefault(require("./components/utils/CustomMenu"));
80
84
  exports.Menu = CustomMenu_1.default;
85
+ const GenericInput_1 = __importDefault(require("./components/form/input/GenericInput"));
86
+ exports.GenericInput = GenericInput_1.default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ssplib/react-components",
3
- "version": "0.0.261",
3
+ "version": "0.0.263",
4
4
  "description": "SSP React Components",
5
5
  "main": "index.js",
6
6
  "author": "Pedro Henrique <sr.hudrick@gmail.com>",