@bigbinary/neeto-fields-frontend 1.1.4 → 1.1.5
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/dist/index.cjs.js +107 -59
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +108 -60
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -7,6 +7,7 @@ var neetoui = require('@bigbinary/neetoui');
|
|
|
7
7
|
var pure = require('@bigbinary/neeto-commons-frontend/pure');
|
|
8
8
|
var ramda = require('ramda');
|
|
9
9
|
var formik = require('formik');
|
|
10
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
10
11
|
var yup = require('yup');
|
|
11
12
|
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
12
13
|
var formik$1 = require('@bigbinary/neetoui/formik');
|
|
@@ -18,7 +19,6 @@ var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
|
|
|
18
19
|
var reactQuery = require('react-query');
|
|
19
20
|
var axios = require('axios');
|
|
20
21
|
var utils = require('@bigbinary/neeto-commons-frontend/utils');
|
|
21
|
-
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
22
22
|
var reactRouterDom = require('react-router-dom');
|
|
23
23
|
var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
|
|
24
24
|
var reactDom = require('react-dom');
|
|
@@ -5882,57 +5882,60 @@ var buildSchemaAllowingEmptyValue = function buildSchemaAllowingEmptyValue(schem
|
|
|
5882
5882
|
name: "validate-if-not-empty",
|
|
5883
5883
|
test: function test(value) {
|
|
5884
5884
|
if (pure.isNotEmpty(value) && ramda.isNotNil(value)) {
|
|
5885
|
-
|
|
5886
|
-
schema.validateSync(value);
|
|
5887
|
-
return true;
|
|
5888
|
-
} catch (_unused) {
|
|
5889
|
-
return false;
|
|
5890
|
-
}
|
|
5885
|
+
schema.validateSync(value);
|
|
5891
5886
|
}
|
|
5892
5887
|
return true;
|
|
5893
5888
|
}
|
|
5894
5889
|
});
|
|
5895
5890
|
};
|
|
5896
|
-
var
|
|
5897
|
-
|
|
5898
|
-
|
|
5899
|
-
|
|
5891
|
+
var buildSchemaForRequiredInputs = function buildSchemaForRequiredInputs(schema) {
|
|
5892
|
+
return yup__namespace.mixed().test({
|
|
5893
|
+
name: "validate-required-inputs",
|
|
5894
|
+
test: function test(value) {
|
|
5895
|
+
if (ramda.isEmpty(value) || ramda.isNil(value)) {
|
|
5896
|
+
throw new yup__namespace.ValidationError(t$1("validations.thisIsRequired"));
|
|
5897
|
+
}
|
|
5898
|
+
schema.validateSync(value);
|
|
5899
|
+
return true;
|
|
5900
|
+
}
|
|
5901
|
+
});
|
|
5902
|
+
};
|
|
5903
|
+
var buildSchema = function buildSchema(_ref) {
|
|
5904
|
+
var schema = _ref.schema,
|
|
5905
|
+
isRequired = _ref.isRequired;
|
|
5906
|
+
return isRequired ? buildSchemaForRequiredInputs(schema) : buildSchemaAllowingEmptyValue(schema);
|
|
5907
|
+
};
|
|
5908
|
+
var getBasicValidationSchema = function getBasicValidationSchema(_ref2) {
|
|
5909
|
+
var kind = _ref2.kind,
|
|
5910
|
+
fieldData = _ref2.fieldData;
|
|
5900
5911
|
switch (kind) {
|
|
5901
5912
|
case KINDS.singleOption:
|
|
5902
5913
|
case KINDS.text:
|
|
5903
5914
|
{
|
|
5904
|
-
|
|
5905
|
-
return isRequired ? schema.required(t$1("validations.thisIsRequired")) : schema;
|
|
5915
|
+
return yup__namespace.string().trim().nullable();
|
|
5906
5916
|
}
|
|
5907
5917
|
case KINDS.number:
|
|
5908
5918
|
case KINDS.monetary:
|
|
5909
5919
|
case KINDS.decimal:
|
|
5910
5920
|
{
|
|
5911
|
-
|
|
5912
|
-
return isRequired ? _schema.required(t$1("validations.thisIsRequired")) : _schema;
|
|
5921
|
+
return yup__namespace.number(t$1("validations.notAValidNumber")).nullable();
|
|
5913
5922
|
}
|
|
5914
5923
|
case KINDS.integer:
|
|
5915
5924
|
{
|
|
5916
|
-
|
|
5917
|
-
return isRequired ? _schema2.required(t$1("validations.thisIsRequired")) : _schema2;
|
|
5925
|
+
return yup__namespace.number().nullable().integer(t$1("validations.notAValidInteger"));
|
|
5918
5926
|
}
|
|
5919
5927
|
case KINDS.date:
|
|
5920
5928
|
case KINDS.time:
|
|
5921
5929
|
{
|
|
5922
|
-
|
|
5923
|
-
return isRequired ? _schema3.required(t$1("validations.thisIsRequired")) : _schema3;
|
|
5930
|
+
return dateSchema;
|
|
5924
5931
|
}
|
|
5925
5932
|
case KINDS.multiOption:
|
|
5926
5933
|
{
|
|
5927
|
-
|
|
5928
|
-
return isRequired ? _schema4.min(1, t$1("validations.minOneItem")).required(t$1("validations.thisIsRequired")) : _schema4;
|
|
5934
|
+
return yup__namespace.array().of(yup__namespace.string()).nullable();
|
|
5929
5935
|
}
|
|
5930
5936
|
case KINDS.dateRange:
|
|
5931
5937
|
case KINDS.timeRange:
|
|
5932
5938
|
{
|
|
5933
|
-
if (isRequired) {
|
|
5934
|
-
return yup__namespace.array().of(dateSchema).required(t$1("validations.thisIsRequired"));
|
|
5935
|
-
}
|
|
5936
5939
|
return yup__namespace.array().of(dateSchema).nullable();
|
|
5937
5940
|
}
|
|
5938
5941
|
case KINDS.checkbox:
|
|
@@ -5940,13 +5943,25 @@ var buildFieldValidationSchema = function buildFieldValidationSchema(_ref) {
|
|
|
5940
5943
|
case KINDS.regex:
|
|
5941
5944
|
{
|
|
5942
5945
|
var regexPattern = fieldData === null || fieldData === void 0 ? void 0 : fieldData.condition;
|
|
5943
|
-
|
|
5944
|
-
return isRequired ? _schema5.required(t$1("validations.thisIsRequired")) : _schema5;
|
|
5946
|
+
return yup__namespace.string().nullable().matches(cleanedRegex(regexPattern), fieldData === null || fieldData === void 0 ? void 0 : fieldData.helpMessage);
|
|
5945
5947
|
}
|
|
5946
5948
|
default:
|
|
5947
5949
|
return yup__namespace.mixed();
|
|
5948
5950
|
}
|
|
5949
5951
|
};
|
|
5952
|
+
var buildFieldValidationSchema = function buildFieldValidationSchema(_ref3) {
|
|
5953
|
+
var kind = _ref3.kind,
|
|
5954
|
+
isRequired = _ref3.isRequired,
|
|
5955
|
+
fieldData = _ref3.fieldData;
|
|
5956
|
+
var schema = getBasicValidationSchema({
|
|
5957
|
+
kind: kind,
|
|
5958
|
+
fieldData: fieldData
|
|
5959
|
+
});
|
|
5960
|
+
return buildSchema({
|
|
5961
|
+
schema: schema,
|
|
5962
|
+
isRequired: isRequired
|
|
5963
|
+
});
|
|
5964
|
+
};
|
|
5950
5965
|
var cleanedRegex = function cleanedRegex(expression) {
|
|
5951
5966
|
if (expression.startsWith("/") && expression.endsWith("/")) {
|
|
5952
5967
|
return expression.slice(1, -1);
|
|
@@ -5955,9 +5970,9 @@ var cleanedRegex = function cleanedRegex(expression) {
|
|
|
5955
5970
|
};
|
|
5956
5971
|
var buildOptionsToLabelAndValue = function buildOptionsToLabelAndValue() {
|
|
5957
5972
|
var optionObjects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
5958
|
-
return optionObjects.map(function (
|
|
5959
|
-
var label =
|
|
5960
|
-
value =
|
|
5973
|
+
return optionObjects.map(function (_ref4) {
|
|
5974
|
+
var label = _ref4.label,
|
|
5975
|
+
value = _ref4.value;
|
|
5961
5976
|
return {
|
|
5962
5977
|
label: label,
|
|
5963
5978
|
value: value || label
|
|
@@ -5968,12 +5983,12 @@ var buildArrayToLabelAndValues = function buildArrayToLabelAndValues(value) {
|
|
|
5968
5983
|
return ramda.map(pure.toLabelAndValue, value || []);
|
|
5969
5984
|
};
|
|
5970
5985
|
var validateField = /*#__PURE__*/function () {
|
|
5971
|
-
var
|
|
5986
|
+
var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref5) {
|
|
5972
5987
|
var fieldValue, fieldName, isRequired, kind, fieldData;
|
|
5973
5988
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
5974
5989
|
while (1) switch (_context.prev = _context.next) {
|
|
5975
5990
|
case 0:
|
|
5976
|
-
fieldValue =
|
|
5991
|
+
fieldValue = _ref5.fieldValue, fieldName = _ref5.fieldName, isRequired = _ref5.isRequired, kind = _ref5.kind, fieldData = _ref5.fieldData;
|
|
5977
5992
|
_context.prev = 1;
|
|
5978
5993
|
_context.next = 4;
|
|
5979
5994
|
return yup__namespace.object().shape(_defineProperty({}, fieldName, buildFieldValidationSchema({
|
|
@@ -5994,7 +6009,7 @@ var validateField = /*#__PURE__*/function () {
|
|
|
5994
6009
|
}, _callee, null, [[1, 7]]);
|
|
5995
6010
|
}));
|
|
5996
6011
|
return function validateField(_x) {
|
|
5997
|
-
return
|
|
6012
|
+
return _ref6.apply(this, arguments);
|
|
5998
6013
|
};
|
|
5999
6014
|
}();
|
|
6000
6015
|
var dateTimeToString = function dateTimeToString(dateTime) {
|
|
@@ -6017,8 +6032,7 @@ var useFormikFields = function useFormikFields(_ref) {
|
|
|
6017
6032
|
isRequiredColumnName = _ref$isRequiredColumn === void 0 ? "isRequired" : _ref$isRequiredColumn,
|
|
6018
6033
|
props = _objectWithoutProperties(_ref, _excluded$3);
|
|
6019
6034
|
var formikContext = formik.useFormikContext();
|
|
6020
|
-
var
|
|
6021
|
-
submitForm = formikContext.submitForm,
|
|
6035
|
+
var submitForm = formikContext.submitForm,
|
|
6022
6036
|
dirty = formikContext.dirty,
|
|
6023
6037
|
isSubmitting = formikContext.isSubmitting;
|
|
6024
6038
|
var fieldPath = escapeString("".concat(name, "-").concat(fieldId));
|
|
@@ -6045,9 +6059,10 @@ var useFormikFields = function useFormikFields(_ref) {
|
|
|
6045
6059
|
formikFieldProps = _useField2[0],
|
|
6046
6060
|
meta = _useField2[1],
|
|
6047
6061
|
helpers = _useField2[2];
|
|
6062
|
+
var debouncedSubmitForm = reactUtils.useFuncDebounce(submitForm, 100);
|
|
6048
6063
|
var handleSubmit = function handleSubmit(value) {
|
|
6049
|
-
ramda.isNotNil(value) &&
|
|
6050
|
-
individualSubmit &&
|
|
6064
|
+
ramda.isNotNil(value) && helpers.setValue(value);
|
|
6065
|
+
individualSubmit && debouncedSubmitForm();
|
|
6051
6066
|
};
|
|
6052
6067
|
var getValueForField = function getValueForField(value) {
|
|
6053
6068
|
if (kind === KINDS.singleOption) {
|
|
@@ -6058,17 +6073,19 @@ var useFormikFields = function useFormikFields(_ref) {
|
|
|
6058
6073
|
return value || "";
|
|
6059
6074
|
};
|
|
6060
6075
|
var isDropdown = ["single_option", "multi_option"].includes(kind);
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6076
|
+
React.useEffect(function () {
|
|
6077
|
+
if (isSubmitting && !meta.touched) {
|
|
6078
|
+
helpers.setTouched(true);
|
|
6079
|
+
}
|
|
6080
|
+
}, [isSubmitting]);
|
|
6064
6081
|
return {
|
|
6082
|
+
dirty: dirty,
|
|
6065
6083
|
handleSubmit: handleSubmit,
|
|
6066
6084
|
fieldProps: _objectSpread$a(_objectSpread$a({}, formikFieldProps), {}, {
|
|
6067
6085
|
required: props[isRequiredColumnName],
|
|
6068
6086
|
error: individualSubmit ? meta.error : meta.touched && meta.error,
|
|
6069
6087
|
options: isDropdown ? buildOptionsToLabelAndValue(fieldData) : undefined,
|
|
6070
6088
|
value: getValueForField(formikFieldProps.value),
|
|
6071
|
-
dirty: dirty,
|
|
6072
6089
|
label: !individualSubmit && pure.capitalize(name),
|
|
6073
6090
|
disabled: disabled
|
|
6074
6091
|
})
|
|
@@ -6134,8 +6151,9 @@ var MultiOption = function MultiOption(props) {
|
|
|
6134
6151
|
var Number$1 = function Number(props) {
|
|
6135
6152
|
var _useFormikFields = useFormikFields(props),
|
|
6136
6153
|
handleSubmit = _useFormikFields.handleSubmit,
|
|
6137
|
-
fieldProps = _useFormikFields.fieldProps
|
|
6138
|
-
|
|
6154
|
+
fieldProps = _useFormikFields.fieldProps,
|
|
6155
|
+
dirty = _useFormikFields.dirty;
|
|
6156
|
+
var showSubmitButton = props.individualSubmit && dirty;
|
|
6139
6157
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, {
|
|
6140
6158
|
type: "number",
|
|
6141
6159
|
suffix: showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
|
|
@@ -6156,7 +6174,11 @@ var RangePicker = function RangePicker(props) {
|
|
|
6156
6174
|
var _ref2 = _slicedToArray(_ref, 2),
|
|
6157
6175
|
begin = _ref2[0],
|
|
6158
6176
|
end = _ref2[1];
|
|
6159
|
-
|
|
6177
|
+
if (begin && end) {
|
|
6178
|
+
handleSubmit([dateTimeToString(begin), dateTimeToString(end)]);
|
|
6179
|
+
} else {
|
|
6180
|
+
handleSubmit([]);
|
|
6181
|
+
}
|
|
6160
6182
|
};
|
|
6161
6183
|
if (props.kind === KINDS.dateRange) {
|
|
6162
6184
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, fieldProps, {
|
|
@@ -6179,11 +6201,11 @@ var SingleOption = function SingleOption(props) {
|
|
|
6179
6201
|
handleSubmit = _useFormikFields.handleSubmit,
|
|
6180
6202
|
fieldProps = _useFormikFields.fieldProps;
|
|
6181
6203
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
|
|
6204
|
+
isClearable: true,
|
|
6182
6205
|
isSearchable: true
|
|
6183
6206
|
}, fieldProps, {
|
|
6184
|
-
onChange: function onChange(
|
|
6185
|
-
|
|
6186
|
-
return handleSubmit(value);
|
|
6207
|
+
onChange: function onChange(option) {
|
|
6208
|
+
return handleSubmit((option === null || option === void 0 ? void 0 : option.value) || "");
|
|
6187
6209
|
}
|
|
6188
6210
|
}));
|
|
6189
6211
|
};
|
|
@@ -6191,8 +6213,9 @@ var SingleOption = function SingleOption(props) {
|
|
|
6191
6213
|
var Text = function Text(props) {
|
|
6192
6214
|
var _useFormikFields = useFormikFields(props),
|
|
6193
6215
|
handleSubmit = _useFormikFields.handleSubmit,
|
|
6194
|
-
fieldProps = _useFormikFields.fieldProps
|
|
6195
|
-
|
|
6216
|
+
fieldProps = _useFormikFields.fieldProps,
|
|
6217
|
+
dirty = _useFormikFields.dirty;
|
|
6218
|
+
var showSubmitButton = props.individualSubmit && dirty;
|
|
6196
6219
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, {
|
|
6197
6220
|
suffix: showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
|
|
6198
6221
|
icon: neetoIcons.Check,
|
|
@@ -6209,8 +6232,9 @@ var TextArea = function TextArea(props) {
|
|
|
6209
6232
|
t = _useTranslation.t;
|
|
6210
6233
|
var _useFormikFields = useFormikFields(props),
|
|
6211
6234
|
handleSubmit = _useFormikFields.handleSubmit,
|
|
6212
|
-
fieldProps = _useFormikFields.fieldProps
|
|
6213
|
-
|
|
6235
|
+
fieldProps = _useFormikFields.fieldProps,
|
|
6236
|
+
dirty = _useFormikFields.dirty;
|
|
6237
|
+
var showSubmitButton = props.individualSubmit && dirty;
|
|
6214
6238
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Textarea, fieldProps), showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
|
|
6215
6239
|
className: "m-auto mt-2",
|
|
6216
6240
|
label: t("labels.submit"),
|
|
@@ -6277,26 +6301,46 @@ var transformValues = function transformValues(_ref2) {
|
|
|
6277
6301
|
fieldValuesAttributes: cleanedFieldValues
|
|
6278
6302
|
});
|
|
6279
6303
|
};
|
|
6280
|
-
var
|
|
6281
|
-
|
|
6304
|
+
var getDefaultInitialValue = function getDefaultInitialValue(kind) {
|
|
6305
|
+
switch (kind) {
|
|
6306
|
+
case KINDS.checkbox:
|
|
6307
|
+
return false;
|
|
6308
|
+
case KINDS.multiOption:
|
|
6309
|
+
case KINDS.dateRange:
|
|
6310
|
+
case KINDS.timeRange:
|
|
6311
|
+
return [];
|
|
6312
|
+
default:
|
|
6313
|
+
return "";
|
|
6314
|
+
}
|
|
6315
|
+
};
|
|
6316
|
+
var getInitialFieldValue = function getInitialFieldValue(_ref4) {
|
|
6317
|
+
var field = _ref4.field,
|
|
6318
|
+
_ref4$fieldValues = _ref4.fieldValues,
|
|
6319
|
+
fieldValues = _ref4$fieldValues === void 0 ? [] : _ref4$fieldValues,
|
|
6320
|
+
_ref4$isIndividualFie = _ref4.isIndividualFieldForm,
|
|
6321
|
+
isIndividualFieldForm = _ref4$isIndividualFie === void 0 ? false : _ref4$isIndividualFie;
|
|
6282
6322
|
var existingFieldValueData = pure.findBy({
|
|
6283
6323
|
fieldId: field.id
|
|
6284
6324
|
}, fieldValues);
|
|
6325
|
+
var keyInData = field.kind === KINDS.multiOption ? "values" : "value";
|
|
6285
6326
|
var newFieldValueData = {
|
|
6286
6327
|
fieldId: field.id,
|
|
6287
|
-
data: null
|
|
6328
|
+
data: isIndividualFieldForm ? _defineProperty({}, keyInData, getDefaultInitialValue(field.kind)) : null
|
|
6288
6329
|
};
|
|
6289
6330
|
return _defineProperty({}, escapeString("".concat(field.name, "-").concat(field.id)), existingFieldValueData || newFieldValueData);
|
|
6290
6331
|
};
|
|
6291
6332
|
var getAllInitialFieldValues = function getAllInitialFieldValues(fields) {
|
|
6292
6333
|
var fieldValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
6293
6334
|
return getNonSystemFields(fields).map(function (field) {
|
|
6294
|
-
return getInitialFieldValue(
|
|
6335
|
+
return getInitialFieldValue({
|
|
6336
|
+
field: field,
|
|
6337
|
+
fieldValues: fieldValues
|
|
6338
|
+
});
|
|
6295
6339
|
});
|
|
6296
6340
|
};
|
|
6297
|
-
var mergeInitialValues = function mergeInitialValues(
|
|
6298
|
-
var initialValues =
|
|
6299
|
-
fields =
|
|
6341
|
+
var mergeInitialValues = function mergeInitialValues(_ref7) {
|
|
6342
|
+
var initialValues = _ref7.initialValues,
|
|
6343
|
+
fields = _ref7.fields;
|
|
6300
6344
|
var initialValue = ramda.mergeAll([initialValues].concat(_toConsumableArray(getAllInitialFieldValues(fields, initialValues === null || initialValues === void 0 ? void 0 : initialValues.fieldValues))));
|
|
6301
6345
|
return ramda.omit(["fieldValues"], initialValue);
|
|
6302
6346
|
};
|
|
@@ -6617,7 +6661,7 @@ var FIELD_KINDS = {
|
|
|
6617
6661
|
single_option: {
|
|
6618
6662
|
value: "single_option",
|
|
6619
6663
|
label: t$1("fields.kinds.singleOption"),
|
|
6620
|
-
group:
|
|
6664
|
+
group: 12
|
|
6621
6665
|
},
|
|
6622
6666
|
multi_option: {
|
|
6623
6667
|
value: "multi_option",
|
|
@@ -12026,7 +12070,11 @@ var FieldValueInputWrapper = function FieldValueInputWrapper(_ref) {
|
|
|
12026
12070
|
scrollToErrorField: true,
|
|
12027
12071
|
className: classnames__default["default"]("flex w-full", className),
|
|
12028
12072
|
formikProps: {
|
|
12029
|
-
initialValues: getInitialFieldValue(
|
|
12073
|
+
initialValues: getInitialFieldValue({
|
|
12074
|
+
field: field,
|
|
12075
|
+
fieldValues: fieldValues,
|
|
12076
|
+
isIndividualFieldForm: true
|
|
12077
|
+
}),
|
|
12030
12078
|
onSubmit: onSubmit,
|
|
12031
12079
|
enableReinitialize: true
|
|
12032
12080
|
}
|