linear-react-components-ui 2.0.0-rc.0 → 2.0.0-rc.1

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/index.js CHANGED
@@ -1,7 +1,7 @@
1
- import { jsxs as mr, jsx as w } from "react/jsx-runtime";
2
- import { useState as m, useContext as pr, useRef as j, useCallback as C, useEffect as E, Fragment as gr } from "react";
1
+ import { jsxs as dr, jsx as w } from "react/jsx-runtime";
2
+ import { useState as m, useContext as mr, useRef as j, useCallback as pr, useEffect as E, Fragment as gr } from "react";
3
3
  import n from "../_virtual/lodash.js";
4
- import { changeValue as M, FormContext as Er } from "./helpers.js";
4
+ import { FormContext as Er, changeValue as L } from "./helpers.js";
5
5
  import { default as Rr } from "./Field.js";
6
6
  import { default as Qr } from "./FieldNumber.js";
7
7
  import { default as Dr } from "./FieldArray.js";
@@ -15,80 +15,80 @@ const Cr = ({
15
15
  submitOnPressEnterKey: F = !0,
16
16
  dataSource: p,
17
17
  securityBeforeUnload: x,
18
- handlerReset: J,
19
- handlerSubmit: W,
20
- handlerValidates: A,
21
- style: z,
22
- customClass: I,
23
- securityTitle: T,
24
- securityText: $,
25
- securityData: R,
18
+ handlerReset: C,
19
+ handlerSubmit: M,
20
+ handlerValidates: J,
21
+ style: W,
22
+ customClass: z,
23
+ securityTitle: I,
24
+ securityText: T,
25
+ securityData: A,
26
26
  onDataChange: u,
27
27
  onValidateForm: g,
28
- externalFieldErrors: G,
29
- onSubmit: H,
30
- skeletonize: X,
28
+ externalFieldErrors: $,
29
+ onSubmit: G,
30
+ skeletonize: H,
31
31
  disabled: V,
32
- children: Y,
32
+ children: X,
33
33
  useInternalState: l = !1,
34
34
  onValidateErrorsOnTab: b
35
35
  }) => {
36
- const Z = yr(), [v, S] = m(p), [h, K] = m(p), [Q, _] = m(F), [O, N] = m({}), [q, rr] = m(0), [tr, er] = m(!1), f = pr(hr), or = j(null), a = j({}), d = j([]), i = l ? v : p, D = (r, t) => {
36
+ const Y = yr(), [v, R] = m(p), [h, Z] = m(p), [S, K] = m(F), [O, N] = m({}), [Q, _] = m(0), [rr, tr] = m(!1), c = mr(hr), er = j(null), a = j({}), d = j([]), f = l ? v : p, q = (r, t) => {
37
37
  const e = r instanceof Array ? r : [r];
38
38
  let o = [];
39
39
  return e.forEach((s) => {
40
40
  if (typeof s == "function") {
41
- const c = s(t);
42
- c && (o = [...o, c]);
41
+ const i = s(t);
42
+ i && (o = [...o, i]);
43
43
  }
44
44
  }), o;
45
- }, sr = (r, t) => {
46
- const e = r || i;
47
- let o = n.pickBy(O, (s, c) => Object.keys(t).includes(c));
48
- return n.forEach(t, (s, c) => {
49
- const L = n.get(e, c), dr = D(s, L);
45
+ }, or = (r, t) => {
46
+ const e = r || f;
47
+ let o = n.pickBy(O, (s, i) => Object.keys(t).includes(i));
48
+ return n.forEach(t, (s, i) => {
49
+ const B = n.get(e, i), ur = q(s, B);
50
50
  o = {
51
51
  ...o,
52
- [c]: dr
52
+ [i]: ur
53
53
  };
54
54
  }), o;
55
55
  }, y = (r, t = !0, e = null) => {
56
- const o = sr(r, e || a.current), s = Object.values(o).every((c) => c.length === 0);
57
- return t && er(s), s;
58
- }, nr = C((r) => {
56
+ const o = or(r, e || a.current), s = Object.values(o).every((i) => i.length === 0);
57
+ return t && tr(s), s;
58
+ }, sr = (r) => {
59
59
  const {
60
60
  target: t
61
61
  } = r;
62
- !l && u ? u((e) => M(e, t)) : S((e) => M(e, t));
63
- }, []), ir = (r, t, e) => {
62
+ !l && u ? u((e) => L(e, t)) : R((e) => L(e, t));
63
+ }, nr = (r, t, e) => {
64
64
  if (e) {
65
65
  let o = O;
66
- const s = D(e, t);
66
+ const s = q(e, t);
67
67
  s.length === 0 ? o = n.omit(o, r) : o = {
68
68
  ...o,
69
69
  [r]: s
70
70
  }, N(o);
71
71
  }
72
- }, P = C((r) => {
73
- r && (r.preventDefault(), r.stopPropagation()), y(i) && H(i);
74
- }, [i]), U = (r, t) => {
72
+ }, D = (r) => {
73
+ r && (r.preventDefault(), r.stopPropagation()), y(f) && G(f);
74
+ }, P = (r, t) => {
75
75
  const e = t ? t instanceof Array ? t : [t] : [];
76
76
  e.length > 0 ? (r((o) => {
77
77
  const s = JSON.parse(JSON.stringify(o));
78
- return e.forEach((c) => {
79
- c && n.set(s, c, n.get(h, c));
78
+ return e.forEach((i) => {
79
+ i && n.set(s, i, n.get(h, i));
80
80
  }), s;
81
81
  }), N((o) => (e.forEach((s) => {
82
82
  delete o[s];
83
83
  }), o))) : (r(JSON.parse(JSON.stringify(h))), N({}));
84
+ }, ir = (r) => {
85
+ P(!l && u ? u : R, r);
84
86
  }, cr = (r) => {
85
- U(!l && u ? u : S, r);
86
- }, fr = (r) => {
87
87
  const t = n.omit(a, r);
88
88
  a.current = t;
89
89
  }, k = (r) => {
90
- r.preventDefault(), n.isEqual(i, h);
91
- }, lr = C((r) => {
90
+ r.preventDefault(), n.isEqual(f, h);
91
+ }, fr = pr((r) => {
92
92
  if (!r.tabId) return;
93
93
  const t = [...d.current].findIndex((e) => e.name === r.name);
94
94
  if (t !== -1) {
@@ -102,57 +102,57 @@ const Cr = ({
102
102
  })));
103
103
  b(e);
104
104
  }
105
- }, [b]), ar = () => {
105
+ }, [b]), lr = () => {
106
106
  let r = null;
107
107
  return V || (r = {
108
108
  onSubmit: (t) => t.preventDefault(),
109
109
  onKeyPress: (t) => {
110
- t && t.key === "Enter" && (t.preventDefault(), t.stopPropagation(), Q && P());
110
+ t && t.key === "Enter" && (t.preventDefault(), t.stopPropagation(), S && D());
111
111
  }
112
112
  }), r;
113
- }, B = () => {
114
- if (!n.isEmpty(f)) {
113
+ }, U = () => {
114
+ if (!n.isEmpty(c)) {
115
115
  const {
116
116
  onChangedData: r
117
- } = f;
118
- R && !n.isEqual(i, R) ? r(!0) : r(!1);
117
+ } = c;
118
+ A && !n.isEqual(f, A) ? r(!0) : r(!1);
119
119
  }
120
- u && l && u(i), g && g(y(i, !0)), V || (W(P), J && J(cr), A && A(() => y(i))), n.isEmpty(i) && K(i);
120
+ u && l && u(f), g && g(y(f, !0)), V || (M(D), C && C(ir), J && J(() => y(f))), n.isEmpty(f) && Z(f);
121
121
  };
122
122
  E(() => {
123
- l && B();
123
+ l && U();
124
124
  }, [JSON.stringify(v), l]), E(() => {
125
- !l && u && B();
126
- }, [JSON.stringify(p), l]), E(() => (x && (Object.entries(f).length && f.setSecurityBeforeUnload(!0), window.addEventListener("beforeunload", k)), () => {
127
- x && Object.entries(f).length && f.setSecurityBeforeUnload(!1), window.removeEventListener("beforeunload", k);
125
+ !l && u && U();
126
+ }, [JSON.stringify(p), l]), E(() => (x && (Object.entries(c).length && c.setSecurityBeforeUnload(!0), window.addEventListener("beforeunload", k)), () => {
127
+ x && Object.entries(c).length && c.setSecurityBeforeUnload(!1), window.removeEventListener("beforeunload", k);
128
128
  }), [x, k]), E(() => {
129
- !V && F !== Q && _(F);
129
+ !V && F !== S && K(F);
130
130
  }, [F]), E(() => {
131
131
  const r = Object.values(a.current).reduce((t, e) => t + (e?.length || 0), 0);
132
- a.current && g && q !== r && (rr(r), g(y(i, !0, a.current)));
133
- }, [a.current, q, g, JSON.stringify(i)]);
134
- const ur = {
135
- skeletonize: X,
136
- handlerFieldChange: nr,
137
- handlerFieldValidate: ir,
138
- handleValidationErrorsOnTab: lr,
132
+ a.current && g && Q !== r && (_(r), g(y(f, !0, a.current)));
133
+ }, [a.current, Q, g, JSON.stringify(f)]);
134
+ const ar = {
135
+ skeletonize: H,
136
+ handlerFieldChange: sr,
137
+ handlerFieldValidate: nr,
138
+ handleValidationErrorsOnTab: fr,
139
139
  handlerStoreValidators: (r, t) => {
140
140
  a.current = {
141
141
  ...a.current,
142
142
  [r]: t
143
143
  };
144
144
  },
145
- handlerRemoveValidators: fr,
145
+ handlerRemoveValidators: cr,
146
146
  data: l ? v : p,
147
147
  originalData: h,
148
148
  fieldErrors: O,
149
- externalFieldErrors: G,
150
- isFormValid: tr
149
+ externalFieldErrors: $,
150
+ isFormValid: rr
151
151
  };
152
- return /* @__PURE__ */ mr(gr, { children: [
153
- /* @__PURE__ */ w(Er.Provider, { value: ur, children: /* @__PURE__ */ w("form", { id: Z, ref: or, style: z, ...ar(), role: "presentation", className: `form-component ${I}`, children: Y }) }),
154
- /* @__PURE__ */ w(Fr, { zIndex: "99999999", title: T || "Dados Alterados", text: $ || "Você possui dados alterados, confirma o fechamento?", visible: !n.isEmpty(f) && f.showQuestion, onConfirmClick: f ? f.onConfirmClick : () => {
155
- }, onUnconfirmClick: f ? f.onUnconfirmClick : () => {
152
+ return /* @__PURE__ */ dr(gr, { children: [
153
+ /* @__PURE__ */ w(Er.Provider, { value: ar, children: /* @__PURE__ */ w("form", { id: Y, ref: er, style: W, ...lr(), role: "presentation", className: `form-component ${z}`, children: X }) }),
154
+ /* @__PURE__ */ w(Fr, { zIndex: "99999999", title: I || "Dados Alterados", text: T || "Você possui dados alterados, confirma o fechamento?", visible: !n.isEmpty(c) && c.showQuestion, onConfirmClick: c ? c.onConfirmClick : () => {
155
+ }, onUnconfirmClick: c ? c.onUnconfirmClick : () => {
156
156
  } })
157
157
  ] });
158
158
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/lib/form/index.tsx"],"sourcesContent":["import { Fragment, useState, useEffect, useContext, useRef, FormEvent, useCallback, KeyboardEvent, Dispatch, SetStateAction } from 'react';\nimport { v1 } from 'uuid';\nimport _ from 'lodash';\nimport { changeValue, FormContext } from './helpers';\nimport Field from './Field';\nimport FieldNumber from './FieldNumber';\nimport FieldArray from './FieldArray';\nimport FieldPeriod from './FieldPeriod';\nimport '../assets/styles/form.scss';\nimport { DialogQuestion } from '../dialog';\nimport { FormSecurityContext } from './withFormSecurity';\nimport { FieldErrors, FieldValidator, FormContextProps, FormProps, OnFielChangeEvent, Validator, type PropsValidateTabErrors } from './types';\n\nconst Form = ({\n submitOnPressEnterKey = true, dataSource, securityBeforeUnload, handlerReset, handlerSubmit,\n handlerValidates, style, customClass, securityTitle, securityText, securityData, onDataChange,\n onValidateForm, externalFieldErrors, onSubmit, skeletonize, disabled, children,\n useInternalState = false, onValidateErrorsOnTab,\n}: FormProps) => {\n const formId = v1();\n const [data, setData] = useState(dataSource);\n const [originalData, setOriginalData] = useState(dataSource);\n const [submitFormOnEnter, setSubmitFormOnEnter] = useState(submitOnPressEnterKey);\n const [fieldErrors, setFieldErrors] = useState<FieldErrors>({});\n const [oldFieldsValidatorsQuantity, setOldFieldsValidatorsQuantity] = useState(0);\n const [isValid, setIsValid] = useState(false);\n const context = useContext(FormSecurityContext);\n const formRef = useRef<HTMLFormElement | null>(null);\n const fieldsValidators = useRef<FieldValidator>({});\n const tabsWithErrorRef = useRef<PropsValidateTabErrors[]>([]);\n const usedData = useInternalState ? data : dataSource;\n\n const getValidatesErrorMessages = (validators: Validator | Validator[], fieldValue: string) => {\n const validatorsArray = (!(validators instanceof Array)) ? [validators] : validators;\n let errors: string[] = [];\n validatorsArray.forEach((validator: Validator) => {\n if (typeof validator === 'function') {\n const result = validator(fieldValue);\n if (result) errors = [...errors, result];\n }\n });\n return errors;\n };\n\n const getErrorMessages = (\n currentData: object,\n currentValidators: Validator | Validator[] | FieldValidator,\n ) => {\n const dataValidate = currentData || usedData;\n let currentFieldErrors: FieldErrors = _.pickBy(fieldErrors, (__, fieldName) => {\n const fieldValidatorsNames = Object.keys(currentValidators);\n return fieldValidatorsNames.includes(fieldName);\n }) as FieldErrors;\n _.forEach(currentValidators, (validators, fieldName) => {\n const fieldValue = _.get(dataValidate, fieldName);\n const messages = getValidatesErrorMessages(validators, fieldValue);\n currentFieldErrors = { ...currentFieldErrors, [fieldName]: messages };\n });\n return currentFieldErrors;\n };\n\n const checkIsValid = (\n currentData: object,\n updateState = true,\n currentValidators: Validator | Validator[] | FieldValidator | null = null,\n ): boolean => {\n const currentFieldErrors =\n getErrorMessages(currentData, currentValidators || fieldsValidators.current);\n const isValidNow = Object.values(currentFieldErrors).every(value => value.length === 0);\n if (updateState) setIsValid(isValidNow);\n return isValidNow;\n };\n\n const onFieldChange = useCallback((event: OnFielChangeEvent) => {\n const { target } = event;\n if (!useInternalState && onDataChange) {\n onDataChange((prevState: object) => changeValue(prevState, target));\n } else {\n setData(prevState => changeValue(prevState, target));\n }\n }, []);\n\n const onValidate = (\n fieldName: string,\n fieldValue: string,\n validators: Validator | Validator[],\n ) => {\n if (validators) {\n let currentFieldErrors = fieldErrors;\n const errors = getValidatesErrorMessages(validators, fieldValue);\n if (errors.length === 0) {\n currentFieldErrors = _.omit(currentFieldErrors, fieldName);\n } else {\n currentFieldErrors = { ...currentFieldErrors, [fieldName]: errors };\n }\n setFieldErrors(currentFieldErrors);\n }\n };\n\n const onFormSubmit = useCallback((event?: Event) => {\n if (event) { event.preventDefault(); event.stopPropagation(); }\n if (checkIsValid(usedData)) onSubmit(usedData);\n }, [usedData]);\n\n const onResetField = (\n cb: Dispatch<SetStateAction<object>>,\n fields?: string | string[],\n ) => {\n const fieldsArray = !fields ? [] : (fields instanceof Array ? fields : [fields]);\n if (fieldsArray.length > 0) {\n cb((state: any) => {\n const newState = JSON.parse(JSON.stringify(state));\n fieldsArray.forEach((field) => {\n if (field)\n _.set(newState, field, _.get(originalData, field));\n });\n return newState;\n });\n\n setFieldErrors((state) => {\n fieldsArray.forEach((field) => {\n delete state[field];\n });\n return state;\n });\n } else {\n cb(JSON.parse(JSON.stringify(originalData)));\n setFieldErrors({});\n }\n };\n\n const onReset = (fields?: string | string[]) => {\n if (!useInternalState && onDataChange) {\n onResetField(onDataChange, fields);\n } else {\n onResetField(setData, fields);\n }\n };\n\n const onRemoveFieldValidators = (fieldName: string) => {\n const newFieldsValidators = _.omit(fieldsValidators, fieldName);\n fieldsValidators.current = newFieldsValidators;\n };\n\n const onBeforeUnload = (e: Event) => {\n const event = e as Event;\n event.preventDefault();\n if (_.isEqual(usedData, originalData)) return;\n };\n\n const onValidateTabErrors = useCallback((props: PropsValidateTabErrors) => {\n if (!props.tabId) return;\n\n const tabIndex = [...tabsWithErrorRef.current].findIndex(tab => tab.name === props.name);\n\n if (tabIndex !== -1) {\n const novasTabs = [...tabsWithErrorRef.current];\n novasTabs[tabIndex] = props;\n tabsWithErrorRef.current = [...novasTabs];\n } else {\n tabsWithErrorRef.current = [...tabsWithErrorRef.current, props];\n }\n\n if (onValidateErrorsOnTab) {\n const tabIdsWithErrors = _.uniq(\n _.compact(\n tabsWithErrorRef.current.map((tab) => {\n if (tab.hasErrors) return String(tab.tabId);\n }),\n ),\n );\n onValidateErrorsOnTab(tabIdsWithErrors);\n }\n }, [onValidateErrorsOnTab]);\n\n const formProps = () => {\n let propsForm = null;\n\n if (!disabled) {\n propsForm = {\n onSubmit: (event: FormEvent<HTMLFormElement>) => event.preventDefault(),\n onKeyPress: (event: KeyboardEvent<HTMLFormElement>) => {\n if (event && event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n if (submitFormOnEnter) onFormSubmit();\n }\n },\n };\n }\n return propsForm;\n };\n\n const updateFormState = () => {\n if (!_.isEmpty(context)) {\n const { onChangedData } = context;\n if (securityData && !_.isEqual(usedData, securityData)) {\n onChangedData(true);\n } else {\n onChangedData(false);\n }\n }\n\n if (onDataChange && useInternalState) onDataChange(usedData);\n\n // TODO - Usar debounce para evitar chamada a cada letra digitada\n if (onValidateForm) {\n onValidateForm(checkIsValid(usedData, true));\n }\n\n if (!disabled) {\n handlerSubmit(onFormSubmit);\n if (handlerReset) handlerReset(onReset);\n if (handlerValidates) handlerValidates(() => checkIsValid(usedData));\n }\n if (_.isEmpty(usedData)) setOriginalData(usedData);\n };\n\n useEffect(() => {\n if (useInternalState) updateFormState();\n }, [JSON.stringify(data), useInternalState]);\n\n useEffect(() => {\n if (!useInternalState && onDataChange) updateFormState();\n }, [JSON.stringify(dataSource), useInternalState]);\n\n useEffect(() => {\n if (securityBeforeUnload) {\n if (Object.entries(context).length) context.setSecurityBeforeUnload(true);\n window.addEventListener('beforeunload', onBeforeUnload);\n }\n return () => {\n if (securityBeforeUnload && Object.entries(context).length) \n context.setSecurityBeforeUnload(false);\n window.removeEventListener('beforeunload', onBeforeUnload);\n };\n }, [securityBeforeUnload, onBeforeUnload]);\n\n useEffect(() => {\n if (!disabled && submitOnPressEnterKey !== submitFormOnEnter) {\n setSubmitFormOnEnter(submitOnPressEnterKey);\n }\n }, [submitOnPressEnterKey]);\n\n useEffect(() => {\n const validatorsQuantity = Object.values(fieldsValidators.current)\n .reduce((acc, currentValue) => acc + (currentValue?.length || 0), 0);\n\n if (fieldsValidators.current && onValidateForm\n && oldFieldsValidatorsQuantity !== validatorsQuantity) {\n setOldFieldsValidatorsQuantity(validatorsQuantity);\n onValidateForm(checkIsValid(usedData, true, fieldsValidators.current));\n }\n }, [\n fieldsValidators.current, oldFieldsValidatorsQuantity, onValidateForm, JSON.stringify(usedData),\n ]);\n\n const contextValues: FormContextProps = {\n skeletonize,\n handlerFieldChange: onFieldChange,\n handlerFieldValidate: onValidate,\n handleValidationErrorsOnTab: onValidateTabErrors,\n handlerStoreValidators: (fieldName, fieldValidates) => {\n fieldsValidators.current = { ...fieldsValidators.current, [fieldName]: fieldValidates };\n },\n handlerRemoveValidators: onRemoveFieldValidators,\n data: useInternalState ? data : dataSource,\n originalData,\n fieldErrors,\n externalFieldErrors,\n isFormValid: isValid,\n };\n\n return (\n <Fragment>\n <FormContext.Provider value={contextValues}>\n <form\n id={formId}\n ref={formRef}\n style={style}\n {...formProps()}\n role=\"presentation\"\n className={`form-component ${customClass}`}>\n {children}\n </form>\n </FormContext.Provider>\n <DialogQuestion\n zIndex=\"99999999\"\n title={securityTitle || 'Dados Alterados'}\n text={securityText || 'Você possui dados alterados, confirma o fechamento?'}\n visible={!_.isEmpty(context) && context.showQuestion}\n onConfirmClick={context ? context.onConfirmClick : () => {}}\n onUnconfirmClick={context ? context.onUnconfirmClick : () => {}} />\n </Fragment>\n );\n};\n\nexport default Form;\nexport {\n Field,\n FieldNumber,\n FieldArray,\n FieldPeriod,\n};\n"],"names":["Form","submitOnPressEnterKey","dataSource","securityBeforeUnload","handlerReset","handlerSubmit","handlerValidates","style","customClass","securityTitle","securityText","securityData","onDataChange","onValidateForm","externalFieldErrors","onSubmit","skeletonize","disabled","children","useInternalState","onValidateErrorsOnTab","formId","v1","data","setData","useState","originalData","setOriginalData","submitFormOnEnter","setSubmitFormOnEnter","fieldErrors","setFieldErrors","oldFieldsValidatorsQuantity","setOldFieldsValidatorsQuantity","isValid","setIsValid","context","useContext","FormSecurityContext","formRef","useRef","fieldsValidators","tabsWithErrorRef","usedData","getValidatesErrorMessages","validators","fieldValue","validatorsArray","Array","errors","forEach","validator","result","getErrorMessages","currentData","currentValidators","dataValidate","currentFieldErrors","_","pickBy","__","fieldName","Object","keys","includes","get","messages","checkIsValid","updateState","current","isValidNow","values","every","value","length","onFieldChange","useCallback","event","target","prevState","changeValue","onValidate","omit","onFormSubmit","preventDefault","stopPropagation","onResetField","cb","fields","fieldsArray","state","newState","JSON","parse","stringify","field","set","onReset","onRemoveFieldValidators","newFieldsValidators","onBeforeUnload","e","isEqual","onValidateTabErrors","props","tabId","tabIndex","findIndex","tab","name","novasTabs","tabIdsWithErrors","uniq","compact","map","hasErrors","String","formProps","propsForm","onKeyPress","key","updateFormState","isEmpty","onChangedData","useEffect","entries","setSecurityBeforeUnload","window","addEventListener","removeEventListener","validatorsQuantity","reduce","acc","currentValue","contextValues","handlerFieldChange","handlerFieldValidate","handleValidationErrorsOnTab","handlerStoreValidators","fieldValidates","handlerRemoveValidators","isFormValid","Fragment","jsx","FormContext","DialogQuestion","showQuestion","onConfirmClick","onUnconfirmClick"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/lib/form/index.tsx"],"sourcesContent":["import { Fragment, useState, useEffect, useContext, useRef, FormEvent, useCallback, KeyboardEvent, Dispatch, SetStateAction } from 'react';\nimport { v1 } from 'uuid';\nimport _ from 'lodash';\nimport { changeValue, FormContext } from './helpers';\nimport Field from './Field';\nimport FieldNumber from './FieldNumber';\nimport FieldArray from './FieldArray';\nimport FieldPeriod from './FieldPeriod';\nimport '../assets/styles/form.scss';\nimport { DialogQuestion } from '../dialog';\nimport { FormSecurityContext } from './withFormSecurity';\nimport { FieldErrors, FieldValidator, FormContextProps, FormProps, OnFielChangeEvent, Validator, type PropsValidateTabErrors } from './types';\n\nconst Form = ({\n submitOnPressEnterKey = true, dataSource, securityBeforeUnload, handlerReset, handlerSubmit,\n handlerValidates, style, customClass, securityTitle, securityText, securityData, onDataChange,\n onValidateForm, externalFieldErrors, onSubmit, skeletonize, disabled, children,\n useInternalState = false, onValidateErrorsOnTab,\n}: FormProps) => {\n const formId = v1();\n const [data, setData] = useState(dataSource);\n const [originalData, setOriginalData] = useState(dataSource);\n const [submitFormOnEnter, setSubmitFormOnEnter] = useState(submitOnPressEnterKey);\n const [fieldErrors, setFieldErrors] = useState<FieldErrors>({});\n const [oldFieldsValidatorsQuantity, setOldFieldsValidatorsQuantity] = useState(0);\n const [isValid, setIsValid] = useState(false);\n const context = useContext(FormSecurityContext);\n const formRef = useRef<HTMLFormElement | null>(null);\n const fieldsValidators = useRef<FieldValidator>({});\n const tabsWithErrorRef = useRef<PropsValidateTabErrors[]>([]);\n const usedData = useInternalState ? data : dataSource;\n\n const getValidatesErrorMessages = (validators: Validator | Validator[], fieldValue: string) => {\n const validatorsArray = (!(validators instanceof Array)) ? [validators] : validators;\n let errors: string[] = [];\n validatorsArray.forEach((validator: Validator) => {\n if (typeof validator === 'function') {\n const result = validator(fieldValue);\n if (result) errors = [...errors, result];\n }\n });\n return errors;\n };\n\n const getErrorMessages = (\n currentData: object,\n currentValidators: Validator | Validator[] | FieldValidator,\n ) => {\n const dataValidate = currentData || usedData;\n let currentFieldErrors: FieldErrors = _.pickBy(fieldErrors, (__, fieldName) => {\n const fieldValidatorsNames = Object.keys(currentValidators);\n return fieldValidatorsNames.includes(fieldName);\n }) as FieldErrors;\n _.forEach(currentValidators, (validators, fieldName) => {\n const fieldValue = _.get(dataValidate, fieldName);\n const messages = getValidatesErrorMessages(validators, fieldValue);\n currentFieldErrors = { ...currentFieldErrors, [fieldName]: messages };\n });\n return currentFieldErrors;\n };\n\n const checkIsValid = (\n currentData: object,\n updateState = true,\n currentValidators: Validator | Validator[] | FieldValidator | null = null,\n ): boolean => {\n const currentFieldErrors =\n getErrorMessages(currentData, currentValidators || fieldsValidators.current);\n const isValidNow = Object.values(currentFieldErrors).every(value => value.length === 0);\n if (updateState) setIsValid(isValidNow);\n return isValidNow;\n };\n\n const onFieldChange = (event: OnFielChangeEvent) => {\n const { target } = event;\n if (!useInternalState && onDataChange) {\n onDataChange((prevState: object) => changeValue(prevState, target));\n } else {\n setData(prevState => changeValue(prevState, target));\n }\n };\n\n const onValidate = (\n fieldName: string,\n fieldValue: string,\n validators: Validator | Validator[],\n ) => {\n if (validators) {\n let currentFieldErrors = fieldErrors;\n const errors = getValidatesErrorMessages(validators, fieldValue);\n if (errors.length === 0) {\n currentFieldErrors = _.omit(currentFieldErrors, fieldName);\n } else {\n currentFieldErrors = { ...currentFieldErrors, [fieldName]: errors };\n }\n setFieldErrors(currentFieldErrors);\n }\n };\n\n const onFormSubmit = (event?: Event) => {\n if (event) { event.preventDefault(); event.stopPropagation(); }\n if (checkIsValid(usedData)) onSubmit(usedData);\n };\n\n const onResetField = (\n cb: Dispatch<SetStateAction<object>>,\n fields?: string | string[],\n ) => {\n const fieldsArray = !fields ? [] : (fields instanceof Array ? fields : [fields]);\n if (fieldsArray.length > 0) {\n cb((state: any) => {\n const newState = JSON.parse(JSON.stringify(state));\n fieldsArray.forEach((field) => {\n if (field)\n _.set(newState, field, _.get(originalData, field));\n });\n return newState;\n });\n\n setFieldErrors((state) => {\n fieldsArray.forEach((field) => {\n delete state[field];\n });\n return state;\n });\n } else {\n cb(JSON.parse(JSON.stringify(originalData)));\n setFieldErrors({});\n }\n };\n\n const onReset = (fields?: string | string[]) => {\n if (!useInternalState && onDataChange) {\n onResetField(onDataChange, fields);\n } else {\n onResetField(setData, fields);\n }\n };\n\n const onRemoveFieldValidators = (fieldName: string) => {\n const newFieldsValidators = _.omit(fieldsValidators, fieldName);\n fieldsValidators.current = newFieldsValidators;\n };\n\n const onBeforeUnload = (e: Event) => {\n const event = e as Event;\n event.preventDefault();\n if (_.isEqual(usedData, originalData)) return;\n };\n\n const onValidateTabErrors = useCallback((props: PropsValidateTabErrors) => {\n if (!props.tabId) return;\n\n const tabIndex = [...tabsWithErrorRef.current].findIndex(tab => tab.name === props.name);\n\n if (tabIndex !== -1) {\n const novasTabs = [...tabsWithErrorRef.current];\n novasTabs[tabIndex] = props;\n tabsWithErrorRef.current = [...novasTabs];\n } else {\n tabsWithErrorRef.current = [...tabsWithErrorRef.current, props];\n }\n\n if (onValidateErrorsOnTab) {\n const tabIdsWithErrors = _.uniq(\n _.compact(\n tabsWithErrorRef.current.map((tab) => {\n if (tab.hasErrors) return String(tab.tabId);\n }),\n ),\n );\n onValidateErrorsOnTab(tabIdsWithErrors);\n }\n }, [onValidateErrorsOnTab]);\n\n const formProps = () => {\n let propsForm = null;\n\n if (!disabled) {\n propsForm = {\n onSubmit: (event: FormEvent<HTMLFormElement>) => event.preventDefault(),\n onKeyPress: (event: KeyboardEvent<HTMLFormElement>) => {\n if (event && event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n if (submitFormOnEnter) onFormSubmit();\n }\n },\n };\n }\n return propsForm;\n };\n\n const updateFormState = () => {\n if (!_.isEmpty(context)) {\n const { onChangedData } = context;\n if (securityData && !_.isEqual(usedData, securityData)) {\n onChangedData(true);\n } else {\n onChangedData(false);\n }\n }\n\n if (onDataChange && useInternalState) onDataChange(usedData);\n\n // TODO - Usar debounce para evitar chamada a cada letra digitada\n if (onValidateForm) {\n onValidateForm(checkIsValid(usedData, true));\n }\n\n if (!disabled) {\n handlerSubmit(onFormSubmit);\n if (handlerReset) handlerReset(onReset);\n if (handlerValidates) handlerValidates(() => checkIsValid(usedData));\n }\n if (_.isEmpty(usedData)) setOriginalData(usedData);\n };\n\n useEffect(() => {\n if (useInternalState) updateFormState();\n }, [JSON.stringify(data), useInternalState]);\n\n useEffect(() => {\n if (!useInternalState && onDataChange) updateFormState();\n }, [JSON.stringify(dataSource), useInternalState]);\n\n useEffect(() => {\n if (securityBeforeUnload) {\n if (Object.entries(context).length) context.setSecurityBeforeUnload(true);\n window.addEventListener('beforeunload', onBeforeUnload);\n }\n return () => {\n if (securityBeforeUnload && Object.entries(context).length) \n context.setSecurityBeforeUnload(false);\n window.removeEventListener('beforeunload', onBeforeUnload);\n };\n }, [securityBeforeUnload, onBeforeUnload]);\n\n useEffect(() => {\n if (!disabled && submitOnPressEnterKey !== submitFormOnEnter) {\n setSubmitFormOnEnter(submitOnPressEnterKey);\n }\n }, [submitOnPressEnterKey]);\n\n useEffect(() => {\n const validatorsQuantity = Object.values(fieldsValidators.current)\n .reduce((acc, currentValue) => acc + (currentValue?.length || 0), 0);\n\n if (fieldsValidators.current && onValidateForm\n && oldFieldsValidatorsQuantity !== validatorsQuantity) {\n setOldFieldsValidatorsQuantity(validatorsQuantity);\n onValidateForm(checkIsValid(usedData, true, fieldsValidators.current));\n }\n }, [\n fieldsValidators.current, oldFieldsValidatorsQuantity, onValidateForm, JSON.stringify(usedData),\n ]);\n\n const contextValues: FormContextProps = {\n skeletonize,\n handlerFieldChange: onFieldChange,\n handlerFieldValidate: onValidate,\n handleValidationErrorsOnTab: onValidateTabErrors,\n handlerStoreValidators: (fieldName, fieldValidates) => {\n fieldsValidators.current = { ...fieldsValidators.current, [fieldName]: fieldValidates };\n },\n handlerRemoveValidators: onRemoveFieldValidators,\n data: useInternalState ? data : dataSource,\n originalData,\n fieldErrors,\n externalFieldErrors,\n isFormValid: isValid,\n };\n\n return (\n <Fragment>\n <FormContext.Provider value={contextValues}>\n <form\n id={formId}\n ref={formRef}\n style={style}\n {...formProps()}\n role=\"presentation\"\n className={`form-component ${customClass}`}>\n {children}\n </form>\n </FormContext.Provider>\n <DialogQuestion\n zIndex=\"99999999\"\n title={securityTitle || 'Dados Alterados'}\n text={securityText || 'Você possui dados alterados, confirma o fechamento?'}\n visible={!_.isEmpty(context) && context.showQuestion}\n onConfirmClick={context ? context.onConfirmClick : () => {}}\n onUnconfirmClick={context ? context.onUnconfirmClick : () => {}} />\n </Fragment>\n );\n};\n\nexport default Form;\nexport {\n Field,\n FieldNumber,\n FieldArray,\n FieldPeriod,\n};\n"],"names":["Form","submitOnPressEnterKey","dataSource","securityBeforeUnload","handlerReset","handlerSubmit","handlerValidates","style","customClass","securityTitle","securityText","securityData","onDataChange","onValidateForm","externalFieldErrors","onSubmit","skeletonize","disabled","children","useInternalState","onValidateErrorsOnTab","formId","v1","data","setData","useState","originalData","setOriginalData","submitFormOnEnter","setSubmitFormOnEnter","fieldErrors","setFieldErrors","oldFieldsValidatorsQuantity","setOldFieldsValidatorsQuantity","isValid","setIsValid","context","useContext","FormSecurityContext","formRef","useRef","fieldsValidators","tabsWithErrorRef","usedData","getValidatesErrorMessages","validators","fieldValue","validatorsArray","Array","errors","forEach","validator","result","getErrorMessages","currentData","currentValidators","dataValidate","currentFieldErrors","_","pickBy","__","fieldName","Object","keys","includes","get","messages","checkIsValid","updateState","current","isValidNow","values","every","value","length","onFieldChange","event","target","prevState","changeValue","onValidate","omit","onFormSubmit","preventDefault","stopPropagation","onResetField","cb","fields","fieldsArray","state","newState","JSON","parse","stringify","field","set","onReset","onRemoveFieldValidators","newFieldsValidators","onBeforeUnload","e","isEqual","onValidateTabErrors","useCallback","props","tabId","tabIndex","findIndex","tab","name","novasTabs","tabIdsWithErrors","uniq","compact","map","hasErrors","String","formProps","propsForm","onKeyPress","key","updateFormState","isEmpty","onChangedData","useEffect","entries","setSecurityBeforeUnload","window","addEventListener","removeEventListener","validatorsQuantity","reduce","acc","currentValue","contextValues","handlerFieldChange","handlerFieldValidate","handleValidationErrorsOnTab","handlerStoreValidators","fieldValidates","handlerRemoveValidators","isFormValid","Fragment","jsx","FormContext","DialogQuestion","showQuestion","onConfirmClick","onUnconfirmClick"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "linear-react-components-ui",
3
- "version": "2.0.0-rc.0",
3
+ "version": "2.0.0-rc.1",
4
4
  "description": "Linear Sistemas ReactJs Components",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",