@bigbinary/neeto-fields-frontend 1.1.10 → 1.1.11
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/README.md +11 -7
- package/dist/index.cjs.js +24 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +25 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/types.d.ts +1 -1
package/README.md
CHANGED
|
@@ -12,7 +12,7 @@ referred as custom fields) for the resources across neeto products.
|
|
|
12
12
|
- Frontend package exports
|
|
13
13
|
- [Components](#components)
|
|
14
14
|
- [FieldsDashBoard](#1-fieldsdashboard)
|
|
15
|
-
- [
|
|
15
|
+
- [FieldsPane](#2-fieldspane)
|
|
16
16
|
- [FieldValuesContainer](#3-fieldvaluescontainer)
|
|
17
17
|
- [FieldInputs](#4-fieldinputs)
|
|
18
18
|
- [Functions](#functions)
|
|
@@ -299,18 +299,22 @@ This is the pane which handles the Add / Edit operations of the field.
|
|
|
299
299
|
#### Usage:
|
|
300
300
|
|
|
301
301
|
```jsx
|
|
302
|
-
import {
|
|
302
|
+
import { FieldsPane } from "@biginary/neeto-fields-frontend";
|
|
303
303
|
|
|
304
|
-
|
|
304
|
+
const [fieldPaneOpen, setFieldPaneOpen] = useState(false);
|
|
305
|
+
|
|
306
|
+
<FieldsPane
|
|
307
|
+
isOpen={fieldPaneOpen}
|
|
305
308
|
allowedKinds={["text", "number"]}
|
|
306
309
|
resourceType="users"
|
|
307
310
|
additionalValidations={{
|
|
308
311
|
hostSpecificInputName: validationSchema,
|
|
309
312
|
}}
|
|
310
313
|
initialValues={{ hostSpecificInputName: initialValue }}
|
|
314
|
+
onClose={() => setFieldPaneOpen(false)}
|
|
311
315
|
>
|
|
312
316
|
<HostSpecificInputFields />
|
|
313
|
-
</
|
|
317
|
+
</FieldsPane>;
|
|
314
318
|
```
|
|
315
319
|
|
|
316
320
|
## 3. `FieldValuesContainer`
|
|
@@ -346,9 +350,9 @@ specific resource.
|
|
|
346
350
|
11. `isRequiredColumnName`: The name of column which holds the value which
|
|
347
351
|
suggests if a field value is a `required` one or not. Default is
|
|
348
352
|
`isRequired` column.
|
|
349
|
-
12. `fieldClassName`: Class names for styling the `div` containing the
|
|
350
|
-
|
|
351
|
-
|
|
353
|
+
12. `fieldClassName`: Class names for styling the `div` containing the input
|
|
354
|
+
field.
|
|
355
|
+
13. `onMutationSuccess`: The callback function which is triggered on the success
|
|
352
356
|
of mutation functions( create, update & delete).
|
|
353
357
|
|
|
354
358
|
#### Usage:
|
package/dist/index.cjs.js
CHANGED
|
@@ -5880,6 +5880,15 @@ var dayjs_minExports = dayjs_min.exports;
|
|
|
5880
5880
|
var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports);
|
|
5881
5881
|
|
|
5882
5882
|
var dateSchema = yup__namespace.date().nullable();
|
|
5883
|
+
var isValueEmpty = function isValueEmpty(value) {
|
|
5884
|
+
return typeof value === "string" && ramda.isEmpty(value.trim());
|
|
5885
|
+
};
|
|
5886
|
+
var isCheckboxUnchecked = function isCheckboxUnchecked(kind, value) {
|
|
5887
|
+
return kind === KINDS.checkbox && !value;
|
|
5888
|
+
};
|
|
5889
|
+
var isArrayEmpty = function isArrayEmpty(kind, value) {
|
|
5890
|
+
return [KINDS.multiOption, KINDS.singleOption, KINDS.dateRange, KINDS.timeRange].includes(kind) && ramda.isEmpty(value);
|
|
5891
|
+
};
|
|
5883
5892
|
var buildSchemaAllowingEmptyValue = function buildSchemaAllowingEmptyValue(schema) {
|
|
5884
5893
|
return yup__namespace.mixed().test({
|
|
5885
5894
|
name: "validate-if-not-empty",
|
|
@@ -5891,11 +5900,11 @@ var buildSchemaAllowingEmptyValue = function buildSchemaAllowingEmptyValue(schem
|
|
|
5891
5900
|
}
|
|
5892
5901
|
});
|
|
5893
5902
|
};
|
|
5894
|
-
var buildSchemaForRequiredInputs = function buildSchemaForRequiredInputs(schema) {
|
|
5903
|
+
var buildSchemaForRequiredInputs = function buildSchemaForRequiredInputs(schema, kind) {
|
|
5895
5904
|
return yup__namespace.mixed().test({
|
|
5896
5905
|
name: "validate-required-inputs",
|
|
5897
5906
|
test: function test(value) {
|
|
5898
|
-
if (ramda.
|
|
5907
|
+
if (ramda.isNil(value) || isValueEmpty(value) || isArrayEmpty(kind, value) || isCheckboxUnchecked(kind, value)) {
|
|
5899
5908
|
throw new yup__namespace.ValidationError(t$1("validations.thisIsRequired"));
|
|
5900
5909
|
}
|
|
5901
5910
|
schema.validateSync(value);
|
|
@@ -5905,14 +5914,16 @@ var buildSchemaForRequiredInputs = function buildSchemaForRequiredInputs(schema)
|
|
|
5905
5914
|
};
|
|
5906
5915
|
var buildSchema = function buildSchema(_ref) {
|
|
5907
5916
|
var schema = _ref.schema,
|
|
5908
|
-
isRequired = _ref.isRequired
|
|
5909
|
-
|
|
5917
|
+
isRequired = _ref.isRequired,
|
|
5918
|
+
kind = _ref.kind;
|
|
5919
|
+
return isRequired ? buildSchemaForRequiredInputs(schema, kind) : buildSchemaAllowingEmptyValue(schema);
|
|
5910
5920
|
};
|
|
5911
5921
|
var getBasicValidationSchema = function getBasicValidationSchema(_ref2) {
|
|
5912
5922
|
var kind = _ref2.kind,
|
|
5913
5923
|
fieldData = _ref2.fieldData;
|
|
5914
5924
|
switch (kind) {
|
|
5915
5925
|
case KINDS.singleOption:
|
|
5926
|
+
case KINDS.textarea:
|
|
5916
5927
|
case KINDS.text:
|
|
5917
5928
|
{
|
|
5918
5929
|
return yup__namespace.string().trim().nullable();
|
|
@@ -5962,7 +5973,8 @@ var buildFieldValidationSchema = function buildFieldValidationSchema(_ref3) {
|
|
|
5962
5973
|
});
|
|
5963
5974
|
return buildSchema({
|
|
5964
5975
|
schema: schema,
|
|
5965
|
-
isRequired: isRequired
|
|
5976
|
+
isRequired: isRequired,
|
|
5977
|
+
kind: kind
|
|
5966
5978
|
});
|
|
5967
5979
|
};
|
|
5968
5980
|
var cleanedRegex = function cleanedRegex(regexCondition) {
|
|
@@ -6089,11 +6101,13 @@ var useFormikFields = function useFormikFields(_ref) {
|
|
|
6089
6101
|
dirty: dirty,
|
|
6090
6102
|
handleSubmit: handleSubmit,
|
|
6091
6103
|
fieldProps: _objectSpread$b(_objectSpread$b({}, formikFieldProps), {}, {
|
|
6092
|
-
required: props[isRequiredColumnName],
|
|
6093
6104
|
error: individualSubmit ? meta.error : meta.touched && meta.error,
|
|
6094
6105
|
options: isDropdown ? buildOptionsToLabelAndValue(fieldData) : undefined,
|
|
6095
6106
|
value: getValueForField(formikFieldProps.value),
|
|
6096
6107
|
label: pure.capitalize(name),
|
|
6108
|
+
labelProps: {
|
|
6109
|
+
required: props[isRequiredColumnName]
|
|
6110
|
+
},
|
|
6097
6111
|
disabled: disabled
|
|
6098
6112
|
})
|
|
6099
6113
|
};
|
|
@@ -6147,7 +6161,8 @@ var MultiOption = function MultiOption(props) {
|
|
|
6147
6161
|
fieldProps = _useFormikFields.fieldProps;
|
|
6148
6162
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
|
|
6149
6163
|
isMulti: true,
|
|
6150
|
-
isSearchable: true
|
|
6164
|
+
isSearchable: true,
|
|
6165
|
+
strategy: "fixed"
|
|
6151
6166
|
}, fieldProps, {
|
|
6152
6167
|
onChange: function onChange(selectedOptions) {
|
|
6153
6168
|
return handleSubmit(ramda.pluck("value", selectedOptions));
|
|
@@ -6209,7 +6224,8 @@ var SingleOption = function SingleOption(props) {
|
|
|
6209
6224
|
fieldProps = _useFormikFields.fieldProps;
|
|
6210
6225
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
|
|
6211
6226
|
isClearable: true,
|
|
6212
|
-
isSearchable: true
|
|
6227
|
+
isSearchable: true,
|
|
6228
|
+
strategy: "fixed"
|
|
6213
6229
|
}, fieldProps, {
|
|
6214
6230
|
onChange: function onChange(option) {
|
|
6215
6231
|
return handleSubmit((option === null || option === void 0 ? void 0 : option.value) || "");
|