@bigbinary/neeto-form-frontend 1.3.0 → 1.3.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/dist/index.cjs.js +94 -37
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +95 -38
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -21,6 +21,7 @@ var reactI18next = require('react-i18next');
|
|
|
21
21
|
var zustand = require('zustand');
|
|
22
22
|
var classnames = require('classnames');
|
|
23
23
|
var neetoEditor = require('@bigbinary/neeto-editor');
|
|
24
|
+
var shallow = require('zustand/shallow');
|
|
24
25
|
var yup = require('yup');
|
|
25
26
|
var useHotkeys = require('@bigbinary/neeto-hotkeys');
|
|
26
27
|
var dayjs = require('dayjs');
|
|
@@ -807,6 +808,7 @@ var QUESTIONS_INITIAL_VALUE = {
|
|
|
807
808
|
};
|
|
808
809
|
var RESERVED_FIELD_CODES = ["month", "date", "time"];
|
|
809
810
|
var SELECTABLE_KINDS = ["radio", "checkbox", "dropdown"];
|
|
811
|
+
var RICH_TEXT_QUESTIONS = ["paragraph", "termsandcondition"];
|
|
810
812
|
|
|
811
813
|
function _arrayWithHoles$3(arr) {
|
|
812
814
|
if (Array.isArray(arr)) return arr;
|
|
@@ -9842,6 +9844,28 @@ var formHelpers = {
|
|
|
9842
9844
|
pushToList: pushToList
|
|
9843
9845
|
};
|
|
9844
9846
|
|
|
9847
|
+
var isBlank = ramda.compose(ramda.isEmpty, ramda.trim);
|
|
9848
|
+
var parseServerError = function parseServerError(error) {
|
|
9849
|
+
var _error$notice;
|
|
9850
|
+
return (_error$notice = error.notice) !== null && _error$notice !== void 0 ? _error$notice : i18next.t("neetoForm.common.somethingWentWrong");
|
|
9851
|
+
};
|
|
9852
|
+
var isEmptyValues = function isEmptyValues(obj) {
|
|
9853
|
+
return ramda.either(ramda.isNil, ramda.isEmpty)(obj) ? true : ramda.values(obj).every(function (value) {
|
|
9854
|
+
if (ramda.isEmpty(value)) {
|
|
9855
|
+
return true;
|
|
9856
|
+
} else if (Array.isArray(value)) {
|
|
9857
|
+
return ramda.equals([false, false, false], value);
|
|
9858
|
+
}
|
|
9859
|
+
return !value;
|
|
9860
|
+
});
|
|
9861
|
+
};
|
|
9862
|
+
|
|
9863
|
+
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
9864
|
+
var dotPath = ramda.useWith(ramda.path, [ramda.split(".")]);
|
|
9865
|
+
var isFunction$1 = function isFunction(obj) {
|
|
9866
|
+
return typeof obj === "function";
|
|
9867
|
+
};
|
|
9868
|
+
|
|
9845
9869
|
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
9846
9870
|
var useBuildFormStore = zustand.create(reactUtils.withImmutableActions(function (set) {
|
|
9847
9871
|
return {
|
|
@@ -9856,10 +9880,11 @@ var useBuildFormStore = zustand.create(reactUtils.withImmutableActions(function
|
|
|
9856
9880
|
selectedLanguage: i18next__default["default"].resolvedLanguage,
|
|
9857
9881
|
formId: null,
|
|
9858
9882
|
enabled: false,
|
|
9859
|
-
title: ""
|
|
9883
|
+
title: "",
|
|
9884
|
+
richTextFieldsToReset: []
|
|
9860
9885
|
},
|
|
9861
|
-
setFormData: function setFormData(
|
|
9862
|
-
return set(ramda.
|
|
9886
|
+
setFormData: function setFormData(arg) {
|
|
9887
|
+
return set(ramda.modify("formState", isFunction$1(arg) ? arg : ramda.mergeLeft(arg)));
|
|
9863
9888
|
}
|
|
9864
9889
|
};
|
|
9865
9890
|
}));
|
|
@@ -10493,25 +10518,6 @@ var Email$1 = reactUtils.withT(function (_ref) {
|
|
|
10493
10518
|
}));
|
|
10494
10519
|
});
|
|
10495
10520
|
|
|
10496
|
-
var isBlank = ramda.compose(ramda.isEmpty, ramda.trim);
|
|
10497
|
-
var parseServerError = function parseServerError(error) {
|
|
10498
|
-
var _error$notice;
|
|
10499
|
-
return (_error$notice = error.notice) !== null && _error$notice !== void 0 ? _error$notice : i18next.t("neetoForm.common.somethingWentWrong");
|
|
10500
|
-
};
|
|
10501
|
-
var isEmptyValues = function isEmptyValues(obj) {
|
|
10502
|
-
return ramda.either(ramda.isNil, ramda.isEmpty)(obj) ? true : ramda.values(obj).every(function (value) {
|
|
10503
|
-
if (ramda.isEmpty(value)) {
|
|
10504
|
-
return true;
|
|
10505
|
-
} else if (Array.isArray(value)) {
|
|
10506
|
-
return ramda.equals([false, false, false], value);
|
|
10507
|
-
}
|
|
10508
|
-
return !value;
|
|
10509
|
-
});
|
|
10510
|
-
};
|
|
10511
|
-
|
|
10512
|
-
// eslint-disable-next-line react-hooks/rules-of-hooks
|
|
10513
|
-
var dotPath = ramda.useWith(ramda.path, [ramda.split(".")]);
|
|
10514
|
-
|
|
10515
10521
|
var FileGroup = function FileGroup(_ref) {
|
|
10516
10522
|
var name = _ref.name,
|
|
10517
10523
|
label = _ref.label,
|
|
@@ -11086,18 +11092,42 @@ var StarRating$3 = function StarRating(_ref) {
|
|
|
11086
11092
|
}));
|
|
11087
11093
|
};
|
|
11088
11094
|
|
|
11089
|
-
var useUpdateEditorContent = function useUpdateEditorContent(
|
|
11095
|
+
var useUpdateEditorContent = function useUpdateEditorContent(_ref) {
|
|
11096
|
+
var editorRef = _ref.editorRef,
|
|
11097
|
+
fieldName = _ref.fieldName,
|
|
11098
|
+
value = _ref.value,
|
|
11099
|
+
initialValue = _ref.initialValue,
|
|
11100
|
+
fieldCode = _ref.fieldCode;
|
|
11090
11101
|
var initialStateRef = React$2.useRef({
|
|
11091
11102
|
language: "",
|
|
11092
11103
|
value: null
|
|
11093
11104
|
});
|
|
11094
|
-
var
|
|
11095
|
-
|
|
11096
|
-
|
|
11105
|
+
var _useBuildFormStore = useBuildFormStore(function (store) {
|
|
11106
|
+
return {
|
|
11107
|
+
setFormData: store["setFormData"]
|
|
11108
|
+
};
|
|
11109
|
+
}, shallow.shallow),
|
|
11110
|
+
setFormData = _useBuildFormStore.setFormData;
|
|
11111
|
+
var _useBuildFormStore2 = useBuildFormStore(function (store) {
|
|
11112
|
+
var _store$formState, _store$formState2;
|
|
11113
|
+
return {
|
|
11114
|
+
formId: (_store$formState = store["formState"]) === null || _store$formState === void 0 ? void 0 : _store$formState["formId"],
|
|
11115
|
+
selectedLanguage: (_store$formState2 = store["formState"]) === null || _store$formState2 === void 0 ? void 0 : _store$formState2["selectedLanguage"]
|
|
11116
|
+
};
|
|
11117
|
+
}, shallow.shallow),
|
|
11118
|
+
formId = _useBuildFormStore2.formId,
|
|
11119
|
+
language = _useBuildFormStore2.selectedLanguage;
|
|
11120
|
+
var shouldReset = useBuildFormStore(function (store) {
|
|
11121
|
+
return store.formState.richTextFieldsToReset.includes(fieldCode);
|
|
11122
|
+
});
|
|
11097
11123
|
var setEditorContent = function setEditorContent(content) {
|
|
11098
11124
|
var _editorRef$current$ed;
|
|
11099
11125
|
return (_editorRef$current$ed = editorRef.current.editor) === null || _editorRef$current$ed === void 0 || (_editorRef$current$ed = _editorRef$current$ed.commands) === null || _editorRef$current$ed === void 0 ? void 0 : _editorRef$current$ed.setContent(content);
|
|
11100
11126
|
};
|
|
11127
|
+
if (shouldReset) {
|
|
11128
|
+
setEditorContent(initialValue);
|
|
11129
|
+
setFormData(ramda.modify("richTextFieldsToReset", ramda.without([fieldCode])));
|
|
11130
|
+
}
|
|
11101
11131
|
React$2.useEffect(function () {
|
|
11102
11132
|
if (initialStateRef.current["language"] !== language) {
|
|
11103
11133
|
initialStateRef.current["language"] = language;
|
|
@@ -11124,11 +11154,13 @@ var useUpdateEditorContent = function useUpdateEditorContent(editorRef, fieldNam
|
|
|
11124
11154
|
|
|
11125
11155
|
var Terms$1 = function Terms(_ref) {
|
|
11126
11156
|
var name = _ref.name,
|
|
11157
|
+
item = _ref.item,
|
|
11127
11158
|
isLabelDisabled = _ref.isLabelDisabled;
|
|
11128
11159
|
var editorRef = React$2.useRef({
|
|
11129
11160
|
editor: {}
|
|
11130
11161
|
});
|
|
11131
11162
|
var fieldName = "".concat(name, ".label");
|
|
11163
|
+
var fieldCode = item.fieldCode;
|
|
11132
11164
|
var _useField = formik.useField({
|
|
11133
11165
|
name: fieldName,
|
|
11134
11166
|
validate: validateEditorContent(editorRef)
|
|
@@ -11138,10 +11170,17 @@ var Terms$1 = function Terms(_ref) {
|
|
|
11138
11170
|
_useField2$ = _useField2[1],
|
|
11139
11171
|
touched = _useField2$.touched,
|
|
11140
11172
|
error = _useField2$.error,
|
|
11173
|
+
initialValue = _useField2$.initialValue,
|
|
11141
11174
|
_useField2$2 = _useField2[2],
|
|
11142
11175
|
setTouched = _useField2$2.setTouched,
|
|
11143
11176
|
setValue = _useField2$2.setValue;
|
|
11144
|
-
useUpdateEditorContent(
|
|
11177
|
+
useUpdateEditorContent({
|
|
11178
|
+
editorRef: editorRef,
|
|
11179
|
+
fieldName: fieldName,
|
|
11180
|
+
value: value,
|
|
11181
|
+
initialValue: initialValue,
|
|
11182
|
+
fieldCode: fieldCode
|
|
11183
|
+
});
|
|
11145
11184
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
11146
11185
|
className: "w-full cursor-auto"
|
|
11147
11186
|
}, /*#__PURE__*/React__default["default"].createElement(neetoEditor.Editor, {
|
|
@@ -11183,11 +11222,13 @@ var Fields = {
|
|
|
11183
11222
|
|
|
11184
11223
|
var Editor = function Editor(_ref) {
|
|
11185
11224
|
var name = _ref.name,
|
|
11225
|
+
item = _ref.item,
|
|
11186
11226
|
isLabelDisabled = _ref.isLabelDisabled;
|
|
11187
11227
|
var editorRef = React$2.useRef({
|
|
11188
11228
|
editor: {}
|
|
11189
11229
|
});
|
|
11190
11230
|
var fieldName = "".concat(name, ".label");
|
|
11231
|
+
var fieldCode = item.fieldCode;
|
|
11191
11232
|
var _useField = formik.useField({
|
|
11192
11233
|
name: fieldName,
|
|
11193
11234
|
validate: validateEditorContent(editorRef)
|
|
@@ -11197,10 +11238,17 @@ var Editor = function Editor(_ref) {
|
|
|
11197
11238
|
_useField2$ = _useField2[1],
|
|
11198
11239
|
touched = _useField2$.touched,
|
|
11199
11240
|
error = _useField2$.error,
|
|
11241
|
+
initialValue = _useField2$.initialValue,
|
|
11200
11242
|
_useField2$2 = _useField2[2],
|
|
11201
11243
|
setTouched = _useField2$2.setTouched,
|
|
11202
11244
|
setValue = _useField2$2.setValue;
|
|
11203
|
-
useUpdateEditorContent(
|
|
11245
|
+
useUpdateEditorContent({
|
|
11246
|
+
editorRef: editorRef,
|
|
11247
|
+
fieldName: fieldName,
|
|
11248
|
+
value: value,
|
|
11249
|
+
initialValue: initialValue,
|
|
11250
|
+
fieldCode: fieldCode
|
|
11251
|
+
});
|
|
11204
11252
|
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
11205
11253
|
className: "w-full cursor-auto"
|
|
11206
11254
|
}, /*#__PURE__*/React__default["default"].createElement(neetoEditor.Editor, {
|
|
@@ -11925,6 +11973,15 @@ var Form = function Form(_ref) {
|
|
|
11925
11973
|
if (neetoCist.isNotEmpty(questionLabel)) return neetoCist.truncate(questionLabel, 40);
|
|
11926
11974
|
return neetoCist.humanize(questionKind);
|
|
11927
11975
|
};
|
|
11976
|
+
var richTextQuestions = neetoCist.filterBy({
|
|
11977
|
+
kind: ramda.includes(ramda.__, RICH_TEXT_QUESTIONS)
|
|
11978
|
+
}, questions);
|
|
11979
|
+
var resetFormData = function resetFormData() {
|
|
11980
|
+
resetForm();
|
|
11981
|
+
setFormData({
|
|
11982
|
+
richTextFieldsToReset: ramda.pluck("fieldCode", richTextQuestions)
|
|
11983
|
+
});
|
|
11984
|
+
};
|
|
11928
11985
|
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
|
|
11929
11986
|
isOpen: ramda.isNotNil(deleteQuestionIndex),
|
|
11930
11987
|
submitButtonLabel: t("neetoForm.common.delete"),
|
|
@@ -12014,13 +12071,11 @@ var Form = function Form(_ref) {
|
|
|
12014
12071
|
}))), showActionBlock && /*#__PURE__*/React__default["default"].createElement("div", {
|
|
12015
12072
|
className: "neeto-ui-border-gray-300 flex-shrink-0 border-t py-4"
|
|
12016
12073
|
}, /*#__PURE__*/React__default["default"].createElement(formik$1.ActionBlock, {
|
|
12017
|
-
|
|
12074
|
+
submitButtonProps: submitButtonProps,
|
|
12018
12075
|
cancelButtonProps: _objectSpread$h({
|
|
12019
|
-
label: t("neetoForm.common.reset")
|
|
12020
|
-
|
|
12021
|
-
|
|
12022
|
-
disabled: isSubmitting || !dirty
|
|
12023
|
-
}, submitButtonProps)
|
|
12076
|
+
label: t("neetoForm.common.reset"),
|
|
12077
|
+
onClick: resetFormData
|
|
12078
|
+
}, cancelButtonProps)
|
|
12024
12079
|
}))));
|
|
12025
12080
|
};
|
|
12026
12081
|
|
|
@@ -27053,7 +27108,7 @@ var TermsField = function TermsField(_ref) {
|
|
|
27053
27108
|
kind = question.kind,
|
|
27054
27109
|
isRequired = question.isRequired,
|
|
27055
27110
|
nodeId = question.nodeId;
|
|
27056
|
-
var label = fieldWithFallback(question, "label");
|
|
27111
|
+
var label = fieldWithFallback(question, "label", true);
|
|
27057
27112
|
return /*#__PURE__*/React__default["default"].createElement(formik.Field, {
|
|
27058
27113
|
name: name || nodeId,
|
|
27059
27114
|
validate: validateFieldValue({
|
|
@@ -27139,14 +27194,16 @@ var _QUESTION_TO_COMPONEN;
|
|
|
27139
27194
|
var QUESTION_TO_COMPONENT_MAP = (_QUESTION_TO_COMPONEN = {}, _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.TEXT.value, TextField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.NAME.value, NameField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.EMAIL.value, EmailField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.INTEGER.value, TextField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.DECIMAL.value, TextField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.PHONE.value, PhoneNumberField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.QUESTION.value, TextField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.TEXTAREA.value, TextField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.CHECKBOX.value, OptionsField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.RADIO.value, OptionsField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.DROPDOWN.value, OptionsField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.RATING.value, RatingField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.PARAGRAPH.value, function (_ref) {
|
|
27140
27195
|
var question = _ref.question;
|
|
27141
27196
|
return /*#__PURE__*/React__default["default"].createElement(neetoEditor.EditorContent, {
|
|
27142
|
-
content:
|
|
27197
|
+
content: fieldWithFallback(question, "label", true)
|
|
27143
27198
|
});
|
|
27144
27199
|
}), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.TERMS.value, TermsField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.DATE.value, DateField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.STAR_RATING.value, StarRatingField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.ADDITIONAL_GUESTS.value, MultipleEmailInput), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.RICH_TEXT.value, RichTextEditor), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.CONDITION.value, ConditionField), _defineProperty$6(_QUESTION_TO_COMPONEN, QUESTION_KIND.FILE_UPLOAD.value, FileUploadField), _QUESTION_TO_COMPONEN);
|
|
27145
27200
|
|
|
27146
27201
|
var fieldWithFallback = function fieldWithFallback(question, fieldName) {
|
|
27202
|
+
var hasRichContent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
27147
27203
|
var fallback = question["".concat(fieldName, "Fallback")];
|
|
27148
27204
|
var field = question[fieldName];
|
|
27149
|
-
|
|
27205
|
+
var isFieldEmpty = hasRichContent ? neetoEditor.isEditorEmpty(field) : ramda.isEmpty(field);
|
|
27206
|
+
return isFieldEmpty && ramda.isNotNil(fallback) ? fallback : field;
|
|
27150
27207
|
};
|
|
27151
27208
|
var getFieldComponent = function getFieldComponent(_ref) {
|
|
27152
27209
|
var kind = _ref.kind;
|