@zengenti/contensis-react-base 3.2.1-beta.5 → 3.2.1-beta.7

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 CHANGED
@@ -10,7 +10,6 @@ var React = require('react');
10
10
  var PropTypes = require('prop-types');
11
11
  var reactRedux = require('react-redux');
12
12
  var styled = require('styled-components');
13
- var Markdown = require('markdown-to-jsx');
14
13
  var _commonjsHelpers = require('./_commonjsHelpers-b3309d7b.js');
15
14
 
16
15
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -18,7 +17,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
18
17
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
19
18
  var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
20
19
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
21
- var Markdown__default = /*#__PURE__*/_interopDefaultLegacy(Markdown);
22
20
 
23
21
  const ACTION_PREFIX = '@FORM2/';
24
22
  const SET_FORM_DATA = `${ACTION_PREFIX}SET_FORM_DATA`;
@@ -558,31 +556,35 @@ const doCreateMessage = (type, minLength, maxLength, currentLength, defaultLangu
558
556
  }
559
557
  };
560
558
  const getFieldType = field => {
561
- var _field$editor, _field$editor$propert;
559
+ var _editor$properties, _editor$properties2;
562
560
  if (!field) return null;
563
- if (field.id === 'country' && field.dataType === 'string') {
564
- return 'country';
565
- }
566
- if (field.dataType === 'string' && field.editor && field.editor.id === 'multiline') {
567
- return 'textarea';
568
- } else if (field.dataType === 'string' && field.editor && field.editor.id === 'list-dropdown') {
569
- return 'dropdown';
570
- } else if (field.dataType === 'stringArray' || field.dataType === 'boolean') {
571
- return 'checkbox';
572
- } else if (field.dataType === 'string' && field.validations && field.validations.allowedValues) {
573
- return 'radio';
574
- } else if (field.dataType === 'integer') {
575
- return 'number';
576
- } else if (field.dataType === 'dateTime') {
577
- return 'date';
578
- } else if (field.dataFormat === 'daterange') {
579
- return 'dateRange';
580
- } else if (field.dataFormat === 'entry') {
581
- return 'entryPicker';
561
+ const {
562
+ dataType,
563
+ dataFormat,
564
+ editor,
565
+ validations,
566
+ id,
567
+ groupId
568
+ } = field || {};
569
+ if (groupId === 'private' || groupId === 'settings') return 'hidden';
570
+ if (editor !== null && editor !== void 0 && (_editor$properties = editor.properties) !== null && _editor$properties !== void 0 && _editor$properties.readOnly && dataFormat !== 'quote') return 'hidden';
571
+ if (dataFormat === 'quote') return 'content';
572
+ if (dataFormat === 'quote' && editor !== null && editor !== void 0 && (_editor$properties2 = editor.properties) !== null && _editor$properties2 !== void 0 && _editor$properties2.readOnly) return 'content';
573
+ if (dataType === 'string') {
574
+ if ((editor === null || editor === void 0 ? void 0 : editor.id) === 'multiline') return 'textarea';
575
+ if ((editor === null || editor === void 0 ? void 0 : editor.id) === 'list-dropdown') return 'dropdown';
576
+ if (validations !== null && validations !== void 0 && validations.allowedValues) return 'radio';
577
+ if (id === 'country') return 'country';
578
+ return 'textfield'; // Default string type
582
579
  }
583
- if (field.dataFormat === 'quote') return 'content';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') {
584
- return 'hidden';
585
- } else return 'textfield';
580
+
581
+ if (dataType === 'stringArray' || dataType === 'boolean') return 'checkbox';
582
+ if (dataType === 'integer') return 'number';
583
+ if (dataType === 'dateTime') return 'date';
584
+ if (dataFormat === 'daterange') return 'dateRange';
585
+ if (dataFormat === 'entry') return 'entryPicker';
586
+ if (groupId === 'private' || groupId === 'settings') return 'hidden';
587
+ return 'textfield'; // Default fallback
586
588
  };
587
589
 
