diff --git a/dist/mega-flow.common.js b/dist/mega-flow.common.js new file mode 100644 index 0000000..51ab373 --- /dev/null +++ b/dist/mega-flow.common.js @@ -0,0 +1,627 @@ +'use strict'; + +var React = require('react'); +var styled = require('styled-components'); +var kit = require('@licenserocks/kit'); +var reactHookForm = require('react-hook-form'); +var PropTypes = require('prop-types'); +require('react-masonry-css'); +var freeSolidSvgIcons = require('@fortawesome/free-solid-svg-icons'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +var React__default = /*#__PURE__*/_interopDefaultLegacy(React); +var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled); +var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes); + +function _extends() { + _extends = Object.assign ? Object.assign.bind() : function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + return _extends.apply(this, arguments); +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +var _excluded$1 = ["conditions", "defaultValue", "name", "required", "type", "options"]; + +var mapFieldTypeToComponent = function mapFieldTypeToComponent(fieldType) { + switch (fieldType) { + case "datepicker": + return kit.FormDatepicker; + + case "select": + return kit.Select; + + case "borderedRadio": + return kit.BorderedRadio; + + case "checkbox": + return kit.Checkbox; + + case "radio": + return kit.Radio; + + case "toggleSwitch": + return kit.ToggleSwitch; + + case "fileUpload": + return kit.FileUpload; + + case "filePond": + return kit.FilePond; + + case "price": + return kit.PriceField; + + case "reactSelect": + return kit.ReactSelect; + + case "stepper": + return kit.Stepper; + + case "textArea": + return kit.TextArea; + + case "itemSelect": + return kit.ItemSelect; + + default: + return kit.Input; + } +}; + +var FormField = function FormField(_ref) { + var data = _ref.data, + field = _ref.field, + hasError = _ref.hasError, + isRecurring = _ref.isRecurring, + recurringIndex = _ref.recurringIndex, + stepIndex = _ref.stepIndex, + fieldId = _ref.fieldId, + rowId = _ref.rowId, + stepData = _ref.stepData; + _ref.merchandise; + + var _useFormContext = reactHookForm.useFormContext(), + control = _useFormContext.control, + setValue = _useFormContext.setValue, + register = _useFormContext.register, + watch = _useFormContext.watch; + + field.conditions; + var defaultValue = field.defaultValue, + name = field.name, + required = field.required, + type = field.type, + options = field.options, + others = _objectWithoutPropertiesLoose(field, _excluded$1); + + if (type === "link") return /*#__PURE__*/React__default["default"].createElement(kit.TextButton, others); + var Field = mapFieldTypeToComponent(type); + var fieldKey = "step-" + stepIndex + "-row-" + rowId + "-field-" + fieldId; + var fieldName = isRecurring ? data.name + "[" + recurringIndex + "]." + name : name; + var prevValue = isRecurring && stepData[data.name] && stepData[data.name][recurringIndex] ? stepData[data.name][recurringIndex][name] : stepData[name]; + + if ((field == null ? void 0 : field.currencies) !== undefined) { + field.currencies = stepData == null ? void 0 : stepData.currencies; + } + + return /*#__PURE__*/React__default["default"].createElement(Field, _extends({ + control: control, + defaultValue: prevValue || defaultValue, + hasError: hasError, + isRequired: required, + key: fieldKey, + name: fieldName, + register: register({ + required: required + }), + setValue: setValue, + options: options, + type: type, + value: watch(fieldName) + }, others)); +}; +FormField.propTypes = { + data: PropTypes__default["default"].shape({ + name: PropTypes__default["default"].string, + recurring: PropTypes__default["default"].bool, + rows: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({})) + }).isRequired, + field: PropTypes__default["default"].shape({ + conditions: PropTypes__default["default"].arrayOf(PropTypes__default["default"].string), + defaultValue: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].object]), + name: PropTypes__default["default"].string, + required: PropTypes__default["default"].string, + type: PropTypes__default["default"].string + }).isRequired, + fieldId: PropTypes__default["default"].number.isRequired, + hasError: PropTypes__default["default"].bool.isRequired, + isRecurring: PropTypes__default["default"].bool.isRequired, + recurringIndex: PropTypes__default["default"].number, + stepIndex: PropTypes__default["default"].number.isRequired, + stepData: PropTypes__default["default"].shape({}).isRequired, + rowId: PropTypes__default["default"].number.isRequired +}; +FormField.defaultProps = { + recurringIndex: null +}; + +var getConditionValues = function getConditionValues(conditions, watch, wizardData, isRecurring, recurringName) { + var name = conditions.map(function (c) { + if (c.includes(":")) { + var _c$split = c.split(":"), + n = _c$split[0]; + + return n; + } + + return c; + }); + return watch(isRecurring ? [recurringName] : name, wizardData); +}; + +var checkCondition = function checkCondition(conditions, watch, wizardData, isRecurring, recurringName, recurringIndex) { + var hasConditions = conditions && conditions.length > 0; + + if (hasConditions) { + var _conditionValues$recu; + + var conditionValues = getConditionValues(conditions, watch, wizardData, isRecurring, recurringName); + var target = isRecurring ? conditionValues == null ? void 0 : (_conditionValues$recu = conditionValues[recurringName]) == null ? void 0 : _conditionValues$recu[recurringIndex] : conditionValues; + + if (conditionValues && target) { + return conditions.some(function (c) { + var _target$c; + + if (c.includes(":")) { + var _target$name; + + var _c$split2 = c.split(":"), + name = _c$split2[0], + value = _c$split2[1], + not = _c$split2[2]; + + var isTrue = target[name] === value || Array.isArray(value) && ((_target$name = target[name]) == null ? void 0 : _target$name.includes(value)) || value === "true" && Boolean(target[name]); + if (not) return !isTrue; + return isTrue; + } + + return ((_target$c = target[c]) == null ? void 0 : _target$c.length) > 0 || !!target[c]; + }); + } + } + + return true; +}; + +var StyledRow = styled__default["default"](kit.FormRow).withConfig({ + displayName: "FormRows__StyledRow", + componentId: "sc-1knzxbr-0" +})(["&&{label{:only-child{display:none;}}}background-color:", ";&&{", "}"], function (_ref) { + var theme = _ref.theme; + return theme.palette.gray.light; +}, function (_ref2) { + var backgroundStyle = _ref2.backgroundStyle; + return backgroundStyle === "primary" && styled.css(["background-color:", ";"], function (_ref3) { + var theme = _ref3.theme; + return theme.palette.common.white; + }); +}); +var StyledDivider = styled__default["default"](kit.Divider).withConfig({ + displayName: "FormRows__StyledDivider", + componentId: "sc-1knzxbr-1" +})(["&&{", "}"], function (_ref4) { + var backgroundStyle = _ref4.backgroundStyle; + return backgroundStyle === "primary" && styled.css(["background-color:", ";"], function (_ref5) { + var theme = _ref5.theme; + return theme.palette.common.white; + }); +}); +var Hint = styled__default["default"].span.withConfig({ + displayName: "FormRows__Hint", + componentId: "sc-1knzxbr-2" +})(["background:#f0f0f4;border-radius:100%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;margin-left:8px;vertical-align:middle;svg{color:#8685a6;font-size:10px;}"]); +var FormRows = function FormRows(_ref6) { + var data = _ref6.data, + index = _ref6.index, + isRecurring = _ref6.isRecurring, + rows = _ref6.rows, + stepIndex = _ref6.stepIndex, + stepData = _ref6.stepData, + merchandise = _ref6.merchandise; + + var _useFormContext = reactHookForm.useFormContext(), + errors = _useFormContext.errors, + watch = _useFormContext.watch; + + var _useState = React.useState(false), + expanded = _useState[0], + setExpanded = _useState[1]; + + var showExpandButton = rows == null ? void 0 : rows.some(function (row) { + return row.expandable; + }); + return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, rows == null ? void 0 : rows.map(function (row, idx) { + var _row$marginBottom, _row$fields; + + var rowKey = "step-" + stepIndex + "-row-" + idx; + var rowErrors = []; + var rowConditions = checkCondition(row.conditions, watch, stepData, isRecurring, data.name, index); + if (!rowConditions) return null; + if (row != null && row.heading) return /*#__PURE__*/React__default["default"].createElement(kit.H4, { + content: row == null ? void 0 : row.heading, + px: 4, + mt: 4, + mb: 2 + }); + var showRow = row.expandable ? expanded : true; + var label = [].concat(row.label || []); + if (row.hint) label.push( /*#__PURE__*/React__default["default"].createElement(kit.Tooltip, { + content: row.hint, + contentProps: { + fontStyle: "normal" + } + }, /*#__PURE__*/React__default["default"].createElement(Hint, null, /*#__PURE__*/React__default["default"].createElement(kit.Icon, { + icon: "question" + })))); + return /*#__PURE__*/React__default["default"].createElement(React.Fragment, { + key: rowKey + }, /*#__PURE__*/React__default["default"].createElement(StyledRow, { + errors: rowErrors, + label: label.length > 0 ? label : null, + labelAlign: row.labelAlign, + labelGutter: row.labelGutter, + mb: 0, + pb: (_row$marginBottom = row == null ? void 0 : row.marginBottom) != null ? _row$marginBottom : 4, + pt: 4, + px: 16, + show: showRow, + backgroundStyle: row == null ? void 0 : row.backgroundStyle + }, row.message && /*#__PURE__*/React__default["default"].createElement(kit.Alert, { + color: row.messageColor, + content: row.message, + mb: 2 + }), (_row$fields = row.fields) == null ? void 0 : _row$fields.map(function (field, fieldId) { + var _errors$data$name$ind, _errors$field$name; + + var error = isRecurring && errors[data.name] && errors[data.name][index] ? (_errors$data$name$ind = errors[data.name][index][field.name]) == null ? void 0 : _errors$data$name$ind.message : (_errors$field$name = errors[field.name]) == null ? void 0 : _errors$field$name.message; + if (error) rowErrors.push(error); + var showIfHasCondition = checkCondition(field.conditions, watch, stepData, isRecurring, data.name, index); + if (!showIfHasCondition) return null; + return /*#__PURE__*/React__default["default"].createElement(FormField, { + data: data, + field: field, + fieldId: fieldId, + hasError: !!error, + isRecurring: isRecurring, + recurringIndex: index, + rowId: idx, + stepIndex: stepIndex, + stepData: stepData, + merchandise: (field == null ? void 0 : field.name) === "selectMerchIds" ? merchandise : null + }); + })), (row == null ? void 0 : row.divider) && /*#__PURE__*/React__default["default"].createElement(StyledDivider, { + backgroundStyle: row == null ? void 0 : row.backgroundStyle, + py: row == null ? void 0 : row.dividerSize, + px: 5, + m: 0, + pb: 4 + })); + }), showExpandButton && /*#__PURE__*/React__default["default"].createElement(kit.OutlineButton, { + color: "secondary", + onClick: function onClick() { + return setExpanded(function (prev) { + return !prev; + }); + }, + size: "sm" + }, expanded ? "Hide Optional Params" : "Show Optional Params")); +}; +FormRows.propTypes = { + data: PropTypes__default["default"].shape({ + name: PropTypes__default["default"].string, + recurring: PropTypes__default["default"].bool, + rows: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({})) + }).isRequired, + stepIndex: PropTypes__default["default"].number.isRequired, + stepData: PropTypes__default["default"].shape({}).isRequired, + index: PropTypes__default["default"].number.isRequired, + isRecurring: PropTypes__default["default"].bool.isRequired, + rows: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({})).isRequired +}; +FormRows.defaultProps = {}; + +var Wrapper$1 = styled__default["default"].div.withConfig({ + displayName: "Form__Wrapper", + componentId: "sc-11kuada-0" +})(["padding:", ";background-color:", ";border:1px solid ", ";border-radius:16px;margin:", ";&&{", "}"], function (_ref) { + var theme = _ref.theme; + return theme.spacing(2, 2, 2, 6); +}, function (_ref2) { + var theme = _ref2.theme; + return theme.palette.gray.light; +}, function (_ref3) { + var theme = _ref3.theme; + return theme.palette.gray.regular; +}, function (_ref4) { + var theme = _ref4.theme; + return theme.spacing(5); +}, function (_ref5) { + var disabled = _ref5.disabled; + return disabled && styled.css(["opacity:0.5;cursor:not-allowed !important;pointer-events:none;"]); +}); +var ButtonsWrapper = styled__default["default"].div.withConfig({ + displayName: "Form__ButtonsWrapper", + componentId: "sc-11kuada-1" +})(["display:flex;align-items:center;justify-content:flex-end;margin-bottom:8px;"]); + +var Form = function Form(_ref6) { + var data = _ref6.data, + defaultValues = _ref6.defaultValues, + stepIndex = _ref6.stepIndex, + stepFormData = _ref6.stepFormData, + merchandise = _ref6.merchandise; + var isRecurring = data.recurring; + + var _useFieldArray = reactHookForm.useFieldArray({ + name: isRecurring ? data == null ? void 0 : data.name : "" + }), + fields = _useFieldArray.fields, + append = _useFieldArray.append, + remove = _useFieldArray.remove; + + var renderRows = function renderRows(index) { + return /*#__PURE__*/React__default["default"].createElement(FormRows, { + data: data, + index: index, + isRecurring: isRecurring, + rows: data.rows, + stepIndex: stepIndex, + stepData: stepFormData, + merchandise: merchandise + }); + }; + + var renderRecurring = function renderRecurring() { + return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, fields.map(function (item, idx) { + var _defaultValues$data$n, _defaultValues$data$n2; + + var disabled = defaultValues == null ? void 0 : (_defaultValues$data$n = defaultValues[data.name]) == null ? void 0 : (_defaultValues$data$n2 = _defaultValues$data$n[idx]) == null ? void 0 : _defaultValues$data$n2.disabled; + return /*#__PURE__*/React__default["default"].createElement(Wrapper$1, { + key: item.id, + disabled: disabled + }, /*#__PURE__*/React__default["default"].createElement(ButtonsWrapper, null, disabled && /*#__PURE__*/React__default["default"].createElement(kit.Alert, { + content: "This is a default item and can't be removed/changed.", + mr: 2 + }), /*#__PURE__*/React__default["default"].createElement(kit.OutlineButton, { + color: "danger", + disabled: disabled, + onClick: function onClick() { + return remove(idx); + }, + size: "sm" + }, /*#__PURE__*/React__default["default"].createElement(kit.Icon, { + icon: "trash", + prefix: "fa" + }))), renderRows(idx)); + }), /*#__PURE__*/React__default["default"].createElement(kit.TextButton, { + content: "+ Add item", + onClick: append, + size: "sm" + })); + }; + + return isRecurring ? renderRecurring() : renderRows(); +}; + +Form.propTypes = { + data: PropTypes__default["default"].shape({ + name: PropTypes__default["default"].string, + recurring: PropTypes__default["default"].bool, + rows: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape({})) + }).isRequired, + stepIndex: PropTypes__default["default"].number.isRequired, + stepFormData: PropTypes__default["default"].shape({}) +}; +Form.defaultProps = { + stepFormData: {} +}; + +var MegaFlowIcons = { + faDownload: freeSolidSvgIcons.faDownload, + faHashtag: freeSolidSvgIcons.faHashtag, + faTrash: freeSolidSvgIcons.faTrash +}; + +var MegaFlowPropTypes = { + defaultValues: PropTypes__default["default"].shape({}), + icons: PropTypes__default["default"].arrayOf(PropTypes__default["default"].shape()), + schema: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].object]).isRequired, + onFinish: PropTypes__default["default"].func, + onStepSubmit: PropTypes__default["default"].func, + renderActionButtons: PropTypes__default["default"].func, + theme: PropTypes__default["default"].shape(), + watcher: PropTypes__default["default"].func, + watchList: PropTypes__default["default"].arrayOf(PropTypes__default["default"].string), + wizardProps: PropTypes__default["default"].shape(), + wrapperProps: PropTypes__default["default"].shape() +}; +var MegaFlowDefaultProps = { + defaultValues: {}, + icons: [], + onFinish: function onFinish() {}, + renderActionButtons: function renderActionButtons() {}, + watchList: [] +}; + +var _excluded = ["defaultValues", "icons", "schema", "onFinish", "onStepSubmit", "renderActionButtons", "theme", "watcher", "livePreview", "wizardProps", "wrapperProps"], + _excluded2 = ["formState", "getValues", "handleSubmit"]; +var Wrapper = styled__default["default"].div.withConfig({ + displayName: "src__Wrapper", + componentId: "sc-osiobx-0" +})(["background-color:", ";"], function (_ref) { + var theme = _ref.theme; + return theme.palette.gray.light; +}); + +var getOutputData = function getOutputData(output) { + return Object.values(output).reduce(function (obj, acc) { + return _extends({}, obj, acc); + }, {}); +}; + +var getHiddenValues = function getHiddenValues(array, key) { + var initialValue = {}; + return array.reduce(function (obj, item) { + var _extends2; + + return _extends({}, obj, (_extends2 = {}, _extends2[item["name"]] = item == null ? void 0 : item.value, _extends2)); + }, initialValue); +}; + +var MegaFlow = function MegaFlow(_ref2) { + var defaultValues = _ref2.defaultValues, + icons = _ref2.icons, + schema = _ref2.schema, + onFinish = _ref2.onFinish, + onStepSubmit = _ref2.onStepSubmit, + _renderActionButtons = _ref2.renderActionButtons, + theme = _ref2.theme, + watcher = _ref2.watcher, + livePreview = _ref2.livePreview, + wizardProps = _ref2.wizardProps, + wrapperProps = _ref2.wrapperProps, + props = _objectWithoutPropertiesLoose(_ref2, _excluded); + + // Parse if schema was type of JSON string + var parsedSchema = typeof schema === "string" ? JSON.parse(schema) : schema; + var steps = parsedSchema.steps, + hiddenValues = parsedSchema.hiddenValues; + + var _useState = React.useState(0), + currentStep = _useState[0], + setCurrentStep = _useState[1]; + + var isCurrentLastStep = currentStep === steps.length - 1; + + var _useState2 = React.useState({}), + wizardData = _useState2[0], + setWizardData = _useState2[1]; + + var _useState3 = React.useState({}), + hiddenData = _useState3[0], + setHiddenData = _useState3[1]; + + var _useForm = reactHookForm.useForm(); + _useForm.formState; + var getValues = _useForm.getValues, + handleSubmit = _useForm.handleSubmit, + methods = _objectWithoutPropertiesLoose(_useForm, _excluded2); + + var stepFormData = wizardData[currentStep] || defaultValues; + React.useEffect(function () { + methods.reset(stepFormData); // set hidden values to include in output, without displaying + + if (hiddenValues && currentStep === 0) { + setHiddenData(getHiddenValues(hiddenValues)); + } + + if (watcher) { + watcher(getOutputData(wizardData)); + } + }, [currentStep]); + + var onSubmit = function onSubmit(data) { + var _extends3; + + var currentState = _extends({ + hiddenData: hiddenData + }, wizardData, (_extends3 = {}, _extends3[currentStep] = data, _extends3)); // Set step data in global wizard object + + + setWizardData(currentState); // Send step data to props + + if (onStepSubmit) onStepSubmit(data); + + if (!isCurrentLastStep) { + setCurrentStep(function (prev) { + return prev + 1; + }); + } else { + onFinish(getOutputData(currentState)); + } + }; + + var stepsArray = steps.map(function (st) { + return { + title: st.title + }; + }); + + var renderForm = function renderForm() { + return /*#__PURE__*/React__default["default"].createElement(Form, { + data: steps[currentStep], + key: currentStep, + stepIndex: currentStep, + stepFormData: stepFormData, + defaultValues: defaultValues, + merchandise: props.merchandise + }); + }; + + return /*#__PURE__*/React__default["default"].createElement(kit.AppContainer, { + icons: _extends({}, kit.RocksKitIcons, MegaFlowIcons, icons), + theme: theme || kit.RocksKitTheme() + }, /*#__PURE__*/React__default["default"].createElement(Wrapper, wrapperProps, /*#__PURE__*/React__default["default"].createElement("form", { + onBlur: function onBlur(event) { + event.preventDefault(); + var values = getValues(); + var data = Object.assign(values, hiddenData); + + if (livePreview) { + livePreview(data); + } + }, + onSubmit: handleSubmit(onSubmit) + }, /*#__PURE__*/React__default["default"].createElement(reactHookForm.FormProvider, methods, /*#__PURE__*/React__default["default"].createElement(kit.Wizard, _extends({ + currentStepContent: renderForm(), + currentStepIndex: currentStep, + renderActionButtons: function renderActionButtons() { + return _renderActionButtons(getOutputData(wizardData)); + }, + setCurrentStepIndex: setCurrentStep, + steps: stepsArray, + backgroundStyle: "primary" + }, wizardProps, props)))))); +}; + +MegaFlow.propTypes = MegaFlowPropTypes; +MegaFlow.defaultProps = MegaFlowDefaultProps; + +module.exports = MegaFlow; +//# sourceMappingURL=mega-flow.common.js.map diff --git a/dist/mega-flow.common.js.map b/dist/mega-flow.common.js.map new file mode 100644 index 0000000..e883c2a --- /dev/null +++ b/dist/mega-flow.common.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mega-flow.common.js","sources":["../src/components/Form/Field.js","../src/helpers/conditions.js","../src/components/Form/FormRows.js","../src/components/Form/Form.js","../src/theme/icons.js","../src/props.js","../src/index.js"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport {\n BorderedRadio,\n Checkbox,\n FormDatepicker,\n FilePond,\n FileUpload,\n Input,\n PriceField,\n Radio,\n ReactSelect,\n Select,\n Stepper,\n TextArea,\n TextButton,\n ToggleSwitch,\n H6,\n Image,\n Icon,\n Text,\n Modal,\n ItemSelect,\n} from \"@licenserocks/kit\";\nimport styled, { css } from \"styled-components\";\nimport Masonry from \"react-masonry-css\";\n\nconst mapFieldTypeToComponent = (fieldType) => {\n switch (fieldType) {\n case \"datepicker\":\n return FormDatepicker;\n case \"select\":\n return Select;\n case \"borderedRadio\":\n return BorderedRadio;\n case \"checkbox\":\n return Checkbox;\n case \"radio\":\n return Radio;\n case \"toggleSwitch\":\n return ToggleSwitch;\n case \"fileUpload\":\n return FileUpload;\n case \"filePond\":\n return FilePond;\n case \"price\":\n return PriceField;\n case \"reactSelect\":\n return ReactSelect;\n case \"stepper\":\n return Stepper;\n case \"textArea\":\n return TextArea;\n case \"itemSelect\":\n return ItemSelect;\n default:\n return Input;\n }\n};\n\nexport const FormField = ({\n data,\n field,\n hasError,\n isRecurring,\n recurringIndex,\n stepIndex,\n fieldId,\n rowId,\n stepData,\n merchandise,\n}) => {\n const { control, setValue, register, watch } = useFormContext();\n const { conditions, defaultValue, name, required, type, options, ...others } =\n field;\n\n if (type === \"link\") return ;\n\n const Field = mapFieldTypeToComponent(type);\n const fieldKey = `step-${stepIndex}-row-${rowId}-field-${fieldId}`;\n const fieldName = isRecurring\n ? `${data.name}[${recurringIndex}].${name}`\n : name;\n\n const prevValue =\n isRecurring && stepData[data.name] && stepData[data.name][recurringIndex]\n ? stepData[data.name][recurringIndex][name]\n : stepData[name];\n\n if (field?.currencies !== undefined) {\n field.currencies = stepData?.currencies;\n }\n\n return (\n \n );\n};\n\nFormField.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string,\n recurring: PropTypes.bool,\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n field: PropTypes.shape({\n conditions: PropTypes.arrayOf(PropTypes.string),\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n name: PropTypes.string,\n required: PropTypes.string,\n type: PropTypes.string,\n }).isRequired,\n fieldId: PropTypes.number.isRequired,\n hasError: PropTypes.bool.isRequired,\n isRecurring: PropTypes.bool.isRequired,\n recurringIndex: PropTypes.number,\n stepIndex: PropTypes.number.isRequired,\n stepData: PropTypes.shape({}).isRequired,\n rowId: PropTypes.number.isRequired,\n};\n\nFormField.defaultProps = {\n recurringIndex: null,\n};\n","const getConditionValues = (\n conditions,\n watch,\n wizardData,\n isRecurring,\n recurringName\n) => {\n const name = conditions.map((c) => {\n if (c.includes(\":\")) {\n const [n] = c.split(\":\");\n return n;\n }\n return c;\n });\n\n return watch(isRecurring ? [recurringName] : name, wizardData);\n};\n\nexport const checkCondition = (\n conditions,\n watch,\n wizardData,\n isRecurring,\n recurringName,\n recurringIndex\n) => {\n const hasConditions = conditions && conditions.length > 0;\n if (hasConditions) {\n const conditionValues = getConditionValues(\n conditions,\n watch,\n wizardData,\n isRecurring,\n recurringName\n );\n\n const target = isRecurring\n ? conditionValues?.[recurringName]?.[recurringIndex]\n : conditionValues;\n\n if (conditionValues && target) {\n return conditions.some((c) => {\n if (c.includes(\":\")) {\n const [name, value, not] = c.split(\":\");\n const isTrue =\n target[name] === value ||\n (Array.isArray(value) && target[name]?.includes(value)) ||\n (value === \"true\" && Boolean(target[name]));\n\n if (not) return !isTrue;\n return isTrue;\n }\n return target[c]?.length > 0 || !!target[c];\n });\n }\n }\n return true;\n};\n","import React, { Fragment, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled, { css } from \"styled-components\";\nimport { useFormContext } from \"react-hook-form\";\nimport {\n Alert,\n Divider,\n FormRow,\n H4,\n Icon,\n OutlineButton,\n Tooltip,\n} from \"@licenserocks/kit\";\n\nimport { FormField } from \"./Field\";\nimport { checkCondition } from \"../../helpers\";\n\nconst StyledRow = styled(FormRow)`\n && {\n label {\n :only-child {\n display: none;\n }\n }\n }\n\n background-color: ${({ theme }) => theme.palette.gray.light};\n && {\n ${({ backgroundStyle }) =>\n backgroundStyle === \"primary\" &&\n css`\n background-color: ${({ theme }) => theme.palette.common.white};\n `}\n }\n`;\n\nconst StyledDivider = styled(Divider)`\n && {\n ${({ backgroundStyle }) =>\n backgroundStyle === \"primary\" &&\n css`\n background-color: ${({ theme }) => theme.palette.common.white};\n `}\n }\n`;\n\nconst Hint = styled.span`\n background: #f0f0f4;\n border-radius: 100%;\n width: 20px;\n height: 20px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: 8px;\n vertical-align: middle;\n\n svg {\n color: #8685a6;\n font-size: 10px;\n }\n`;\n\nexport const FormRows = ({\n data,\n index,\n isRecurring,\n rows,\n stepIndex,\n stepData,\n merchandise,\n}) => {\n const { errors, watch } = useFormContext();\n const [expanded, setExpanded] = useState(false);\n const showExpandButton = rows?.some((row) => row.expandable);\n\n return (\n <>\n {rows?.map((row, idx) => {\n const rowKey = `step-${stepIndex}-row-${idx}`;\n const rowErrors = [];\n const rowConditions = checkCondition(\n row.conditions,\n watch,\n stepData,\n isRecurring,\n data.name,\n index\n );\n if (!rowConditions) return null;\n\n if (row?.heading)\n return

;\n\n const showRow = row.expandable ? expanded : true;\n const label = [...(row.label || [])];\n if (row.hint)\n label.push(\n \n \n \n \n \n );\n\n return (\n \n 0 ? label : null}\n labelAlign={row.labelAlign}\n labelGutter={row.labelGutter}\n mb={0}\n pb={row?.marginBottom ?? 4}\n pt={4}\n px={16}\n show={showRow}\n backgroundStyle={row?.backgroundStyle}\n >\n {row.message && (\n \n )}\n\n {row.fields?.map((field, fieldId) => {\n const error =\n isRecurring && errors[data.name] && errors[data.name][index]\n ? errors[data.name][index][field.name]?.message\n : errors[field.name]?.message;\n\n if (error) rowErrors.push(error);\n\n const showIfHasCondition = checkCondition(\n field.conditions,\n watch,\n stepData,\n isRecurring,\n data.name,\n index\n );\n if (!showIfHasCondition) return null;\n\n return (\n \n );\n })}\n \n\n {row?.divider && (\n \n )}\n \n );\n })}\n\n {showExpandButton && (\n setExpanded((prev) => !prev)}\n size=\"sm\"\n >\n {expanded ? \"Hide Optional Params\" : \"Show Optional Params\"}\n \n )}\n \n );\n};\n\nFormRows.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string,\n recurring: PropTypes.bool,\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n stepIndex: PropTypes.number.isRequired,\n stepData: PropTypes.shape({}).isRequired,\n index: PropTypes.number.isRequired,\n isRecurring: PropTypes.bool.isRequired,\n rows: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nFormRows.defaultProps = {};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled, { css } from \"styled-components\";\nimport { useFieldArray } from \"react-hook-form\";\nimport { Alert, Icon, OutlineButton, TextButton } from \"@licenserocks/kit\";\n\nimport { FormRows } from \"./FormRows\";\n\nconst Wrapper = styled.div`\n padding: ${({ theme }) => theme.spacing(2, 2, 2, 6)};\n background-color: ${({ theme }) => theme.palette.gray.light};\n border: 1px solid ${({ theme }) => theme.palette.gray.regular};\n border-radius: 16px;\n margin: ${({ theme }) => theme.spacing(5)};\n\n && {\n ${({ disabled }) =>\n disabled &&\n css`\n opacity: 0.5;\n cursor: not-allowed !important;\n pointer-events: none;\n `}\n }\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n margin-bottom: 8px;\n`;\n\nconst Form = ({\n data,\n defaultValues,\n stepIndex,\n stepFormData,\n merchandise,\n}) => {\n const isRecurring = data.recurring;\n\n const { fields, append, remove } = useFieldArray({\n name: isRecurring ? data?.name : \"\",\n });\n\n const renderRows = (index) => (\n \n );\n\n const renderRecurring = () => (\n <>\n {fields.map((item, idx) => {\n const disabled = defaultValues?.[data.name]?.[idx]?.disabled;\n return (\n \n \n {disabled && (\n \n )}\n\n remove(idx)}\n size=\"sm\"\n >\n \n \n \n\n {renderRows(idx)}\n \n );\n })}\n\n \n \n );\n\n return isRecurring ? renderRecurring() : renderRows();\n};\n\nForm.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string,\n recurring: PropTypes.bool,\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n stepIndex: PropTypes.number.isRequired,\n stepFormData: PropTypes.shape({}),\n};\n\nForm.defaultProps = {\n stepFormData: {},\n};\n\nexport default Form;\n","import {\n faDownload,\n faHashtag,\n faTrash,\n} from \"@fortawesome/free-solid-svg-icons\";\n\nexport const MegaFlowIcons = {\n faDownload,\n faHashtag,\n faTrash,\n};\n","import PropTypes from \"prop-types\";\n\nexport const MegaFlowPropTypes = {\n defaultValues: PropTypes.shape({}),\n icons: PropTypes.arrayOf(PropTypes.shape()),\n schema: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n onFinish: PropTypes.func,\n onStepSubmit: PropTypes.func,\n renderActionButtons: PropTypes.func,\n theme: PropTypes.shape(),\n watcher: PropTypes.func,\n watchList: PropTypes.arrayOf(PropTypes.string),\n wizardProps: PropTypes.shape(),\n wrapperProps: PropTypes.shape(),\n};\n\nexport const MegaFlowDefaultProps = {\n defaultValues: {},\n icons: [],\n onFinish: () => { },\n renderActionButtons: () => { },\n watchList: [],\n};\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport {\n AppContainer,\n RocksKitIcons,\n RocksKitTheme,\n Wizard,\n} from \"@licenserocks/kit\";\nimport { FormProvider, useForm } from \"react-hook-form\";\n\nimport { Form } from \"./components\";\nimport { MegaFlowIcons } from \"./theme\";\nimport { MegaFlowPropTypes, MegaFlowDefaultProps } from \"./props\";\n\nconst Wrapper = styled.div`\n background-color: ${({ theme }) => theme.palette.gray.light};\n`;\n\nconst getOutputData = (output) =>\n Object.values(output).reduce((obj, acc) => ({ ...obj, ...acc }), {});\n\nconst getHiddenValues = (array, key) => {\n const initialValue = {};\n return array.reduce((obj, item) => {\n return {\n ...obj,\n [item[\"name\"]]: item?.value,\n };\n }, initialValue);\n};\n\nconst MegaFlow = ({\n defaultValues,\n icons,\n schema,\n onFinish,\n onStepSubmit,\n renderActionButtons,\n theme,\n watcher,\n livePreview,\n wizardProps,\n wrapperProps,\n ...props\n}) => {\n // Parse if schema was type of JSON string\n const parsedSchema = typeof schema === \"string\" ? JSON.parse(schema) : schema;\n\n const { steps, hiddenValues } = parsedSchema;\n const [currentStep, setCurrentStep] = useState(0);\n const isCurrentLastStep = currentStep === steps.length - 1;\n const [wizardData, setWizardData] = useState({});\n const [hiddenData, setHiddenData] = useState({});\n const { formState, getValues, handleSubmit, ...methods } = useForm();\n\n const stepFormData = wizardData[currentStep] || defaultValues;\n useEffect(() => {\n methods.reset(stepFormData);\n // set hidden values to include in output, without displaying\n if (hiddenValues && currentStep === 0) {\n setHiddenData(getHiddenValues(hiddenValues));\n }\n if (watcher) {\n watcher(getOutputData(wizardData));\n }\n }, [currentStep]);\n\n const onSubmit = (data) => {\n const currentState = {\n hiddenData,\n ...wizardData,\n [currentStep]: data,\n };\n\n // Set step data in global wizard object\n setWizardData(currentState);\n\n // Send step data to props\n if (onStepSubmit) onStepSubmit(data);\n\n if (!isCurrentLastStep) {\n setCurrentStep((prev) => prev + 1);\n } else {\n onFinish(getOutputData(currentState));\n }\n };\n\n const stepsArray = steps.map((st) => ({\n title: st.title,\n }));\n\n const renderForm = () => (\n \n );\n\n return (\n \n \n {\n event.preventDefault();\n const values = getValues();\n\n const data = Object.assign(values, hiddenData);\n if (livePreview) {\n livePreview(data);\n }\n }}\n onSubmit={handleSubmit(onSubmit)}\n >\n \n \n renderActionButtons(getOutputData(wizardData))\n }\n setCurrentStepIndex={setCurrentStep}\n steps={stepsArray}\n backgroundStyle=\"primary\"\n {...wizardProps}\n {...props}\n />\n \n \n \n \n );\n};\n\nMegaFlow.propTypes = MegaFlowPropTypes;\n\nMegaFlow.defaultProps = MegaFlowDefaultProps;\n\nexport default MegaFlow;\n"],"names":["mapFieldTypeToComponent","fieldType","FormDatepicker","Select","BorderedRadio","Checkbox","Radio","ToggleSwitch","FileUpload","FilePond","PriceField","ReactSelect","Stepper","TextArea","ItemSelect","Input","FormField","data","field","hasError","isRecurring","recurringIndex","stepIndex","fieldId","rowId","stepData","merchandise","useFormContext","control","setValue","register","watch","conditions","defaultValue","name","required","type","options","others","_excluded","React","TextButton","Field","fieldKey","fieldName","prevValue","currencies","undefined","propTypes","PropTypes","shape","string","recurring","bool","rows","arrayOf","isRequired","oneOfType","object","number","defaultProps","getConditionValues","wizardData","recurringName","map","c","includes","split","n","checkCondition","hasConditions","length","conditionValues","target","some","value","not","isTrue","Array","isArray","Boolean","StyledRow","styled","FormRow","theme","palette","gray","light","backgroundStyle","css","common","white","StyledDivider","Divider","Hint","span","FormRows","index","errors","useState","expanded","setExpanded","showExpandButton","row","expandable","idx","rowKey","rowErrors","rowConditions","heading","H4","showRow","label","hint","push","Tooltip","fontStyle","Icon","Fragment","labelAlign","labelGutter","marginBottom","message","Alert","messageColor","fields","error","showIfHasCondition","divider","dividerSize","OutlineButton","prev","Wrapper","div","spacing","regular","disabled","ButtonsWrapper","Form","defaultValues","stepFormData","useFieldArray","append","remove","renderRows","renderRecurring","item","id","MegaFlowIcons","faDownload","faHashtag","faTrash","MegaFlowPropTypes","icons","schema","onFinish","func","onStepSubmit","renderActionButtons","watcher","watchList","wizardProps","wrapperProps","MegaFlowDefaultProps","getOutputData","output","Object","values","reduce","obj","acc","getHiddenValues","array","key","initialValue","MegaFlow","livePreview","props","parsedSchema","JSON","parse","steps","hiddenValues","currentStep","setCurrentStep","isCurrentLastStep","setWizardData","hiddenData","setHiddenData","useForm","formState","getValues","handleSubmit","methods","useEffect","reset","onSubmit","currentState","stepsArray","st","title","renderForm","AppContainer","RocksKitIcons","RocksKitTheme","event","preventDefault","assign","FormProvider","Wizard"],"mappings":"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"} \ No newline at end of file diff --git a/dist/mega-flow.es.js b/dist/mega-flow.es.js new file mode 100644 index 0000000..6110e25 --- /dev/null +++ b/dist/mega-flow.es.js @@ -0,0 +1,619 @@ +import React, { useState, Fragment, useEffect } from 'react'; +import styled, { css } from 'styled-components'; +import { TextButton, Input, ItemSelect, TextArea, Stepper, ReactSelect, PriceField, FilePond, FileUpload, ToggleSwitch, Radio, Checkbox, BorderedRadio, Select, FormDatepicker, FormRow, Divider, H4, Tooltip, Icon, Alert, OutlineButton, AppContainer, RocksKitTheme, Wizard, RocksKitIcons } from '@licenserocks/kit'; +import { useFormContext, useFieldArray, useForm, FormProvider } from 'react-hook-form'; +import PropTypes from 'prop-types'; +import 'react-masonry-css'; +import { faDownload, faHashtag, faTrash } from '@fortawesome/free-solid-svg-icons'; + +function _extends() { + _extends = Object.assign ? Object.assign.bind() : function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + return _extends.apply(this, arguments); +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +var _excluded$1 = ["conditions", "defaultValue", "name", "required", "type", "options"]; + +var mapFieldTypeToComponent = function mapFieldTypeToComponent(fieldType) { + switch (fieldType) { + case "datepicker": + return FormDatepicker; + + case "select": + return Select; + + case "borderedRadio": + return BorderedRadio; + + case "checkbox": + return Checkbox; + + case "radio": + return Radio; + + case "toggleSwitch": + return ToggleSwitch; + + case "fileUpload": + return FileUpload; + + case "filePond": + return FilePond; + + case "price": + return PriceField; + + case "reactSelect": + return ReactSelect; + + case "stepper": + return Stepper; + + case "textArea": + return TextArea; + + case "itemSelect": + return ItemSelect; + + default: + return Input; + } +}; + +var FormField = function FormField(_ref) { + var data = _ref.data, + field = _ref.field, + hasError = _ref.hasError, + isRecurring = _ref.isRecurring, + recurringIndex = _ref.recurringIndex, + stepIndex = _ref.stepIndex, + fieldId = _ref.fieldId, + rowId = _ref.rowId, + stepData = _ref.stepData; + _ref.merchandise; + + var _useFormContext = useFormContext(), + control = _useFormContext.control, + setValue = _useFormContext.setValue, + register = _useFormContext.register, + watch = _useFormContext.watch; + + field.conditions; + var defaultValue = field.defaultValue, + name = field.name, + required = field.required, + type = field.type, + options = field.options, + others = _objectWithoutPropertiesLoose(field, _excluded$1); + + if (type === "link") return /*#__PURE__*/React.createElement(TextButton, others); + var Field = mapFieldTypeToComponent(type); + var fieldKey = "step-" + stepIndex + "-row-" + rowId + "-field-" + fieldId; + var fieldName = isRecurring ? data.name + "[" + recurringIndex + "]." + name : name; + var prevValue = isRecurring && stepData[data.name] && stepData[data.name][recurringIndex] ? stepData[data.name][recurringIndex][name] : stepData[name]; + + if ((field == null ? void 0 : field.currencies) !== undefined) { + field.currencies = stepData == null ? void 0 : stepData.currencies; + } + + return /*#__PURE__*/React.createElement(Field, _extends({ + control: control, + defaultValue: prevValue || defaultValue, + hasError: hasError, + isRequired: required, + key: fieldKey, + name: fieldName, + register: register({ + required: required + }), + setValue: setValue, + options: options, + type: type, + value: watch(fieldName) + }, others)); +}; +FormField.propTypes = { + data: PropTypes.shape({ + name: PropTypes.string, + recurring: PropTypes.bool, + rows: PropTypes.arrayOf(PropTypes.shape({})) + }).isRequired, + field: PropTypes.shape({ + conditions: PropTypes.arrayOf(PropTypes.string), + defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.object]), + name: PropTypes.string, + required: PropTypes.string, + type: PropTypes.string + }).isRequired, + fieldId: PropTypes.number.isRequired, + hasError: PropTypes.bool.isRequired, + isRecurring: PropTypes.bool.isRequired, + recurringIndex: PropTypes.number, + stepIndex: PropTypes.number.isRequired, + stepData: PropTypes.shape({}).isRequired, + rowId: PropTypes.number.isRequired +}; +FormField.defaultProps = { + recurringIndex: null +}; + +var getConditionValues = function getConditionValues(conditions, watch, wizardData, isRecurring, recurringName) { + var name = conditions.map(function (c) { + if (c.includes(":")) { + var _c$split = c.split(":"), + n = _c$split[0]; + + return n; + } + + return c; + }); + return watch(isRecurring ? [recurringName] : name, wizardData); +}; + +var checkCondition = function checkCondition(conditions, watch, wizardData, isRecurring, recurringName, recurringIndex) { + var hasConditions = conditions && conditions.length > 0; + + if (hasConditions) { + var _conditionValues$recu; + + var conditionValues = getConditionValues(conditions, watch, wizardData, isRecurring, recurringName); + var target = isRecurring ? conditionValues == null ? void 0 : (_conditionValues$recu = conditionValues[recurringName]) == null ? void 0 : _conditionValues$recu[recurringIndex] : conditionValues; + + if (conditionValues && target) { + return conditions.some(function (c) { + var _target$c; + + if (c.includes(":")) { + var _target$name; + + var _c$split2 = c.split(":"), + name = _c$split2[0], + value = _c$split2[1], + not = _c$split2[2]; + + var isTrue = target[name] === value || Array.isArray(value) && ((_target$name = target[name]) == null ? void 0 : _target$name.includes(value)) || value === "true" && Boolean(target[name]); + if (not) return !isTrue; + return isTrue; + } + + return ((_target$c = target[c]) == null ? void 0 : _target$c.length) > 0 || !!target[c]; + }); + } + } + + return true; +}; + +var StyledRow = styled(FormRow).withConfig({ + displayName: "FormRows__StyledRow", + componentId: "sc-1knzxbr-0" +})(["&&{label{:only-child{display:none;}}}background-color:", ";&&{", "}"], function (_ref) { + var theme = _ref.theme; + return theme.palette.gray.light; +}, function (_ref2) { + var backgroundStyle = _ref2.backgroundStyle; + return backgroundStyle === "primary" && css(["background-color:", ";"], function (_ref3) { + var theme = _ref3.theme; + return theme.palette.common.white; + }); +}); +var StyledDivider = styled(Divider).withConfig({ + displayName: "FormRows__StyledDivider", + componentId: "sc-1knzxbr-1" +})(["&&{", "}"], function (_ref4) { + var backgroundStyle = _ref4.backgroundStyle; + return backgroundStyle === "primary" && css(["background-color:", ";"], function (_ref5) { + var theme = _ref5.theme; + return theme.palette.common.white; + }); +}); +var Hint = styled.span.withConfig({ + displayName: "FormRows__Hint", + componentId: "sc-1knzxbr-2" +})(["background:#f0f0f4;border-radius:100%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;margin-left:8px;vertical-align:middle;svg{color:#8685a6;font-size:10px;}"]); +var FormRows = function FormRows(_ref6) { + var data = _ref6.data, + index = _ref6.index, + isRecurring = _ref6.isRecurring, + rows = _ref6.rows, + stepIndex = _ref6.stepIndex, + stepData = _ref6.stepData, + merchandise = _ref6.merchandise; + + var _useFormContext = useFormContext(), + errors = _useFormContext.errors, + watch = _useFormContext.watch; + + var _useState = useState(false), + expanded = _useState[0], + setExpanded = _useState[1]; + + var showExpandButton = rows == null ? void 0 : rows.some(function (row) { + return row.expandable; + }); + return /*#__PURE__*/React.createElement(React.Fragment, null, rows == null ? void 0 : rows.map(function (row, idx) { + var _row$marginBottom, _row$fields; + + var rowKey = "step-" + stepIndex + "-row-" + idx; + var rowErrors = []; + var rowConditions = checkCondition(row.conditions, watch, stepData, isRecurring, data.name, index); + if (!rowConditions) return null; + if (row != null && row.heading) return /*#__PURE__*/React.createElement(H4, { + content: row == null ? void 0 : row.heading, + px: 4, + mt: 4, + mb: 2 + }); + var showRow = row.expandable ? expanded : true; + var label = [].concat(row.label || []); + if (row.hint) label.push( /*#__PURE__*/React.createElement(Tooltip, { + content: row.hint, + contentProps: { + fontStyle: "normal" + } + }, /*#__PURE__*/React.createElement(Hint, null, /*#__PURE__*/React.createElement(Icon, { + icon: "question" + })))); + return /*#__PURE__*/React.createElement(Fragment, { + key: rowKey + }, /*#__PURE__*/React.createElement(StyledRow, { + errors: rowErrors, + label: label.length > 0 ? label : null, + labelAlign: row.labelAlign, + labelGutter: row.labelGutter, + mb: 0, + pb: (_row$marginBottom = row == null ? void 0 : row.marginBottom) != null ? _row$marginBottom : 4, + pt: 4, + px: 16, + show: showRow, + backgroundStyle: row == null ? void 0 : row.backgroundStyle + }, row.message && /*#__PURE__*/React.createElement(Alert, { + color: row.messageColor, + content: row.message, + mb: 2 + }), (_row$fields = row.fields) == null ? void 0 : _row$fields.map(function (field, fieldId) { + var _errors$data$name$ind, _errors$field$name; + + var error = isRecurring && errors[data.name] && errors[data.name][index] ? (_errors$data$name$ind = errors[data.name][index][field.name]) == null ? void 0 : _errors$data$name$ind.message : (_errors$field$name = errors[field.name]) == null ? void 0 : _errors$field$name.message; + if (error) rowErrors.push(error); + var showIfHasCondition = checkCondition(field.conditions, watch, stepData, isRecurring, data.name, index); + if (!showIfHasCondition) return null; + return /*#__PURE__*/React.createElement(FormField, { + data: data, + field: field, + fieldId: fieldId, + hasError: !!error, + isRecurring: isRecurring, + recurringIndex: index, + rowId: idx, + stepIndex: stepIndex, + stepData: stepData, + merchandise: (field == null ? void 0 : field.name) === "selectMerchIds" ? merchandise : null + }); + })), (row == null ? void 0 : row.divider) && /*#__PURE__*/React.createElement(StyledDivider, { + backgroundStyle: row == null ? void 0 : row.backgroundStyle, + py: row == null ? void 0 : row.dividerSize, + px: 5, + m: 0, + pb: 4 + })); + }), showExpandButton && /*#__PURE__*/React.createElement(OutlineButton, { + color: "secondary", + onClick: function onClick() { + return setExpanded(function (prev) { + return !prev; + }); + }, + size: "sm" + }, expanded ? "Hide Optional Params" : "Show Optional Params")); +}; +FormRows.propTypes = { + data: PropTypes.shape({ + name: PropTypes.string, + recurring: PropTypes.bool, + rows: PropTypes.arrayOf(PropTypes.shape({})) + }).isRequired, + stepIndex: PropTypes.number.isRequired, + stepData: PropTypes.shape({}).isRequired, + index: PropTypes.number.isRequired, + isRecurring: PropTypes.bool.isRequired, + rows: PropTypes.arrayOf(PropTypes.shape({})).isRequired +}; +FormRows.defaultProps = {}; + +var Wrapper$1 = styled.div.withConfig({ + displayName: "Form__Wrapper", + componentId: "sc-11kuada-0" +})(["padding:", ";background-color:", ";border:1px solid ", ";border-radius:16px;margin:", ";&&{", "}"], function (_ref) { + var theme = _ref.theme; + return theme.spacing(2, 2, 2, 6); +}, function (_ref2) { + var theme = _ref2.theme; + return theme.palette.gray.light; +}, function (_ref3) { + var theme = _ref3.theme; + return theme.palette.gray.regular; +}, function (_ref4) { + var theme = _ref4.theme; + return theme.spacing(5); +}, function (_ref5) { + var disabled = _ref5.disabled; + return disabled && css(["opacity:0.5;cursor:not-allowed !important;pointer-events:none;"]); +}); +var ButtonsWrapper = styled.div.withConfig({ + displayName: "Form__ButtonsWrapper", + componentId: "sc-11kuada-1" +})(["display:flex;align-items:center;justify-content:flex-end;margin-bottom:8px;"]); + +var Form = function Form(_ref6) { + var data = _ref6.data, + defaultValues = _ref6.defaultValues, + stepIndex = _ref6.stepIndex, + stepFormData = _ref6.stepFormData, + merchandise = _ref6.merchandise; + var isRecurring = data.recurring; + + var _useFieldArray = useFieldArray({ + name: isRecurring ? data == null ? void 0 : data.name : "" + }), + fields = _useFieldArray.fields, + append = _useFieldArray.append, + remove = _useFieldArray.remove; + + var renderRows = function renderRows(index) { + return /*#__PURE__*/React.createElement(FormRows, { + data: data, + index: index, + isRecurring: isRecurring, + rows: data.rows, + stepIndex: stepIndex, + stepData: stepFormData, + merchandise: merchandise + }); + }; + + var renderRecurring = function renderRecurring() { + return /*#__PURE__*/React.createElement(React.Fragment, null, fields.map(function (item, idx) { + var _defaultValues$data$n, _defaultValues$data$n2; + + var disabled = defaultValues == null ? void 0 : (_defaultValues$data$n = defaultValues[data.name]) == null ? void 0 : (_defaultValues$data$n2 = _defaultValues$data$n[idx]) == null ? void 0 : _defaultValues$data$n2.disabled; + return /*#__PURE__*/React.createElement(Wrapper$1, { + key: item.id, + disabled: disabled + }, /*#__PURE__*/React.createElement(ButtonsWrapper, null, disabled && /*#__PURE__*/React.createElement(Alert, { + content: "This is a default item and can't be removed/changed.", + mr: 2 + }), /*#__PURE__*/React.createElement(OutlineButton, { + color: "danger", + disabled: disabled, + onClick: function onClick() { + return remove(idx); + }, + size: "sm" + }, /*#__PURE__*/React.createElement(Icon, { + icon: "trash", + prefix: "fa" + }))), renderRows(idx)); + }), /*#__PURE__*/React.createElement(TextButton, { + content: "+ Add item", + onClick: append, + size: "sm" + })); + }; + + return isRecurring ? renderRecurring() : renderRows(); +}; + +Form.propTypes = { + data: PropTypes.shape({ + name: PropTypes.string, + recurring: PropTypes.bool, + rows: PropTypes.arrayOf(PropTypes.shape({})) + }).isRequired, + stepIndex: PropTypes.number.isRequired, + stepFormData: PropTypes.shape({}) +}; +Form.defaultProps = { + stepFormData: {} +}; + +var MegaFlowIcons = { + faDownload: faDownload, + faHashtag: faHashtag, + faTrash: faTrash +}; + +var MegaFlowPropTypes = { + defaultValues: PropTypes.shape({}), + icons: PropTypes.arrayOf(PropTypes.shape()), + schema: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired, + onFinish: PropTypes.func, + onStepSubmit: PropTypes.func, + renderActionButtons: PropTypes.func, + theme: PropTypes.shape(), + watcher: PropTypes.func, + watchList: PropTypes.arrayOf(PropTypes.string), + wizardProps: PropTypes.shape(), + wrapperProps: PropTypes.shape() +}; +var MegaFlowDefaultProps = { + defaultValues: {}, + icons: [], + onFinish: function onFinish() {}, + renderActionButtons: function renderActionButtons() {}, + watchList: [] +}; + +var _excluded = ["defaultValues", "icons", "schema", "onFinish", "onStepSubmit", "renderActionButtons", "theme", "watcher", "livePreview", "wizardProps", "wrapperProps"], + _excluded2 = ["formState", "getValues", "handleSubmit"]; +var Wrapper = styled.div.withConfig({ + displayName: "src__Wrapper", + componentId: "sc-osiobx-0" +})(["background-color:", ";"], function (_ref) { + var theme = _ref.theme; + return theme.palette.gray.light; +}); + +var getOutputData = function getOutputData(output) { + return Object.values(output).reduce(function (obj, acc) { + return _extends({}, obj, acc); + }, {}); +}; + +var getHiddenValues = function getHiddenValues(array, key) { + var initialValue = {}; + return array.reduce(function (obj, item) { + var _extends2; + + return _extends({}, obj, (_extends2 = {}, _extends2[item["name"]] = item == null ? void 0 : item.value, _extends2)); + }, initialValue); +}; + +var MegaFlow = function MegaFlow(_ref2) { + var defaultValues = _ref2.defaultValues, + icons = _ref2.icons, + schema = _ref2.schema, + onFinish = _ref2.onFinish, + onStepSubmit = _ref2.onStepSubmit, + _renderActionButtons = _ref2.renderActionButtons, + theme = _ref2.theme, + watcher = _ref2.watcher, + livePreview = _ref2.livePreview, + wizardProps = _ref2.wizardProps, + wrapperProps = _ref2.wrapperProps, + props = _objectWithoutPropertiesLoose(_ref2, _excluded); + + // Parse if schema was type of JSON string + var parsedSchema = typeof schema === "string" ? JSON.parse(schema) : schema; + var steps = parsedSchema.steps, + hiddenValues = parsedSchema.hiddenValues; + + var _useState = useState(0), + currentStep = _useState[0], + setCurrentStep = _useState[1]; + + var isCurrentLastStep = currentStep === steps.length - 1; + + var _useState2 = useState({}), + wizardData = _useState2[0], + setWizardData = _useState2[1]; + + var _useState3 = useState({}), + hiddenData = _useState3[0], + setHiddenData = _useState3[1]; + + var _useForm = useForm(); + _useForm.formState; + var getValues = _useForm.getValues, + handleSubmit = _useForm.handleSubmit, + methods = _objectWithoutPropertiesLoose(_useForm, _excluded2); + + var stepFormData = wizardData[currentStep] || defaultValues; + useEffect(function () { + methods.reset(stepFormData); // set hidden values to include in output, without displaying + + if (hiddenValues && currentStep === 0) { + setHiddenData(getHiddenValues(hiddenValues)); + } + + if (watcher) { + watcher(getOutputData(wizardData)); + } + }, [currentStep]); + + var onSubmit = function onSubmit(data) { + var _extends3; + + var currentState = _extends({ + hiddenData: hiddenData + }, wizardData, (_extends3 = {}, _extends3[currentStep] = data, _extends3)); // Set step data in global wizard object + + + setWizardData(currentState); // Send step data to props + + if (onStepSubmit) onStepSubmit(data); + + if (!isCurrentLastStep) { + setCurrentStep(function (prev) { + return prev + 1; + }); + } else { + onFinish(getOutputData(currentState)); + } + }; + + var stepsArray = steps.map(function (st) { + return { + title: st.title + }; + }); + + var renderForm = function renderForm() { + return /*#__PURE__*/React.createElement(Form, { + data: steps[currentStep], + key: currentStep, + stepIndex: currentStep, + stepFormData: stepFormData, + defaultValues: defaultValues, + merchandise: props.merchandise + }); + }; + + return /*#__PURE__*/React.createElement(AppContainer, { + icons: _extends({}, RocksKitIcons, MegaFlowIcons, icons), + theme: theme || RocksKitTheme() + }, /*#__PURE__*/React.createElement(Wrapper, wrapperProps, /*#__PURE__*/React.createElement("form", { + onBlur: function onBlur(event) { + event.preventDefault(); + var values = getValues(); + var data = Object.assign(values, hiddenData); + + if (livePreview) { + livePreview(data); + } + }, + onSubmit: handleSubmit(onSubmit) + }, /*#__PURE__*/React.createElement(FormProvider, methods, /*#__PURE__*/React.createElement(Wizard, _extends({ + currentStepContent: renderForm(), + currentStepIndex: currentStep, + renderActionButtons: function renderActionButtons() { + return _renderActionButtons(getOutputData(wizardData)); + }, + setCurrentStepIndex: setCurrentStep, + steps: stepsArray, + backgroundStyle: "primary" + }, wizardProps, props)))))); +}; + +MegaFlow.propTypes = MegaFlowPropTypes; +MegaFlow.defaultProps = MegaFlowDefaultProps; + +export { MegaFlow as default }; +//# sourceMappingURL=mega-flow.es.js.map diff --git a/dist/mega-flow.es.js.map b/dist/mega-flow.es.js.map new file mode 100644 index 0000000..78f6058 --- /dev/null +++ b/dist/mega-flow.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mega-flow.es.js","sources":["../src/components/Form/Field.js","../src/helpers/conditions.js","../src/components/Form/FormRows.js","../src/components/Form/Form.js","../src/theme/icons.js","../src/props.js","../src/index.js"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport {\n BorderedRadio,\n Checkbox,\n FormDatepicker,\n FilePond,\n FileUpload,\n Input,\n PriceField,\n Radio,\n ReactSelect,\n Select,\n Stepper,\n TextArea,\n TextButton,\n ToggleSwitch,\n H6,\n Image,\n Icon,\n Text,\n Modal,\n ItemSelect,\n} from \"@licenserocks/kit\";\nimport styled, { css } from \"styled-components\";\nimport Masonry from \"react-masonry-css\";\n\nconst mapFieldTypeToComponent = (fieldType) => {\n switch (fieldType) {\n case \"datepicker\":\n return FormDatepicker;\n case \"select\":\n return Select;\n case \"borderedRadio\":\n return BorderedRadio;\n case \"checkbox\":\n return Checkbox;\n case \"radio\":\n return Radio;\n case \"toggleSwitch\":\n return ToggleSwitch;\n case \"fileUpload\":\n return FileUpload;\n case \"filePond\":\n return FilePond;\n case \"price\":\n return PriceField;\n case \"reactSelect\":\n return ReactSelect;\n case \"stepper\":\n return Stepper;\n case \"textArea\":\n return TextArea;\n case \"itemSelect\":\n return ItemSelect;\n default:\n return Input;\n }\n};\n\nexport const FormField = ({\n data,\n field,\n hasError,\n isRecurring,\n recurringIndex,\n stepIndex,\n fieldId,\n rowId,\n stepData,\n merchandise,\n}) => {\n const { control, setValue, register, watch } = useFormContext();\n const { conditions, defaultValue, name, required, type, options, ...others } =\n field;\n\n if (type === \"link\") return ;\n\n const Field = mapFieldTypeToComponent(type);\n const fieldKey = `step-${stepIndex}-row-${rowId}-field-${fieldId}`;\n const fieldName = isRecurring\n ? `${data.name}[${recurringIndex}].${name}`\n : name;\n\n const prevValue =\n isRecurring && stepData[data.name] && stepData[data.name][recurringIndex]\n ? stepData[data.name][recurringIndex][name]\n : stepData[name];\n\n if (field?.currencies !== undefined) {\n field.currencies = stepData?.currencies;\n }\n\n return (\n \n );\n};\n\nFormField.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string,\n recurring: PropTypes.bool,\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n field: PropTypes.shape({\n conditions: PropTypes.arrayOf(PropTypes.string),\n defaultValue: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n name: PropTypes.string,\n required: PropTypes.string,\n type: PropTypes.string,\n }).isRequired,\n fieldId: PropTypes.number.isRequired,\n hasError: PropTypes.bool.isRequired,\n isRecurring: PropTypes.bool.isRequired,\n recurringIndex: PropTypes.number,\n stepIndex: PropTypes.number.isRequired,\n stepData: PropTypes.shape({}).isRequired,\n rowId: PropTypes.number.isRequired,\n};\n\nFormField.defaultProps = {\n recurringIndex: null,\n};\n","const getConditionValues = (\n conditions,\n watch,\n wizardData,\n isRecurring,\n recurringName\n) => {\n const name = conditions.map((c) => {\n if (c.includes(\":\")) {\n const [n] = c.split(\":\");\n return n;\n }\n return c;\n });\n\n return watch(isRecurring ? [recurringName] : name, wizardData);\n};\n\nexport const checkCondition = (\n conditions,\n watch,\n wizardData,\n isRecurring,\n recurringName,\n recurringIndex\n) => {\n const hasConditions = conditions && conditions.length > 0;\n if (hasConditions) {\n const conditionValues = getConditionValues(\n conditions,\n watch,\n wizardData,\n isRecurring,\n recurringName\n );\n\n const target = isRecurring\n ? conditionValues?.[recurringName]?.[recurringIndex]\n : conditionValues;\n\n if (conditionValues && target) {\n return conditions.some((c) => {\n if (c.includes(\":\")) {\n const [name, value, not] = c.split(\":\");\n const isTrue =\n target[name] === value ||\n (Array.isArray(value) && target[name]?.includes(value)) ||\n (value === \"true\" && Boolean(target[name]));\n\n if (not) return !isTrue;\n return isTrue;\n }\n return target[c]?.length > 0 || !!target[c];\n });\n }\n }\n return true;\n};\n","import React, { Fragment, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled, { css } from \"styled-components\";\nimport { useFormContext } from \"react-hook-form\";\nimport {\n Alert,\n Divider,\n FormRow,\n H4,\n Icon,\n OutlineButton,\n Tooltip,\n} from \"@licenserocks/kit\";\n\nimport { FormField } from \"./Field\";\nimport { checkCondition } from \"../../helpers\";\n\nconst StyledRow = styled(FormRow)`\n && {\n label {\n :only-child {\n display: none;\n }\n }\n }\n\n background-color: ${({ theme }) => theme.palette.gray.light};\n && {\n ${({ backgroundStyle }) =>\n backgroundStyle === \"primary\" &&\n css`\n background-color: ${({ theme }) => theme.palette.common.white};\n `}\n }\n`;\n\nconst StyledDivider = styled(Divider)`\n && {\n ${({ backgroundStyle }) =>\n backgroundStyle === \"primary\" &&\n css`\n background-color: ${({ theme }) => theme.palette.common.white};\n `}\n }\n`;\n\nconst Hint = styled.span`\n background: #f0f0f4;\n border-radius: 100%;\n width: 20px;\n height: 20px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n margin-left: 8px;\n vertical-align: middle;\n\n svg {\n color: #8685a6;\n font-size: 10px;\n }\n`;\n\nexport const FormRows = ({\n data,\n index,\n isRecurring,\n rows,\n stepIndex,\n stepData,\n merchandise,\n}) => {\n const { errors, watch } = useFormContext();\n const [expanded, setExpanded] = useState(false);\n const showExpandButton = rows?.some((row) => row.expandable);\n\n return (\n <>\n {rows?.map((row, idx) => {\n const rowKey = `step-${stepIndex}-row-${idx}`;\n const rowErrors = [];\n const rowConditions = checkCondition(\n row.conditions,\n watch,\n stepData,\n isRecurring,\n data.name,\n index\n );\n if (!rowConditions) return null;\n\n if (row?.heading)\n return

;\n\n const showRow = row.expandable ? expanded : true;\n const label = [...(row.label || [])];\n if (row.hint)\n label.push(\n \n \n \n \n \n );\n\n return (\n \n 0 ? label : null}\n labelAlign={row.labelAlign}\n labelGutter={row.labelGutter}\n mb={0}\n pb={row?.marginBottom ?? 4}\n pt={4}\n px={16}\n show={showRow}\n backgroundStyle={row?.backgroundStyle}\n >\n {row.message && (\n \n )}\n\n {row.fields?.map((field, fieldId) => {\n const error =\n isRecurring && errors[data.name] && errors[data.name][index]\n ? errors[data.name][index][field.name]?.message\n : errors[field.name]?.message;\n\n if (error) rowErrors.push(error);\n\n const showIfHasCondition = checkCondition(\n field.conditions,\n watch,\n stepData,\n isRecurring,\n data.name,\n index\n );\n if (!showIfHasCondition) return null;\n\n return (\n \n );\n })}\n \n\n {row?.divider && (\n \n )}\n \n );\n })}\n\n {showExpandButton && (\n setExpanded((prev) => !prev)}\n size=\"sm\"\n >\n {expanded ? \"Hide Optional Params\" : \"Show Optional Params\"}\n \n )}\n \n );\n};\n\nFormRows.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string,\n recurring: PropTypes.bool,\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n stepIndex: PropTypes.number.isRequired,\n stepData: PropTypes.shape({}).isRequired,\n index: PropTypes.number.isRequired,\n isRecurring: PropTypes.bool.isRequired,\n rows: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n};\n\nFormRows.defaultProps = {};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled, { css } from \"styled-components\";\nimport { useFieldArray } from \"react-hook-form\";\nimport { Alert, Icon, OutlineButton, TextButton } from \"@licenserocks/kit\";\n\nimport { FormRows } from \"./FormRows\";\n\nconst Wrapper = styled.div`\n padding: ${({ theme }) => theme.spacing(2, 2, 2, 6)};\n background-color: ${({ theme }) => theme.palette.gray.light};\n border: 1px solid ${({ theme }) => theme.palette.gray.regular};\n border-radius: 16px;\n margin: ${({ theme }) => theme.spacing(5)};\n\n && {\n ${({ disabled }) =>\n disabled &&\n css`\n opacity: 0.5;\n cursor: not-allowed !important;\n pointer-events: none;\n `}\n }\n`;\n\nconst ButtonsWrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n margin-bottom: 8px;\n`;\n\nconst Form = ({\n data,\n defaultValues,\n stepIndex,\n stepFormData,\n merchandise,\n}) => {\n const isRecurring = data.recurring;\n\n const { fields, append, remove } = useFieldArray({\n name: isRecurring ? data?.name : \"\",\n });\n\n const renderRows = (index) => (\n \n );\n\n const renderRecurring = () => (\n <>\n {fields.map((item, idx) => {\n const disabled = defaultValues?.[data.name]?.[idx]?.disabled;\n return (\n \n \n {disabled && (\n \n )}\n\n remove(idx)}\n size=\"sm\"\n >\n \n \n \n\n {renderRows(idx)}\n \n );\n })}\n\n \n \n );\n\n return isRecurring ? renderRecurring() : renderRows();\n};\n\nForm.propTypes = {\n data: PropTypes.shape({\n name: PropTypes.string,\n recurring: PropTypes.bool,\n rows: PropTypes.arrayOf(PropTypes.shape({})),\n }).isRequired,\n stepIndex: PropTypes.number.isRequired,\n stepFormData: PropTypes.shape({}),\n};\n\nForm.defaultProps = {\n stepFormData: {},\n};\n\nexport default Form;\n","import {\n faDownload,\n faHashtag,\n faTrash,\n} from \"@fortawesome/free-solid-svg-icons\";\n\nexport const MegaFlowIcons = {\n faDownload,\n faHashtag,\n faTrash,\n};\n","import PropTypes from \"prop-types\";\n\nexport const MegaFlowPropTypes = {\n defaultValues: PropTypes.shape({}),\n icons: PropTypes.arrayOf(PropTypes.shape()),\n schema: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired,\n onFinish: PropTypes.func,\n onStepSubmit: PropTypes.func,\n renderActionButtons: PropTypes.func,\n theme: PropTypes.shape(),\n watcher: PropTypes.func,\n watchList: PropTypes.arrayOf(PropTypes.string),\n wizardProps: PropTypes.shape(),\n wrapperProps: PropTypes.shape(),\n};\n\nexport const MegaFlowDefaultProps = {\n defaultValues: {},\n icons: [],\n onFinish: () => { },\n renderActionButtons: () => { },\n watchList: [],\n};\n","import React, { useEffect, useState } from \"react\";\nimport styled from \"styled-components\";\nimport {\n AppContainer,\n RocksKitIcons,\n RocksKitTheme,\n Wizard,\n} from \"@licenserocks/kit\";\nimport { FormProvider, useForm } from \"react-hook-form\";\n\nimport { Form } from \"./components\";\nimport { MegaFlowIcons } from \"./theme\";\nimport { MegaFlowPropTypes, MegaFlowDefaultProps } from \"./props\";\n\nconst Wrapper = styled.div`\n background-color: ${({ theme }) => theme.palette.gray.light};\n`;\n\nconst getOutputData = (output) =>\n Object.values(output).reduce((obj, acc) => ({ ...obj, ...acc }), {});\n\nconst getHiddenValues = (array, key) => {\n const initialValue = {};\n return array.reduce((obj, item) => {\n return {\n ...obj,\n [item[\"name\"]]: item?.value,\n };\n }, initialValue);\n};\n\nconst MegaFlow = ({\n defaultValues,\n icons,\n schema,\n onFinish,\n onStepSubmit,\n renderActionButtons,\n theme,\n watcher,\n livePreview,\n wizardProps,\n wrapperProps,\n ...props\n}) => {\n // Parse if schema was type of JSON string\n const parsedSchema = typeof schema === \"string\" ? JSON.parse(schema) : schema;\n\n const { steps, hiddenValues } = parsedSchema;\n const [currentStep, setCurrentStep] = useState(0);\n const isCurrentLastStep = currentStep === steps.length - 1;\n const [wizardData, setWizardData] = useState({});\n const [hiddenData, setHiddenData] = useState({});\n const { formState, getValues, handleSubmit, ...methods } = useForm();\n\n const stepFormData = wizardData[currentStep] || defaultValues;\n useEffect(() => {\n methods.reset(stepFormData);\n // set hidden values to include in output, without displaying\n if (hiddenValues && currentStep === 0) {\n setHiddenData(getHiddenValues(hiddenValues));\n }\n if (watcher) {\n watcher(getOutputData(wizardData));\n }\n }, [currentStep]);\n\n const onSubmit = (data) => {\n const currentState = {\n hiddenData,\n ...wizardData,\n [currentStep]: data,\n };\n\n // Set step data in global wizard object\n setWizardData(currentState);\n\n // Send step data to props\n if (onStepSubmit) onStepSubmit(data);\n\n if (!isCurrentLastStep) {\n setCurrentStep((prev) => prev + 1);\n } else {\n onFinish(getOutputData(currentState));\n }\n };\n\n const stepsArray = steps.map((st) => ({\n title: st.title,\n }));\n\n const renderForm = () => (\n \n );\n\n return (\n \n \n {\n event.preventDefault();\n const values = getValues();\n\n const data = Object.assign(values, hiddenData);\n if (livePreview) {\n livePreview(data);\n }\n }}\n onSubmit={handleSubmit(onSubmit)}\n >\n \n \n renderActionButtons(getOutputData(wizardData))\n }\n setCurrentStepIndex={setCurrentStep}\n steps={stepsArray}\n backgroundStyle=\"primary\"\n {...wizardProps}\n {...props}\n />\n \n \n \n \n );\n};\n\nMegaFlow.propTypes = MegaFlowPropTypes;\n\nMegaFlow.defaultProps = MegaFlowDefaultProps;\n\nexport default MegaFlow;\n"],"names":["mapFieldTypeToComponent","fieldType","FormDatepicker","Select","BorderedRadio","Checkbox","Radio","ToggleSwitch","FileUpload","FilePond","PriceField","ReactSelect","Stepper","TextArea","ItemSelect","Input","FormField","data","field","hasError","isRecurring","recurringIndex","stepIndex","fieldId","rowId","stepData","merchandise","useFormContext","control","setValue","register","watch","conditions","defaultValue","name","required","type","options","others","_excluded","Field","fieldKey","fieldName","prevValue","currencies","undefined","propTypes","PropTypes","shape","string","recurring","bool","rows","arrayOf","isRequired","oneOfType","object","number","defaultProps","getConditionValues","wizardData","recurringName","map","c","includes","split","n","checkCondition","hasConditions","length","conditionValues","target","some","value","not","isTrue","Array","isArray","Boolean","StyledRow","styled","FormRow","theme","palette","gray","light","backgroundStyle","css","common","white","StyledDivider","Divider","Hint","span","FormRows","index","errors","useState","expanded","setExpanded","showExpandButton","row","expandable","idx","rowKey","rowErrors","rowConditions","heading","showRow","label","hint","push","fontStyle","labelAlign","labelGutter","marginBottom","message","messageColor","fields","error","showIfHasCondition","divider","dividerSize","prev","Wrapper","div","spacing","regular","disabled","ButtonsWrapper","Form","defaultValues","stepFormData","useFieldArray","append","remove","renderRows","renderRecurring","item","id","MegaFlowIcons","faDownload","faHashtag","faTrash","MegaFlowPropTypes","icons","schema","onFinish","func","onStepSubmit","renderActionButtons","watcher","watchList","wizardProps","wrapperProps","MegaFlowDefaultProps","getOutputData","output","Object","values","reduce","obj","acc","getHiddenValues","array","key","initialValue","MegaFlow","livePreview","props","parsedSchema","JSON","parse","steps","hiddenValues","currentStep","setCurrentStep","isCurrentLastStep","setWizardData","hiddenData","setHiddenData","useForm","formState","getValues","handleSubmit","methods","useEffect","reset","onSubmit","currentState","stepsArray","st","title","renderForm","RocksKitIcons","RocksKitTheme","event","preventDefault","assign"],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 18d6c2a..28256f6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@licenserocks/mega-flow", - "version": "2.8.0", + "version": "2.8.1", "description": "", "main": "dist/mega-flow.common.js", "module": "dist/mega-flow.es.js", @@ -21,7 +21,7 @@ "@fortawesome/pro-regular-svg-icons": "^6.1.1", "@fortawesome/pro-solid-svg-icons": "^6.1.1", "@fortawesome/pro-thin-svg-icons": "^6.1.1", - "@licenserocks/kit": "^3.6.3", + "@licenserocks/kit": "^3.6.4", "react-hook-form": "^6.15.5", "react-masonry-css": "^1.0.16", "styled-components": "^5.2.1" diff --git a/src/components/Form/Field.js b/src/components/Form/Field.js index 87cae8d..2dce2ef 100644 --- a/src/components/Form/Field.js +++ b/src/components/Form/Field.js @@ -71,16 +71,9 @@ export const FormField = ({ stepData, merchandise, }) => { - const { control, setValue, register } = useFormContext(); - const { - conditions, - defaultValue, - name, - required, - type, - options, - ...others - } = field; + const { control, setValue, register, watch } = useFormContext(); + const { conditions, defaultValue, name, required, type, options, ...others } = + field; if (type === "link") return ; @@ -113,6 +106,7 @@ export const FormField = ({ setValue={setValue} options={options} type={type} + value={watch(fieldName)} {...others} /> ); diff --git a/yarn.lock b/yarn.lock index 3e6d64e..32774bf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1111,9 +1111,9 @@ regenerator-runtime "^0.13.4" "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.4", "@babel/runtime@^7.16.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.3": - version "7.20.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.6.tgz#facf4879bfed9b5326326273a64220f099b0fce3" - integrity sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA== + version "7.20.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.7.tgz#fcb41a5a70550e04a7b708037c7c32f7f356d8fd" + integrity sha512-UF0tvkUtxwAgZ5W/KrkHf0Rn0fdnLDU9ScxBrEVNUprE/MzirjK4MJUX1/BVDv00Sv8cljtukVK1aky++X1SjQ== dependencies: regenerator-runtime "^0.13.11" @@ -1430,10 +1430,10 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@licenserocks/kit@^3.6.3": - version "3.6.3" - resolved "https://registry.yarnpkg.com/@licenserocks/kit/-/kit-3.6.3.tgz#9e0687da231daa7cb2bf7d65e5cc8225b89af363" - integrity sha512-elVJ5l/CEUd8A4FmmZvaUx8EB+4RZT3rQT9ospFwOgnXegvyyu3Lgt4Ojw+3KD98oZ0ueB/6JlxjZDUjixcj2Q== +"@licenserocks/kit@^3.6.4": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@licenserocks/kit/-/kit-3.6.4.tgz#22d7df37ea08ab82dd38698ace9530600ca46e4e" + integrity sha512-0FZOxLVlfyC/lS5rsjmwjxxD0FyKb8iFYyziPjvUFfzFjPWDBNI7krkci/pklkbv+21zlu57QVhUSDCt0v6m0w== dependencies: "@fortawesome/fontawesome-svg-core" "^1.2.32" "@fortawesome/free-brands-svg-icons" "^5.15.1" @@ -3981,9 +3981,9 @@ caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001370: integrity sha512-N/od11RX+Gsk+1qY/jbPa0R6zJupEa0lxeBG598EbrtblxVCTJsQwbRBm6+V+rxpc5lHKdsXb9RY83cZIPLseA== caniuse-lite@^1.0.30001400: - version "1.0.30001439" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz#ab7371faeb4adff4b74dad1718a6fd122e45d9cb" - integrity sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A== + version "1.0.30001441" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz#987437b266260b640a23cd18fbddb509d7f69f3e" + integrity sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg== case-sensitive-paths-webpack-plugin@^2.3.0: version "2.4.0"