merchi_product_form
Version:
A React component for Merchi product forms
81 lines • 12.7 kB
JavaScript
import * as React from 'react';
import { isProductSupplierMOD } from './utils';
import { ButtonAddGroup, ButtonRemoveGroup } from './buttons';
import { LabelGroupCost } from './cost';
import GroupInventory from './GroupInventory';
import InputGroupQuantity from './InputGroupQuantity';
import InputHiddenStatic from './InputHiddenStatic';
import Variations from './Variations';
import { useFieldArray } from 'react-hook-form';
import { useMerchiFormContext } from '../context/MerchiProductFormProvider';
import { jsx as _jsx } from "react/jsx-runtime";
import { jsxs as _jsxs } from "react/jsx-runtime";
import { Fragment as _Fragment } from "react/jsx-runtime";
function VariationsGroups(_ref) {
var disabled = _ref.disabled,
_ref$name = _ref.name,
name = _ref$name === void 0 ? 'variationsGroups' : _ref$name,
renderBetweenGroups = _ref.renderBetweenGroups;
var _useMerchiFormContext = useMerchiFormContext(),
classNameGroupsContainer = _useMerchiFormContext.classNameGroupsContainer,
control = _useMerchiFormContext.control,
hideQuantityField = _useMerchiFormContext.hideQuantityField,
hideCalculatedPrice = _useMerchiFormContext.hideCalculatedPrice,
job = _useMerchiFormContext.job,
product = _useMerchiFormContext.product;
var _useFieldArray = useFieldArray({
control: control,
keyName: 'groupId',
name: name
}),
append = _useFieldArray.append,
fields = _useFieldArray.fields,
_remove = _useFieldArray.remove;
var isResellMOD = isProductSupplierMOD(product);
var groupCount = fields.length;
return /*#__PURE__*/_jsx(_Fragment, {
children: fields.map(function (group, index) {
var count = index + 1;
var variationGroup = job.variationsGroups[index];
return /*#__PURE__*/_jsxs(React.Fragment, {
children: [/*#__PURE__*/_jsxs("fieldset", {
className: classNameGroupsContainer,
name: "".concat(name, "[").concat(index, "]"),
children: [isResellMOD || hideQuantityField ? /*#__PURE__*/_jsx(InputHiddenStatic, {
name: "".concat(name, "[").concat(index, "].quantity"),
value: 1
}) : /*#__PURE__*/_jsx(InputGroupQuantity, {
count: count,
disabled: disabled,
name: "".concat(name, "[").concat(index, "].quantity")
}), /*#__PURE__*/_jsx(Variations, {
containerClass: "merchi-embed-form_product-group-variation-container",
disabled: disabled,
name: "".concat(name, "[").concat(index, "].variations")
}), product.needsInventory && variationGroup && /*#__PURE__*/_jsx(GroupInventory, {
group: job.variationsGroups[index]
}), /*#__PURE__*/_jsxs("div", {
className: "merchi-embed-form_product-group-actions-cost-container",
children: [!hideCalculatedPrice && variationGroup && /*#__PURE__*/_jsx(LabelGroupCost, {
group: variationGroup
}), /*#__PURE__*/_jsx("div", {
className: "merchi-embed-form_product-group-actions-container",
children: groupCount > 1 && /*#__PURE__*/_jsx(ButtonRemoveGroup, {
count: count,
disabled: disabled,
remove: function remove() {
return _remove(index);
}
})
})]
}), groupCount === count && /*#__PURE__*/_jsx(ButtonAddGroup, {
addGroup: append,
disabled: disabled
})]
}), renderBetweenGroups && renderBetweenGroups(index)]
}, group.groupId);
})
});
}
export default VariationsGroups;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImlzUHJvZHVjdFN1cHBsaWVyTU9EIiwiQnV0dG9uQWRkR3JvdXAiLCJCdXR0b25SZW1vdmVHcm91cCIsIkxhYmVsR3JvdXBDb3N0IiwiR3JvdXBJbnZlbnRvcnkiLCJJbnB1dEdyb3VwUXVhbnRpdHkiLCJJbnB1dEhpZGRlblN0YXRpYyIsIlZhcmlhdGlvbnMiLCJ1c2VGaWVsZEFycmF5IiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJWYXJpYXRpb25zR3JvdXBzIiwiX3JlZiIsImRpc2FibGVkIiwiX3JlZiRuYW1lIiwibmFtZSIsInJlbmRlckJldHdlZW5Hcm91cHMiLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjbGFzc05hbWVHcm91cHNDb250YWluZXIiLCJjb250cm9sIiwiaGlkZVF1YW50aXR5RmllbGQiLCJoaWRlQ2FsY3VsYXRlZFByaWNlIiwiam9iIiwicHJvZHVjdCIsIl91c2VGaWVsZEFycmF5Iiwia2V5TmFtZSIsImFwcGVuZCIsImZpZWxkcyIsInJlbW92ZSIsImlzUmVzZWxsTU9EIiwiZ3JvdXBDb3VudCIsImxlbmd0aCIsImNoaWxkcmVuIiwibWFwIiwiZ3JvdXAiLCJpbmRleCIsImNvdW50IiwidmFyaWF0aW9uR3JvdXAiLCJ2YXJpYXRpb25zR3JvdXBzIiwiY2xhc3NOYW1lIiwiY29uY2F0IiwidmFsdWUiLCJjb250YWluZXJDbGFzcyIsIm5lZWRzSW52ZW50b3J5IiwiYWRkR3JvdXAiLCJncm91cElkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvVmFyaWF0aW9uc0dyb3Vwcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgaXNQcm9kdWN0U3VwcGxpZXJNT0QgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEJ1dHRvbkFkZEdyb3VwLCBCdXR0b25SZW1vdmVHcm91cCB9IGZyb20gJy4vYnV0dG9ucyc7XG5pbXBvcnQgeyBMYWJlbEdyb3VwQ29zdCB9IGZyb20gJy4vY29zdCc7XG5pbXBvcnQgR3JvdXBJbnZlbnRvcnkgZnJvbSAnLi9Hcm91cEludmVudG9yeSc7XG5pbXBvcnQgSW5wdXRHcm91cFF1YW50aXR5IGZyb20gJy4vSW5wdXRHcm91cFF1YW50aXR5JztcbmltcG9ydCBJbnB1dEhpZGRlblN0YXRpYyBmcm9tICcuL0lucHV0SGlkZGVuU3RhdGljJztcbmltcG9ydCBWYXJpYXRpb25zIGZyb20gJy4vVmFyaWF0aW9ucyc7XG5pbXBvcnQgeyB1c2VGaWVsZEFycmF5IH0gZnJvbSAncmVhY3QtaG9vay1mb3JtJztcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBuYW1lPzogc3RyaW5nO1xuICByZW5kZXJCZXR3ZWVuR3JvdXBzPzogKGluZGV4OiBudW1iZXIpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbn1cblxuZnVuY3Rpb24gVmFyaWF0aW9uc0dyb3Vwcyh7IGRpc2FibGVkLCBuYW1lID0gJ3ZhcmlhdGlvbnNHcm91cHMnLCByZW5kZXJCZXR3ZWVuR3JvdXBzIH06IFByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICBjbGFzc05hbWVHcm91cHNDb250YWluZXIsXG4gICAgY29udHJvbCxcbiAgICBoaWRlUXVhbnRpdHlGaWVsZCxcbiAgICBoaWRlQ2FsY3VsYXRlZFByaWNlLFxuICAgIGpvYixcbiAgICBwcm9kdWN0LFxuICB9ID0gdXNlTWVyY2hpRm9ybUNvbnRleHQoKTtcbiAgY29uc3QgeyBhcHBlbmQsIGZpZWxkcywgcmVtb3ZlIH0gPSB1c2VGaWVsZEFycmF5KHtcbiAgICBjb250cm9sLFxuICAgIGtleU5hbWU6ICdncm91cElkJyxcbiAgICBuYW1lLFxuICB9KTtcbiAgY29uc3QgaXNSZXNlbGxNT0QgPSBpc1Byb2R1Y3RTdXBwbGllck1PRChwcm9kdWN0KTtcbiAgY29uc3QgZ3JvdXBDb3VudCA9IGZpZWxkcy5sZW5ndGg7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHtmaWVsZHMubWFwKChncm91cDogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gaW5kZXggKyAxO1xuICAgICAgICBjb25zdCB2YXJpYXRpb25Hcm91cCA9IGpvYi52YXJpYXRpb25zR3JvdXBzW2luZGV4XTtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtncm91cC5ncm91cElkfT5cbiAgICAgICAgICAgIDxmaWVsZHNldFxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZUdyb3Vwc0NvbnRhaW5lcn1cbiAgICAgICAgICAgICAgbmFtZT17YCR7bmFtZX1bJHtpbmRleH1dYH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2lzUmVzZWxsTU9EIHx8IGhpZGVRdWFudGl0eUZpZWxkID8gKFxuICAgICAgICAgICAgICAgIDxJbnB1dEhpZGRlblN0YXRpY1xuICAgICAgICAgICAgICAgICAgbmFtZT17YCR7bmFtZX1bJHtpbmRleH1dLnF1YW50aXR5YH1cbiAgICAgICAgICAgICAgICAgIHZhbHVlPXsxfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPElucHV0R3JvdXBRdWFudGl0eVxuICAgICAgICAgICAgICAgICAgY291bnQ9e2NvdW50fVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgbmFtZT17YCR7bmFtZX1bJHtpbmRleH1dLnF1YW50aXR5YH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8VmFyaWF0aW9uc1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPSdtZXJjaGktZW1iZWQtZm9ybV9wcm9kdWN0LWdyb3VwLXZhcmlhdGlvbi1jb250YWluZXInXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgIG5hbWU9e2Ake25hbWV9WyR7aW5kZXh9XS52YXJpYXRpb25zYH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAge3Byb2R1Y3QubmVlZHNJbnZlbnRvcnkgJiYgdmFyaWF0aW9uR3JvdXAgJiYgKFxuICAgICAgICAgICAgICAgIDxHcm91cEludmVudG9yeSBncm91cD17am9iLnZhcmlhdGlvbnNHcm91cHNbaW5kZXhdfSAvPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWVtYmVkLWZvcm1fcHJvZHVjdC1ncm91cC1hY3Rpb25zLWNvc3QtY29udGFpbmVyJz5cbiAgICAgICAgICAgICAgICB7IWhpZGVDYWxjdWxhdGVkUHJpY2UgJiYgdmFyaWF0aW9uR3JvdXAgJiYgKFxuICAgICAgICAgICAgICAgICAgPExhYmVsR3JvdXBDb3N0IGdyb3VwPXt2YXJpYXRpb25Hcm91cH0gLz5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktZW1iZWQtZm9ybV9wcm9kdWN0LWdyb3VwLWFjdGlvbnMtY29udGFpbmVyJz5cbiAgICAgICAgICAgICAgICAgIHtncm91cENvdW50ID4gMSAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25SZW1vdmVHcm91cFxuICAgICAgICAgICAgICAgICAgICAgIGNvdW50PXtjb3VudH1cbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlPXsoKSA9PiByZW1vdmUoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIHtncm91cENvdW50ID09PSBjb3VudCAmJiAoXG4gICAgICAgICAgICAgICAgPEJ1dHRvbkFkZEdyb3VwIGFkZEdyb3VwPXthcHBlbmR9IGRpc2FibGVkPXtkaXNhYmxlZH0gLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICAgICAgICB7cmVuZGVyQmV0d2Vlbkdyb3VwcyAmJiByZW5kZXJCZXR3ZWVuR3JvdXBzKGluZGV4KX1cbiAgICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZhcmlhdGlvbnNHcm91cHM7XG4iXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBS0EsS0FBSyxNQUFNLE9BQU87QUFDOUIsU0FBU0Msb0JBQW9CLFFBQVEsU0FBUztBQUM5QyxTQUFTQyxjQUFjLEVBQUVDLGlCQUFpQixRQUFRLFdBQVc7QUFDN0QsU0FBU0MsY0FBYyxRQUFRLFFBQVE7QUFDdkMsT0FBT0MsY0FBYyxNQUFNLGtCQUFrQjtBQUM3QyxPQUFPQyxrQkFBa0IsTUFBTSxzQkFBc0I7QUFDckQsT0FBT0MsaUJBQWlCLE1BQU0scUJBQXFCO0FBQ25ELE9BQU9DLFVBQVUsTUFBTSxjQUFjO0FBQ3JDLFNBQVNDLGFBQWEsUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0Msb0JBQW9CLFFBQVEsc0NBQXNDO0FBQUMsU0FBQUMsR0FBQSxJQUFBQyxJQUFBO0FBQUEsU0FBQUMsSUFBQSxJQUFBQyxLQUFBO0FBQUEsU0FBQUMsUUFBQSxJQUFBQyxTQUFBO0FBUTVFLFNBQVNDLGdCQUFnQkEsQ0FBQUMsSUFBQSxFQUFzRTtFQUFBLElBQW5FQyxRQUFRLEdBQUFELElBQUEsQ0FBUkMsUUFBUTtJQUFBQyxTQUFBLEdBQUFGLElBQUEs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