588
590
  const sagas = [effects.takeEvery(SUBMIT_FORM_SUCCESS, onFormSuccess), effects.takeEvery(SUBMIT_FORM_FOR_VALIDATION, doValidateForm), effects.takeEvery(SUBMIT_FORM, onSubmitForm), effects.takeEvery(SET_FORM_ID, doFetchForm),
@@ -1022,6 +1024,70 @@ CharacterLimit.propTypes = {
1022
1024
  useDefaultTheme: PropTypes__default["default"].bool
1023
1025
  };
1024
1026
 
1027
+ const doParse = markdown => {
1028
+ const LINES = markdown.split('\n');
1029
+ const ELEMENTS = [];
1030
+ let inList = false; // Track if we are currently inside a list
1031
+ let inNestedList = false; // Track if we are inside a nested list
1032
+
1033
+ LINES.forEach((LINE, INDEX) => {
1034
+ LINE = LINE.trim(); // Trim whitespace from the beginning and end of the line
1035
+
1036
+ if (LINE.startsWith('* ')) {
1037
+ // Top-level list item
1038
+ if (!inList) {
1039
+ ELEMENTS.push('<ul>'); // Start the outermost list
1040
+ inList = true;
1041
+ }
1042
+ if (inNestedList) {
1043
+ // Close the previous nested list
1044
+ ELEMENTS.push('</ul>');
1045
+ inNestedList = false;
1046
+ }
1047
+ ELEMENTS.push(`<li key=${INDEX}>${LINE.substring(2)}</li>`);
1048
+ } else if (LINE.startsWith('**')) {
1049
+ // Nested list item
1050
+ if (!inNestedList) {
1051
+ ELEMENTS.push('<ul>'); // Start a nested list
1052
+ inNestedList = true;
1053
+ }
1054
+ ELEMENTS.push(`<li key=${INDEX}>${LINE.substring(2)}</li>`);
1055
+ } else {
1056
+ // Non-list item
1057
+ if (inList) {
1058
+ if (inNestedList) {
1059
+ ELEMENTS.push('</ul>'); // Close any open nested list
1060
+ inNestedList = false;
1061
+ }
1062
+ ELEMENTS.push('</ul>'); // Close the outermost list
1063
+ inList = false;
1064
+ }
1065
+ ELEMENTS.push(`<span key=${INDEX}>${LINE}</span>`);
1066
+ }
1067
+ });
1068
+ if (inNestedList) {
1069
+ ELEMENTS.push('</ul>'); // Close any remaining open nested list
1070
+ } else if (inList) {
1071
+ ELEMENTS.push('</ul>'); // Close the outermost list
1072
+ }
1073
+
1074
+ return ELEMENTS.join(''); // Join all elements into a single string
1075
+ };
1076
+
1077
+ const MarkdownRenderer = ({
1078
+ className,
1079
+ markdown
1080
+ }) => {
1081
+ if (!markdown) return null;
1082
+ const elements = doParse(markdown);
1083
+ return /*#__PURE__*/React__default["default"].createElement("div", {
1084
+ className: className,
1085
+ dangerouslySetInnerHTML: {
1086
+ __html: elements
1087
+ }
1088
+ });
1089
+ };
1090
+
1025
1091
  const TextfieldStyled = styled__default["default"].div.withConfig({
1026
1092
  displayName: "textfield__TextfieldStyled",
1027
1093
  componentId: "sc-whkw86-0"
@@ -1121,9 +1187,10 @@ const Textfield = ({
1121
1187
  }, /*#__PURE__*/React__default["default"].createElement("path", {
1122
1188
  fill: "#333",
1123
1189
  d: "m2 8 4.418 4.667L14 4.659l-1.246-1.326-6.336 6.692-3.18-3.332L2 8Z"
1124
- }))), instructions && /*#__PURE__*/React__default["default"].createElement(Markdown__default["default"], {
1125
- className: "text-field__input--markdown"
1126
- }, instructions), id === 'password' && /*#__PURE__*/React__default["default"].createElement("button", {
1190
+ }))), instructions && /*#__PURE__*/React__default["default"].createElement(MarkdownRenderer, {
1191
+ className: "text-field__input--markdown",
1192
+ markdown: instructions
1193
+ }), id === 'password' && /*#__PURE__*/React__default["default"].createElement("button", {
1127
1194
  className: "text-input__button--pw",
1128
1195
  type: "button",
1129
1196
  onClick: () => setVisible(!isVisible),
@@ -1137,8 +1204,8 @@ const Textfield = ({
1137
1204
  }, /*#__PURE__*/React__default["default"].createElement("path", {
1138
1205
  d: "M13.3536 2.35355C13.5488 2.15829 13.5488 1.84171 13.3536 1.64645C13.1583 1.45118 12.8417 1.45118 12.6464 1.64645L10.6828 3.61012C9.70652 3.21671 8.63759 3 7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C0.902945 9.08812 2.02314 10.1861 3.36061 10.9323L1.64645 12.6464C1.45118 12.8417 1.45118 13.1583 1.64645 13.3536C1.84171 13.5488 2.15829 13.5488 2.35355 13.3536L4.31723 11.3899C5.29348 11.7833 6.36241 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C14.0971 5.9119 12.9769 4.81391 11.6394 4.06771L13.3536 2.35355ZM9.90428 4.38861C9.15332 4.1361 8.34759 4 7.5 4C4.80285 4 2.52952 5.37816 1.09622 7.50001C1.87284 8.6497 2.89609 9.58106 4.09974 10.1931L9.90428 4.38861ZM5.09572 10.6114L10.9003 4.80685C12.1039 5.41894 13.1272 6.35031 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11C6.65241 11 5.84668 10.8639 5.09572 10.6114Z",
1139
1206
  fill: "currentColor",
1140
- "fill-rule": "evenodd",
1141
- "clip-rule": "evenodd"
1207
+ fillRule: "evenodd",
1208
+ clipRule: "evenodd"
1142
1209
  })) : /*#__PURE__*/React__default["default"].createElement("svg", {
1143
1210
  width: "15",
1144
1211
  height: "15",
@@ -1148,8 +1215,8 @@ const Textfield = ({
1148
1215
  }, /*#__PURE__*/React__default["default"].createElement("path", {
1149
1216
  d: "M7.5 11C4.80285 11 2.52952 9.62184 1.09622 7.50001C2.52952 5.37816 4.80285 4 7.5 4C10.1971 4 12.4705 5.37816 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11ZM7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C1.65639 10.2936 4.30786 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C13.3436 4.70638 10.6921 3 7.5 3ZM7.5 9.5C8.60457 9.5 9.5 8.60457 9.5 7.5C9.5 6.39543 8.60457 5.5 7.5 5.5C6.39543 5.5 5.5 6.39543 5.5 7.5C5.5 8.60457 6.39543 9.5 7.5 9.5Z",
1150
1217
  fill: "currentColor",
1151
- "fill-rule": "evenodd",
1152
- "clip-rule": "evenodd"
1218
+ fillRule: "evenodd",
1219
+ clipRule: "evenodd"
1153
1220
  }))));
1154
1221
  };
1155
1222
  Textfield.propTypes = {
@@ -5316,9 +5383,10 @@ const FormComposer = ({
5316
5383
  key: `${field.id}-${idx}`
5317
5384
  }, /*#__PURE__*/React__default["default"].createElement("span", {
5318
5385
  className: "form__content--title"
5319
- }, name === null || name === void 0 ? void 0 : name[defaultLanguage]), instructions && /*#__PURE__*/React__default["default"].createElement(Markdown__default["default"], {
5320
- className: "form__content--markdown"
5321
- }, instructions));
5386
+ }, name === null || name === void 0 ? void 0 : name[defaultLanguage]), instructions && /*#__PURE__*/React__default["default"].createElement(MarkdownRenderer, {
5387
+ className: "form__content--markdown",
5388
+ markdown: instructions
5389
+ }));
5322
5390
  }
