@zengenti/contensis-react-base 3.0.0-beta.74 → 3.0.0-beta.77
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/cjs/forms.js +37 -13
- package/cjs/forms.js.map +1 -1
- package/esm/forms.js +37 -13
- package/esm/forms.js.map +1 -1
- package/package.json +1 -1
package/cjs/forms.js
CHANGED
|
@@ -44,7 +44,7 @@ const initialSettings = {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
const initialStatus = {
|
|
47
|
-
isLoading:
|
|
47
|
+
isLoading: true,
|
|
48
48
|
isSubmitting: false,
|
|
49
49
|
hasSuccess: false,
|
|
50
50
|
successMessage: null,
|
|
@@ -95,6 +95,7 @@ var reducer = immer.produce((state, action) => {
|
|
|
95
95
|
state[formId].groups = groups;
|
|
96
96
|
state[formId].defaultLanguage = defaultLanguage;
|
|
97
97
|
state[formId].status.isSubmitting = false;
|
|
98
|
+
state[formId].status.isLoading = false;
|
|
98
99
|
state[formId].status.hasSuccess = false;
|
|
99
100
|
state[formId].status.hasError = false;
|
|
100
101
|
state[formId].settings = settings;
|
|
@@ -436,7 +437,7 @@ const validateInput = (field, value) => {
|
|
|
436
437
|
message: 'You must enter a business email address.'
|
|
437
438
|
};
|
|
438
439
|
}
|
|
439
|
-
} else {
|
|
440
|
+
} else if (!isValidRegex(field, value)) {
|
|
440
441
|
return {
|
|
441
442
|
fieldId: field.id,
|
|
442
443
|
groupId: field.groupId,
|
|
@@ -484,13 +485,15 @@ const isBusinessEmailValid = (field, value) => {
|
|
|
484
485
|
};
|
|
485
486
|
|
|
486
487
|
const MakeFieldType = field => {
|
|
488
|
+
var _field$editor, _field$editor$propert;
|
|
489
|
+
|
|
487
490
|
if (!field) return null;
|
|
488
491
|
|
|
489
492
|
if (field.dataType === 'string' && field.editor && field.editor.id === 'multiline') {
|
|
490
493
|
return 'textarea';
|
|
491
494
|
} else if (field.dataType === 'string' && field.editor && field.editor.id === 'list-dropdown') {
|
|
492
495
|
return 'dropdown';
|
|
493
|
-
} else if (field
|
|
496
|
+
} else if (field !== null && field !== void 0 && (_field$editor = field.editor) !== null && _field$editor !== void 0 && (_field$editor$propert = _field$editor.properties) !== null && _field$editor$propert !== void 0 && _field$editor$propert.readOnly || (field === null || field === void 0 ? void 0 : field.groupId) === 'private' || (field === null || field === void 0 ? void 0 : field.groupId) === 'settings') {
|
|
494
497
|
return 'hidden';
|
|
495
498
|
} else if (field.dataType === 'stringArray' || field.dataType === 'boolean') {
|
|
496
499
|
return 'checkbox';
|
|
@@ -631,7 +634,7 @@ function* fetchForm(action) {
|
|
|
631
634
|
|
|
632
635
|
const formId = action.formId;
|
|
633
636
|
const schema = yield getFormSchema(formId);
|
|
634
|
-
const groups = schema === null || schema === void 0 ? void 0 : (_schema$groups = schema.groups) === null || _schema$groups === void 0 ? void 0 : _schema$groups.filter(group => group.id !== 'private');
|
|
637
|
+
const groups = schema === null || schema === void 0 ? void 0 : (_schema$groups = schema.groups) === null || _schema$groups === void 0 ? void 0 : _schema$groups.filter(group => group.id !== 'private' && group.id !== 'settings');
|
|
635
638
|
|
|
636
639
|
if (formId && schema) {
|
|
637
640
|
var _schema$groups2, _submitButtonText$def;
|
|
@@ -1912,17 +1915,23 @@ FormComposer.propTypes = {
|
|
|
1912
1915
|
setCheckboxValue: PropTypes__default["default"].func
|
|
1913
1916
|
};
|
|
1914
1917
|
|
|
1915
|
-
const LoadingSpinner = (
|
|
1918
|
+
const LoadingSpinner = ({
|
|
1919
|
+
className,
|
|
1920
|
+
color = '#fff',
|
|
1921
|
+
width = 20,
|
|
1922
|
+
height = 20
|
|
1923
|
+
}) => {
|
|
1916
1924
|
return /*#__PURE__*/React__default["default"].createElement("svg", {
|
|
1917
|
-
|
|
1918
|
-
|
|
1925
|
+
className: className,
|
|
1926
|
+
width: `${width}px`,
|
|
1927
|
+
height: `${height}px`,
|
|
1919
1928
|
viewBox: "0 0 100 100",
|
|
1920
1929
|
preserveAspectRatio: "xMidYMid"
|
|
1921
1930
|
}, /*#__PURE__*/React__default["default"].createElement("circle", {
|
|
1922
1931
|
cx: "50",
|
|
1923
1932
|
cy: "50",
|
|
1924
1933
|
fill: "none",
|
|
1925
|
-
stroke:
|
|
1934
|
+
stroke: color,
|
|
1926
1935
|
strokeWidth: "10",
|
|
1927
1936
|
r: "35",
|
|
1928
1937
|
strokeDasharray: "164.93361431346415 56.97787143782138",
|
|
@@ -1969,7 +1978,10 @@ const Button = ({
|
|
|
1969
1978
|
onClick: () => action(),
|
|
1970
1979
|
disabled: loading,
|
|
1971
1980
|
useDefaultTheme: useDefaultTheme
|
|
1972
|
-
}, text, loading && /*#__PURE__*/React__default["default"].createElement(LoadingSpinner,
|
|
1981
|
+
}, text, loading && /*#__PURE__*/React__default["default"].createElement(LoadingSpinner, {
|
|
1982
|
+
height: 18,
|
|
1983
|
+
width: 18
|
|
1984
|
+
}));
|
|
1973
1985
|
};
|
|
1974
1986
|
Button.propTypes = {
|
|
1975
1987
|
className: PropTypes__default["default"].string,
|
|
@@ -2137,7 +2149,7 @@ const Form = ({
|
|
|
2137
2149
|
className: className,
|
|
2138
2150
|
id: formId,
|
|
2139
2151
|
useDefaultTheme: useDefaultTheme
|
|
2140
|
-
}, !status || status &&
|
|
2152
|
+
}, !status || !(status !== null && status !== void 0 && status.hasSuccess) && !(status !== null && status !== void 0 && status.isLoading) ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, pagingInfo.pageIndex > 0 && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2141
2153
|
type: "button",
|
|
2142
2154
|
text: "Go Back",
|
|
2143
2155
|
action: () => _togglePageBack(formId, pagingInfo.pageIndex - 1),
|
|
@@ -2163,13 +2175,19 @@ const Form = ({
|
|
|
2163
2175
|
}), isLastPage && /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2164
2176
|
text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
|
|
2165
2177
|
type: "button",
|
|
2178
|
+
loading: status === null || status === void 0 ? void 0 : status.isLoading,
|
|
2166
2179
|
action: () => {
|
|
2167
2180
|
_submitForm(formId);
|
|
2168
2181
|
|
|
2169
2182
|
if (customSubmit) customSubmit();
|
|
2170
2183
|
},
|
|
2171
2184
|
useDefaultTheme: useDefaultTheme
|
|
2172
|
-
}))
|
|
2185
|
+
})) : /*#__PURE__*/React__default["default"].createElement(LoadingSpinner, {
|
|
2186
|
+
className: "loading",
|
|
2187
|
+
height: 24,
|
|
2188
|
+
width: 24,
|
|
2189
|
+
color: "#333"
|
|
2190
|
+
}), (status === null || status === void 0 ? void 0 : status.hasSuccess) && (status === null || status === void 0 ? void 0 : status.successMessage) && /*#__PURE__*/React__default["default"].createElement("p", {
|
|
2173
2191
|
className: "success-message"
|
|
2174
2192
|
}, status.successMessage)));
|
|
2175
2193
|
} else {
|
|
@@ -2179,7 +2197,7 @@ const Form = ({
|
|
|
2179
2197
|
className: className,
|
|
2180
2198
|
id: formId,
|
|
2181
2199
|
useDefaultTheme: useDefaultTheme
|
|
2182
|
-
}, !status || status &&
|
|
2200
|
+
}, !status || !(status !== null && status !== void 0 && status.hasSuccess) && !(status !== null && status !== void 0 && status.isLoading) ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FormComposer, {
|
|
2183
2201
|
fields: fields,
|
|
2184
2202
|
formId: formId,
|
|
2185
2203
|
setValue: _setValue,
|
|
@@ -2191,6 +2209,7 @@ const Form = ({
|
|
|
2191
2209
|
entries: entries,
|
|
2192
2210
|
setCheckboxValue: _setCheckboxValue
|
|
2193
2211
|
}), /*#__PURE__*/React__default["default"].createElement(Button, {
|
|
2212
|
+
loading: status === null || status === void 0 ? void 0 : status.isSubmitting,
|
|
2194
2213
|
text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
|
|
2195
2214
|
type: "button",
|
|
2196
2215
|
action: () => {
|
|
@@ -2199,7 +2218,12 @@ const Form = ({
|
|
|
2199
2218
|
if (customSubmit) customSubmit();
|
|
2200
2219
|
},
|
|
2201
2220
|
useDefaultTheme: useDefaultTheme
|
|
2202
|
-
}))
|
|
2221
|
+
})) : /*#__PURE__*/React__default["default"].createElement(LoadingSpinner, {
|
|
2222
|
+
className: "loading",
|
|
2223
|
+
height: 24,
|
|
2224
|
+
width: 24,
|
|
2225
|
+
color: "#333"
|
|
2226
|
+
}), (status === null || status === void 0 ? void 0 : status.hasSuccess) && (status === null || status === void 0 ? void 0 : status.successMessage) && /*#__PURE__*/React__default["default"].createElement("p", {
|
|
2203
2227
|
className: "success-message"
|
|
2204
2228
|
}, status.successMessage)));
|
|
2205
2229
|
}
|