@bigbinary/neeto-form-frontend 1.2.45 → 1.2.47
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 +10 -0
- package/app/javascript/src/translations/en.json +0 -3
- package/dist/index.cjs.js +47 -46
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +48 -47
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -76,6 +76,16 @@ The engine adds setup for form on backend and allows us to attach forms to any m
|
|
|
76
76
|
has_one :form, class_name: "::NeetoFormEngine::Form", as: :attachable
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
### Customizability
|
|
80
|
+
The engine supports customizing the default behavior of `Questions::UpdateService`. The supported methods/constants can be overridden by defining them in the concern `NeetoFormEngine::Customizable::Questions::Updateable`
|
|
81
|
+
|
|
82
|
+
#### Available methods:
|
|
83
|
+
1. `create_question!`: This takes 2 arguments: `params` and `question`. The `params` argument contains the question parameters passed from the front-end, and the `question` argument contains the current question. This argument is required if you need translation support.
|
|
84
|
+
2. `additional_question_params`: If you want to include additional attributes while creating questions, you can specify them using this method. It takes one argument `params` which will be the question parameters passed from the front-end.
|
|
85
|
+
|
|
86
|
+
#### Available constants:
|
|
87
|
+
1. `EXCLUDED_UPDATE_PARAMS`: If you have included extra parameters other than `kind` for additional use cases that are not valid entity attributes, they need to be specified as `EXCLUDED_UPDATE_PARAMS`.
|
|
88
|
+
|
|
79
89
|
## Frontend package
|
|
80
90
|
The frontend package allows us to create forms across neeto products.
|
|
81
91
|
|
package/dist/index.cjs.js
CHANGED
|
@@ -9842,14 +9842,15 @@ var useBuildFormState = function useBuildFormState() {
|
|
|
9842
9842
|
};
|
|
9843
9843
|
|
|
9844
9844
|
var ChangeLanguageDropdown = function ChangeLanguageDropdown(_ref) {
|
|
9845
|
-
var
|
|
9845
|
+
var _findBy;
|
|
9846
|
+
var currentLanguage = _ref.currentLanguage,
|
|
9846
9847
|
languages = _ref.languages,
|
|
9847
9848
|
onChange = _ref.onChange;
|
|
9848
9849
|
var _useState = React$2.useState(false),
|
|
9849
9850
|
_useState2 = _slicedToArray$3(_useState, 2),
|
|
9850
9851
|
isUnsavedChangesAlertOpen = _useState2[0],
|
|
9851
9852
|
setIsUnsavedChangesAlertOpen = _useState2[1];
|
|
9852
|
-
var _useState3 = React$2.useState(
|
|
9853
|
+
var _useState3 = React$2.useState(currentLanguage),
|
|
9853
9854
|
_useState4 = _slicedToArray$3(_useState3, 2),
|
|
9854
9855
|
selectedLanguage = _useState4[0],
|
|
9855
9856
|
setSelectedLanguage = _useState4[1];
|
|
@@ -9865,17 +9866,24 @@ var ChangeLanguageDropdown = function ChangeLanguageDropdown(_ref) {
|
|
|
9865
9866
|
setSelectedLanguage(code);
|
|
9866
9867
|
setIsUnsavedChangesAlertOpen(true);
|
|
9867
9868
|
};
|
|
9869
|
+
var selectedLanguageName = (_findBy = neetoCist.findBy({
|
|
9870
|
+
code: currentLanguage
|
|
9871
|
+
}, languages)) === null || _findBy === void 0 ? void 0 : _findBy.name;
|
|
9868
9872
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, {
|
|
9869
9873
|
content: t("neetoForm.questions.changeLanguage")
|
|
9870
9874
|
}, /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown, {
|
|
9875
|
+
buttonProps: {
|
|
9876
|
+
iconPosition: "left"
|
|
9877
|
+
},
|
|
9871
9878
|
buttonStyle: "text",
|
|
9872
9879
|
icon: neetoIcons.Globe,
|
|
9880
|
+
label: selectedLanguageName,
|
|
9873
9881
|
position: "top-start"
|
|
9874
9882
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown.Menu, null, languages.map(function (_ref2) {
|
|
9875
9883
|
var code = _ref2.code,
|
|
9876
9884
|
name = _ref2.name;
|
|
9877
9885
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.Dropdown.MenuItem.Button, {
|
|
9878
|
-
isActive:
|
|
9886
|
+
isActive: currentLanguage === code,
|
|
9879
9887
|
key: code,
|
|
9880
9888
|
onClick: function onClick() {
|
|
9881
9889
|
return languageChangeHandler(code);
|
|
@@ -9912,7 +9920,7 @@ var Overview = function Overview(_ref) {
|
|
|
9912
9920
|
style: "h4",
|
|
9913
9921
|
weight: "semibold"
|
|
9914
9922
|
}, title), availableLanguages.length > 1 && /*#__PURE__*/React__default["default"].createElement(ChangeLanguageDropdown, {
|
|
9915
|
-
|
|
9923
|
+
currentLanguage: selectedLanguage,
|
|
9916
9924
|
languages: availableLanguages,
|
|
9917
9925
|
onChange: onLanguageChange
|
|
9918
9926
|
})), description);
|
|
@@ -12047,7 +12055,8 @@ var BuildForm = function BuildForm(_ref) {
|
|
|
12047
12055
|
className: "flex h-full w-full items-center justify-center py-6"
|
|
12048
12056
|
}, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null));
|
|
12049
12057
|
}
|
|
12050
|
-
var handleSubmit = function handleSubmit(payload) {
|
|
12058
|
+
var handleSubmit = function handleSubmit(payload, _ref2) {
|
|
12059
|
+
var setSubmitting = _ref2.setSubmitting;
|
|
12051
12060
|
updateQuestions({
|
|
12052
12061
|
id: id,
|
|
12053
12062
|
values: _objectSpread$e({
|
|
@@ -12055,7 +12064,10 @@ var BuildForm = function BuildForm(_ref) {
|
|
|
12055
12064
|
neetoFormQuestion: payload
|
|
12056
12065
|
}, buildRequestArgs)
|
|
12057
12066
|
}, {
|
|
12058
|
-
onSuccess: refetch
|
|
12067
|
+
onSuccess: refetch,
|
|
12068
|
+
onSettled: function onSettled() {
|
|
12069
|
+
return setSubmitting(false);
|
|
12070
|
+
}
|
|
12059
12071
|
});
|
|
12060
12072
|
};
|
|
12061
12073
|
var onValueChange = function onValueChange(questions) {
|
|
@@ -12068,8 +12080,8 @@ var BuildForm = function BuildForm(_ref) {
|
|
|
12068
12080
|
var isDeletable = isQuestionDeletable !== null && isQuestionDeletable !== void 0 ? isQuestionDeletable : function (question) {
|
|
12069
12081
|
return !nonRemovableFields.includes(question.kind);
|
|
12070
12082
|
};
|
|
12071
|
-
var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (
|
|
12072
|
-
var kind =
|
|
12083
|
+
var isRequiredField = isFieldRequired !== null && isFieldRequired !== void 0 ? isFieldRequired : function (_ref3) {
|
|
12084
|
+
var kind = _ref3.kind;
|
|
12073
12085
|
return requiredFields.includes(kind);
|
|
12074
12086
|
};
|
|
12075
12087
|
var isDisabledFieldLabel = isFieldLabelDisabled !== null && isFieldLabelDisabled !== void 0 ? isFieldLabelDisabled : function () {
|
|
@@ -12087,9 +12099,9 @@ var BuildForm = function BuildForm(_ref) {
|
|
|
12087
12099
|
},
|
|
12088
12100
|
validationSchema: formValidationSchema,
|
|
12089
12101
|
onSubmit: handleSubmit
|
|
12090
|
-
}, function (
|
|
12091
|
-
var errors =
|
|
12092
|
-
setFieldError =
|
|
12102
|
+
}, function (_ref4) {
|
|
12103
|
+
var errors = _ref4.errors,
|
|
12104
|
+
setFieldError = _ref4.setFieldError;
|
|
12093
12105
|
return /*#__PURE__*/React__default["default"].createElement(Form, _extends$8({}, _objectSpread$e(_objectSpread$e({}, formDomProps), {}, {
|
|
12094
12106
|
availableLanguages: availableLanguages,
|
|
12095
12107
|
cancelButtonProps: cancelButtonProps,
|
|
@@ -16087,7 +16099,7 @@ var getNumberFromUrl = function getNumberFromUrl(_ref6) {
|
|
|
16087
16099
|
var parsedValue = kind === QUESTION_KIND.INTEGER.value ? parseInt(fieldCodeValue) : parseFloat(fieldCodeValue);
|
|
16088
16100
|
return parsedValue || "";
|
|
16089
16101
|
};
|
|
16090
|
-
var getLabel
|
|
16102
|
+
var getLabel = function getLabel(label, isRequired) {
|
|
16091
16103
|
return isRequired ? "".concat(label, "*") : label;
|
|
16092
16104
|
};
|
|
16093
16105
|
var generateInitValues = function generateInitValues(_ref7) {
|
|
@@ -16353,7 +16365,7 @@ var DateField = function DateField(_ref) {
|
|
|
16353
16365
|
className: "neeto-form-engine-input__label-wrapper"
|
|
16354
16366
|
}, label && /*#__PURE__*/React__default["default"].createElement("label", {
|
|
16355
16367
|
className: "neeto-form-engine-label"
|
|
16356
|
-
}, getLabel
|
|
16368
|
+
}, getLabel(label, isRequired))), /*#__PURE__*/React__default["default"].createElement("div", {
|
|
16357
16369
|
className: "neeto-form-engine-date-picker"
|
|
16358
16370
|
}, /*#__PURE__*/React__default["default"].createElement(formik.Field, {
|
|
16359
16371
|
name: name || nodeId,
|
|
@@ -26526,7 +26538,7 @@ var OptionsField = function OptionsField(_ref) {
|
|
|
26526
26538
|
isRequired: isRequired,
|
|
26527
26539
|
name: name,
|
|
26528
26540
|
error: getError(meta),
|
|
26529
|
-
label: getLabel
|
|
26541
|
+
label: getLabel(label, isRequired),
|
|
26530
26542
|
options: transformedOptions,
|
|
26531
26543
|
type: kind,
|
|
26532
26544
|
value: isDropdown ? neetoCist.findBy({
|
|
@@ -26649,7 +26661,7 @@ var RatingField = function RatingField(_ref) {
|
|
|
26649
26661
|
field = _ref2.field;
|
|
26650
26662
|
return /*#__PURE__*/React__default["default"].createElement(Rating$1, _extends$8({}, field, {
|
|
26651
26663
|
error: meta.touched ? meta.error : "",
|
|
26652
|
-
label: getLabel
|
|
26664
|
+
label: getLabel(label, isRequired),
|
|
26653
26665
|
averageRatingLabel: fieldWithFallback(question, "averageRatingLabel") || RATING_VALUES.AVERAGE.label,
|
|
26654
26666
|
highestRatingLabel: fieldWithFallback(question, "highestRatingLabel") || RATING_VALUES.GOOD.label,
|
|
26655
26667
|
lowestRatingLabel: fieldWithFallback(question, "lowestRatingLabel") || RATING_VALUES.BAD.label
|
|
@@ -26677,7 +26689,7 @@ var RichTextEditor = function RichTextEditor(_ref) {
|
|
|
26677
26689
|
className: "neeto-form-engine-input__label-wrapper"
|
|
26678
26690
|
}, label && /*#__PURE__*/React__default["default"].createElement("label", {
|
|
26679
26691
|
className: "neeto-form-engine-label"
|
|
26680
|
-
}, getLabel
|
|
26692
|
+
}, getLabel(label, isRequired))), /*#__PURE__*/React__default["default"].createElement(formik.FastField, _extends$8({
|
|
26681
26693
|
debouncedPlaceholder: debouncedPlaceholder,
|
|
26682
26694
|
error: errors[name],
|
|
26683
26695
|
name: name || nodeId,
|
|
@@ -26802,7 +26814,7 @@ var StarRatingField = function StarRatingField(_ref) {
|
|
|
26802
26814
|
shape: shape,
|
|
26803
26815
|
count: sanitizedCount,
|
|
26804
26816
|
error: meta.touched ? meta.error : "",
|
|
26805
|
-
label: getLabel
|
|
26817
|
+
label: getLabel(label, isRequired)
|
|
26806
26818
|
}, field));
|
|
26807
26819
|
});
|
|
26808
26820
|
};
|
|
@@ -29909,17 +29921,9 @@ var FileUpload = function FileUpload(_ref) {
|
|
|
29909
29921
|
}));
|
|
29910
29922
|
};
|
|
29911
29923
|
|
|
29912
|
-
var
|
|
29913
|
-
var
|
|
29924
|
+
var getValue = function getValue(_ref) {
|
|
29925
|
+
var value = _ref.value,
|
|
29914
29926
|
kind = _ref.kind;
|
|
29915
|
-
if (kind === QUESTION_KIND.ADDITIONAL_GUESTS.value) {
|
|
29916
|
-
return i18next.t("neetoForm.labels.additionalGuests");
|
|
29917
|
-
}
|
|
29918
|
-
return label;
|
|
29919
|
-
};
|
|
29920
|
-
var getValue = function getValue(_ref2) {
|
|
29921
|
-
var value = _ref2.value,
|
|
29922
|
-
kind = _ref2.kind;
|
|
29923
29927
|
if (ramda.isEmpty(value)) return /*#__PURE__*/React__default["default"].createElement("i", null, i18next.t("neetoForm.common.unanswered"));
|
|
29924
29928
|
if (kind === QUESTION_KIND.DATE.value) {
|
|
29925
29929
|
return value && utils.dateFormat.date(value);
|
|
@@ -29938,17 +29942,17 @@ var getEditorContent = function getEditorContent(value) {
|
|
|
29938
29942
|
}
|
|
29939
29943
|
return value;
|
|
29940
29944
|
};
|
|
29941
|
-
var Submission = function Submission(
|
|
29942
|
-
var
|
|
29943
|
-
formId =
|
|
29944
|
-
|
|
29945
|
-
submissionId =
|
|
29946
|
-
|
|
29947
|
-
className =
|
|
29948
|
-
|
|
29949
|
-
questionLabelProps =
|
|
29950
|
-
|
|
29951
|
-
answerProps =
|
|
29945
|
+
var Submission = function Submission(_ref2) {
|
|
29946
|
+
var _ref2$formId = _ref2.formId,
|
|
29947
|
+
formId = _ref2$formId === void 0 ? "" : _ref2$formId,
|
|
29948
|
+
_ref2$submissionId = _ref2.submissionId,
|
|
29949
|
+
submissionId = _ref2$submissionId === void 0 ? "" : _ref2$submissionId,
|
|
29950
|
+
_ref2$className = _ref2.className,
|
|
29951
|
+
className = _ref2$className === void 0 ? "" : _ref2$className,
|
|
29952
|
+
_ref2$questionLabelPr = _ref2.questionLabelProps,
|
|
29953
|
+
questionLabelProps = _ref2$questionLabelPr === void 0 ? {} : _ref2$questionLabelPr,
|
|
29954
|
+
_ref2$answerProps = _ref2.answerProps,
|
|
29955
|
+
answerProps = _ref2$answerProps === void 0 ? {} : _ref2$answerProps;
|
|
29952
29956
|
var _useSubmission = useSubmission({
|
|
29953
29957
|
formId: formId,
|
|
29954
29958
|
submissionId: submissionId,
|
|
@@ -29996,20 +30000,17 @@ var Submission = function Submission(_ref3) {
|
|
|
29996
30000
|
}
|
|
29997
30001
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
29998
30002
|
className: classnames__default["default"]("mx-auto flex h-full w-full flex-col items-start", _defineProperty$6({}, className, className))
|
|
29999
|
-
}, responses.map(function (
|
|
30000
|
-
var kind =
|
|
30001
|
-
label =
|
|
30002
|
-
value =
|
|
30003
|
+
}, responses.map(function (_ref3) {
|
|
30004
|
+
var kind = _ref3.kind,
|
|
30005
|
+
label = _ref3.label,
|
|
30006
|
+
value = _ref3.value;
|
|
30003
30007
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
30004
30008
|
className: "mb-4",
|
|
30005
30009
|
key: label
|
|
30006
30010
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, _extends$8({
|
|
30007
30011
|
style: "h5",
|
|
30008
30012
|
weight: "light"
|
|
30009
|
-
}, questionLabelProps),
|
|
30010
|
-
label: label,
|
|
30011
|
-
kind: kind
|
|
30012
|
-
})), renderSubmittedValue(kind, value));
|
|
30013
|
+
}, questionLabelProps), label), renderSubmittedValue(kind, value));
|
|
30013
30014
|
}));
|
|
30014
30015
|
};
|
|
30015
30016
|
|