5323
5391
  }
5324
5392
  });
@@ -5489,7 +5557,7 @@ const Form = ({
5489
5557
  useDefaultTheme: useDefaultTheme,
5490
5558
  entries: entries,
5491
5559
  setDateRangeValues: _setDateRangeValues
5492
- }), pagingInfo.pageCount >= 2 && /*#__PURE__*/React__default["default"].createElement("div", {
5560
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
5493
5561
  className: "form__btns"
5494
5562
  }, pagingInfo.pageIndex > 0 && /*#__PURE__*/React__default["default"].createElement(Button, {
5495
5563
  className: "form__btn--prev",
@@ -5552,7 +5620,9 @@ const Form = ({
5552
5620
  errors: errors,
5553
5621
  useDefaultTheme: useDefaultTheme,
5554
5622
  entries: entries
5555
- }), /*#__PURE__*/React__default["default"].createElement(Button, {
5623
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
5624
+ className: "form__btns"
5625
+ }, /*#__PURE__*/React__default["default"].createElement(Button, {
5556
5626
  className: "form__btn--submit",
5557
5627
  loading: status === null || status === void 0 ? void 0 : status.isSubmitting,
5558
5628
  text: (settings === null || settings === void 0 ? void 0 : settings.submitButtonText) || "Submit",
@@ -5562,7 +5632,7 @@ const Form = ({
5562
5632
  if (onCustomSubmit) onCustomSubmit();
5563
5633
  },
5564
5634
  useDefaultTheme: useDefaultTheme
5565
- })), (status === null || status === void 0 ? void 0 : status.isLoading) && !(status !== null && status !== void 0 && status.hasSuccess) && /*#__PURE__*/React__default["default"].createElement(Loader, {
5635
+ }))), (status === null || status === void 0 ? void 0 : status.isLoading) && !(status !== null && status !== void 0 && status.hasSuccess) && /*#__PURE__*/React__default["default"].createElement(Loader, {
5566
5636
  className: "loading",
5567
5637
  height: 24,
5568
5638
  width: 24,