@bigbinary/neeto-molecules 3.16.1 → 3.16.2-beta-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CardLayout.js +3 -3
- package/dist/CardLayout.js.map +1 -1
- package/dist/Container.js +1 -1
- package/dist/CopyToClipboardButton.js +3 -2
- package/dist/CopyToClipboardButton.js.map +1 -1
- package/dist/OptionFields.js +1 -1
- package/dist/OptionFields.js.map +1 -1
- package/dist/ProductEmbed.js +985 -302
- package/dist/ProductEmbed.js.map +1 -1
- package/dist/ShareViaLink.js +429 -183
- package/dist/ShareViaLink.js.map +1 -1
- package/dist/cjs/CardLayout.js +3 -3
- package/dist/cjs/CardLayout.js.map +1 -1
- package/dist/cjs/Container.js +1 -1
- package/dist/cjs/CopyToClipboardButton.js +3 -2
- package/dist/cjs/CopyToClipboardButton.js.map +1 -1
- package/dist/cjs/OptionFields.js +1 -1
- package/dist/cjs/OptionFields.js.map +1 -1
- package/dist/cjs/ProductEmbed.js +984 -301
- package/dist/cjs/ProductEmbed.js.map +1 -1
- package/dist/cjs/ShareViaLink.js +427 -181
- package/dist/cjs/ShareViaLink.js.map +1 -1
- package/package.json +1 -1
- package/src/translations/en.json +48 -40
- package/types/ProductEmbed.d.ts +1 -0
- package/types/ShareViaLink.d.ts +28 -28
package/dist/CardLayout.js
CHANGED
|
@@ -22,7 +22,7 @@ var CardLayout = function CardLayout(_ref) {
|
|
|
22
22
|
"data-testid": "neeto-molecules-card",
|
|
23
23
|
className: classnames(["neeto-molecules-card neeto-ui-border-gray-300 neeto-ui-rounded-lg my-6 w-full border", className]),
|
|
24
24
|
children: [/*#__PURE__*/jsxs("div", {
|
|
25
|
-
className: "neeto-molecules-card__content p-4",
|
|
25
|
+
className: "neeto-molecules-card__content p-4 md:p-6",
|
|
26
26
|
children: [icon && /*#__PURE__*/jsx("div", {
|
|
27
27
|
className: "neeto-molecules-card__icon-wrapper mb-4 w-full text-left",
|
|
28
28
|
children: icon
|
|
@@ -33,12 +33,12 @@ var CardLayout = function CardLayout(_ref) {
|
|
|
33
33
|
}]),
|
|
34
34
|
children: title
|
|
35
35
|
}), description && /*#__PURE__*/jsx(Typography, {
|
|
36
|
-
className: "mb-
|
|
36
|
+
className: "mb-4",
|
|
37
37
|
style: "body1",
|
|
38
38
|
children: description
|
|
39
39
|
}), children]
|
|
40
40
|
}), actionBlock && /*#__PURE__*/jsx("div", {
|
|
41
|
-
className: classnames(["neeto-molecules-card__action-block neeto-ui-bg-gray-50 neeto-ui-rounded-lg sticky bottom-0 w-full rounded-t-none p-4", className]),
|
|
41
|
+
className: classnames(["neeto-molecules-card__action-block neeto-ui-bg-gray-50 neeto-ui-rounded-lg sticky bottom-0 w-full rounded-t-none p-4 md:px-6", className]),
|
|
42
42
|
children: actionBlock
|
|
43
43
|
})]
|
|
44
44
|
})
|
package/dist/CardLayout.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CardLayout.js","sources":["../src/components/CardLayout/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst CardLayout = ({\n className = \"\",\n icon,\n containerClassName = \"\",\n title = null,\n description = null,\n actionBlock,\n children,\n}) => (\n <div\n data-testid=\"neeto-molecules-card-container\"\n className={classnames([\n \"neeto-molecules-card__container mx-auto w-full max-w-3xl\",\n containerClassName,\n ])}\n >\n <div\n data-testid=\"neeto-molecules-card\"\n className={classnames([\n \"neeto-molecules-card neeto-ui-border-gray-300 neeto-ui-rounded-lg my-6 w-full border\",\n className,\n ])}\n >\n <div className=\"neeto-molecules-card__content p-4\">\n {icon && (\n <div className=\"neeto-molecules-card__icon-wrapper mb-4 w-full text-left\">\n {icon}\n </div>\n )}\n {title && (\n <Typography\n style=\"h2\"\n className={classnames([\n \"mb-2\",\n { \"pb-2\": isNotPresent(description) },\n ])}\n >\n {title}\n </Typography>\n )}\n {description && (\n <Typography className=\"mb-
|
|
1
|
+
{"version":3,"file":"CardLayout.js","sources":["../src/components/CardLayout/index.jsx"],"sourcesContent":["import classnames from \"classnames\";\nimport { isNotPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\n\nconst CardLayout = ({\n className = \"\",\n icon,\n containerClassName = \"\",\n title = null,\n description = null,\n actionBlock,\n children,\n}) => (\n <div\n data-testid=\"neeto-molecules-card-container\"\n className={classnames([\n \"neeto-molecules-card__container mx-auto w-full max-w-3xl\",\n containerClassName,\n ])}\n >\n <div\n data-testid=\"neeto-molecules-card\"\n className={classnames([\n \"neeto-molecules-card neeto-ui-border-gray-300 neeto-ui-rounded-lg my-6 w-full border\",\n className,\n ])}\n >\n <div className=\"neeto-molecules-card__content p-4 md:p-6\">\n {icon && (\n <div className=\"neeto-molecules-card__icon-wrapper mb-4 w-full text-left\">\n {icon}\n </div>\n )}\n {title && (\n <Typography\n style=\"h2\"\n className={classnames([\n \"mb-2\",\n { \"pb-2\": isNotPresent(description) },\n ])}\n >\n {title}\n </Typography>\n )}\n {description && (\n <Typography className=\"mb-4\" style=\"body1\">\n {description}\n </Typography>\n )}\n {children}\n </div>\n {actionBlock && (\n <div\n className={classnames([\n \"neeto-molecules-card__action-block neeto-ui-bg-gray-50 neeto-ui-rounded-lg sticky bottom-0 w-full rounded-t-none p-4 md:px-6\",\n className,\n ])}\n >\n {actionBlock}\n </div>\n )}\n </div>\n </div>\n);\n\nCardLayout.propTypes = {\n /**\n * To set the title of the card.\n */\n title: PropTypes.string,\n /**\n * To set the description of the card.\n */\n description: PropTypes.node,\n /**\n * To set custom class name to the card.\n */\n className: PropTypes.string,\n /**\n * To set custom class name to the card container.\n */\n containerClassName: PropTypes.string,\n /**\n * To specify the content to be rendered in the card footer.\n */\n actionBlock: PropTypes.node,\n /**\n * To specify the components to be rendered inside the card.\n */\n children: PropTypes.node,\n /**\n * To set the icon of the card.\n */\n icon: PropTypes.node,\n};\n\nexport default CardLayout;\n"],"names":["CardLayout","_ref","_ref$className","className","icon","_ref$containerClassNa","containerClassName","_ref$title","title","_ref$description","description","actionBlock","children","_jsx","classnames","_jsxs","Typography","style","isNotPresent"],"mappings":";;;;;AAKA,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAAA;AAAA,EAAA,IAAAC,cAAA,GAAAD,IAAA,CACdE,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA;IACdE,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAAC,qBAAA,GAAAJ,IAAA,CACJK,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,qBAAA;IAAAE,UAAA,GAAAN,IAAA,CACvBO,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,UAAA;IAAAE,gBAAA,GAAAR,IAAA,CACZS,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,gBAAA;IAClBE,WAAW,GAAAV,IAAA,CAAXU,WAAW;IACXC,QAAQ,GAAAX,IAAA,CAARW,QAAQ,CAAA;AAAA,EAAA,oBAERC,GAAA,CAAA,KAAA,EAAA;AACE,IAAA,aAAA,EAAY,gCAAgC;IAC5CV,SAAS,EAAEW,UAAU,CAAC,CACpB,0DAA0D,EAC1DR,kBAAkB,CACnB,CAAE;AAAAM,IAAAA,QAAA,eAEHG,IAAA,CAAA,KAAA,EAAA;AACE,MAAA,aAAA,EAAY,sBAAsB;MAClCZ,SAAS,EAAEW,UAAU,CAAC,CACpB,sFAAsF,EACtFX,SAAS,CACV,CAAE;AAAAS,MAAAA,QAAA,gBAEHG,IAAA,CAAA,KAAA,EAAA;AAAKZ,QAAAA,SAAS,EAAC,0CAA0C;QAAAS,QAAA,EAAA,CACtDR,IAAI,iBACHS,GAAA,CAAA,KAAA,EAAA;AAAKV,UAAAA,SAAS,EAAC,0DAA0D;AAAAS,UAAAA,QAAA,EACtER,IAAAA;AAAI,SACF,CACN,EACAI,KAAK,iBACJK,GAAA,CAACG,UAAU,EAAA;AACTC,UAAAA,KAAK,EAAC,IAAI;AACVd,UAAAA,SAAS,EAAEW,UAAU,CAAC,CACpB,MAAM,EACN;YAAE,MAAM,EAAEI,YAAY,CAACR,WAAW,CAAA;AAAE,WAAC,CACtC,CAAE;AAAAE,UAAAA,QAAA,EAEFJ,KAAAA;AAAK,SACI,CACb,EACAE,WAAW,iBACVG,GAAA,CAACG,UAAU,EAAA;AAACb,UAAAA,SAAS,EAAC,MAAM;AAACc,UAAAA,KAAK,EAAC,OAAO;AAAAL,UAAAA,QAAA,EACvCF,WAAAA;SACS,CACb,EACAE,QAAQ,CAAA;AAAA,OACN,CAAC,EACLD,WAAW,iBACVE,GAAA,CAAA,KAAA,EAAA;QACEV,SAAS,EAAEW,UAAU,CAAC,CACpB,8HAA8H,EAC9HX,SAAS,CACV,CAAE;AAAAS,QAAAA,QAAA,EAEFD,WAAAA;AAAW,OACT,CACN,CAAA;KACE,CAAA;AAAC,GACH,CAAC,CAAA;AAAA;;;;"}
|
package/dist/Container.js
CHANGED
|
@@ -5,7 +5,7 @@ import { n } from './inject-css-DmrvuTKK.js';
|
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
import './_commonjsHelpers-BFTU3MAI.js';
|
|
7
7
|
|
|
8
|
-
var css = ".neeto-molecules-container{align-items:flex-start;display:flex;flex-direction:column;flex-grow:1;height:100vh;justify-content:flex-start;overflow-y:auto;padding:0 2.5rem}@media screen and (max-width:
|
|
8
|
+
var css = ".neeto-molecules-container{align-items:flex-start;display:flex;flex-direction:column;flex-grow:1;height:100vh;justify-content:flex-start;overflow-y:auto;padding:0 2.5rem}@media screen and (max-width:767px){.neeto-molecules-container{padding:0 1.25rem}}.neeto-molecules-container--header-fixed{padding:0}.neeto-molecules-container--header-fixed>.neeto-molecules-header,.neeto-molecules-container--header-fixed>.neeto-molecules-scrollable,.neeto-molecules-container--header-fixed>.neeto-molecules-subheader{padding-left:2.5rem;padding-right:2.5rem}@media screen and (max-width:768px){.neeto-molecules-container--header-fixed>.neeto-molecules-header,.neeto-molecules-container--header-fixed>.neeto-molecules-scrollable,.neeto-molecules-container--header-fixed>.neeto-molecules-subheader{padding-left:1.25rem;padding-right:1.25rem}}";
|
|
9
9
|
n(css,{});
|
|
10
10
|
|
|
11
11
|
var Container = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
@@ -22,7 +22,7 @@ var TOOLTIP_CONFIG = {
|
|
|
22
22
|
var css = ".neeto-molecules-copy-button{display:flex;justify-content:space-between}.neeto-molecules-copy-button .neeto-ui-btn:active,.neeto-molecules-copy-button .neeto-ui-btn:focus,.neeto-molecules-copy-button .neeto-ui-btn:hover{box-shadow:none}.neeto-molecules-copy-button--active{background:rgba(var(--neeto-ui-success-500));color:rgba(var(--neeto-ui-white))}.neeto-molecules-copy-button--active.neeto-ui-btn:active,.neeto-molecules-copy-button--active.neeto-ui-btn:focus,.neeto-molecules-copy-button--active.neeto-ui-btn:hover{background:rgba(var(--neeto-ui-success-500));box-shadow:none;color:rgba(var(--neeto-ui-white))}";
|
|
23
23
|
n(css,{});
|
|
24
24
|
|
|
25
|
-
var _excluded = ["className", "icon", "label", "successLabel", "tooltipContent", "successTooltipContent", "value", "style", "tooltipProps"];
|
|
25
|
+
var _excluded = ["className", "icon", "label", "successLabel", "tooltipContent", "successTooltipContent", "value", "style", "tooltipProps", "onClick"];
|
|
26
26
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
27
27
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
28
28
|
var CopyToClipboardButton = function CopyToClipboardButton(_ref) {
|
|
@@ -37,6 +37,7 @@ var CopyToClipboardButton = function CopyToClipboardButton(_ref) {
|
|
|
37
37
|
value = _ref.value,
|
|
38
38
|
style = _ref.style,
|
|
39
39
|
tooltipProps = _ref.tooltipProps,
|
|
40
|
+
onClick = _ref.onClick,
|
|
40
41
|
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
41
42
|
var _useTranslation = useTranslation(),
|
|
42
43
|
t = _useTranslation.t;
|
|
@@ -48,7 +49,7 @@ var CopyToClipboardButton = function CopyToClipboardButton(_ref) {
|
|
|
48
49
|
var onHandleClick = function onHandleClick(event) {
|
|
49
50
|
event.preventDefault();
|
|
50
51
|
event.stopPropagation();
|
|
51
|
-
copyToClipboard(value, {
|
|
52
|
+
if (onClick) onClick(event);else copyToClipboard(value, {
|
|
52
53
|
showToastr: false
|
|
53
54
|
});
|
|
54
55
|
setIsChecked(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyToClipboardButton.js","sources":["../src/components/CopyToClipboardButton/constants.js","../src/components/CopyToClipboardButton/index.jsx"],"sourcesContent":["const TIME_OUT = 2000;\n\nconst TOOLTIP_CONFIG = {\n trigger: \"click mouseenter\",\n hideAfter: TIME_OUT,\n position: \"top\",\n};\n\nconst BUTTON_STYLES = {\n primary: \"primary\",\n secondary: \"secondary\",\n text: \"text\",\n};\n\nexport { TOOLTIP_CONFIG, TIME_OUT, BUTTON_STYLES };\n","import { useState, useEffect, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { copyToClipboard } from \"neetocommons/utils/general\";\nimport { Copy, Check } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeAll } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TOOLTIP_CONFIG, TIME_OUT, BUTTON_STYLES } from \"./constants\";\nimport \"./copyToClipboard.scss\";\n\nconst CopyToClipboardButton = ({\n className,\n icon = Copy,\n label = \"\",\n successLabel,\n tooltipContent,\n successTooltipContent,\n value,\n style,\n tooltipProps,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const [isChecked, setIsChecked] = useState(false);\n\n const ref = useRef();\n\n const onHandleClick = event => {\n event.preventDefault();\n event.stopPropagation();\n copyToClipboard(value, { showToastr: false });\n setIsChecked(true);\n setTimeout(() => {\n setIsChecked(false);\n }, TIME_OUT); // Reset copied state after 2 seconds\n };\n\n useEffect(() => {\n if (!ref.current) return;\n const buttonWidth = ref.current.clientWidth;\n ref.current.style.minWidth = `${buttonWidth}px`;\n }, []);\n\n const tooltipOptions = label\n ? null\n : mergeAll([\n TOOLTIP_CONFIG,\n {\n content: isChecked\n ? successTooltipContent || t(\"neetoMolecules.common.copied\")\n : tooltipContent || t(\"neetoMolecules.common.copyToClipboard\"),\n },\n tooltipProps,\n ]);\n\n const buttonLabel =\n isChecked && label\n ? successLabel || t(\"neetoMolecules.common.copied\")\n : label;\n const buttonIcon = isChecked ? Check : icon;\n\n return (\n <Button\n {...{ ref, style }}\n data-cy=\"copy-to-clipboard-button\"\n data-testid=\"copy-button\"\n icon={buttonIcon}\n label={buttonLabel}\n tooltipProps={tooltipOptions}\n className={classnames(\"neeto-molecules-copy-button\", {\n [className]: className,\n \"neeto-molecules-copy-button--active\": isChecked,\n })}\n onClick={onHandleClick}\n {...otherProps}\n />\n );\n};\n\nCopyToClipboardButton.propTypes = {\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide the icon to be passed to the button. Defaults to the Copy icon.\n */\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * To provide the label to the button. By default there is no label.\n */\n label: PropTypes.string,\n /**\n * The label of button when the value is copied to clipboard. Defaults to 'Copied'.\n */\n successLabel: PropTypes.string,\n /**\n * The value to be copied to clipboard. (required)\n */\n value: PropTypes.string,\n /**\n * To specify the style of the Button.\n */\n style: PropTypes.oneOf(Object.values(BUTTON_STYLES)),\n /**\n * The content of the tooltip when the value is copied to clipboard. Defaults to 'Copy to clipboard'.\n */\n tooltipContent: PropTypes.string,\n /**\n * The content of the tooltip when the value is copied to clipboard. Defaults to 'Copied'.\n */\n successTooltipContent: PropTypes.string,\n};\n\nexport default CopyToClipboardButton;\n"],"names":["TIME_OUT","TOOLTIP_CONFIG","trigger","hideAfter","position","CopyToClipboardButton","_ref","className","_ref$icon","icon","Copy","_ref$label","label","successLabel","tooltipContent","successTooltipContent","value","style","tooltipProps","otherProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","ref","useRef","onHandleClick","event","preventDefault","stopPropagation","copyToClipboard","showToastr","setTimeout","useEffect","current","buttonWidth","clientWidth","minWidth","concat","tooltipOptions","mergeAll","content","buttonLabel","buttonIcon","Check","_jsx","Button","_objectSpread","classnames","_defineProperty"
|
|
1
|
+
{"version":3,"file":"CopyToClipboardButton.js","sources":["../src/components/CopyToClipboardButton/constants.js","../src/components/CopyToClipboardButton/index.jsx"],"sourcesContent":["const TIME_OUT = 2000;\n\nconst TOOLTIP_CONFIG = {\n trigger: \"click mouseenter\",\n hideAfter: TIME_OUT,\n position: \"top\",\n};\n\nconst BUTTON_STYLES = {\n primary: \"primary\",\n secondary: \"secondary\",\n text: \"text\",\n};\n\nexport { TOOLTIP_CONFIG, TIME_OUT, BUTTON_STYLES };\n","import { useState, useEffect, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { copyToClipboard } from \"neetocommons/utils/general\";\nimport { Copy, Check } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { mergeAll } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { TOOLTIP_CONFIG, TIME_OUT, BUTTON_STYLES } from \"./constants\";\nimport \"./copyToClipboard.scss\";\n\nconst CopyToClipboardButton = ({\n className,\n icon = Copy,\n label = \"\",\n successLabel,\n tooltipContent,\n successTooltipContent,\n value,\n style,\n tooltipProps,\n onClick,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const [isChecked, setIsChecked] = useState(false);\n\n const ref = useRef();\n\n const onHandleClick = event => {\n event.preventDefault();\n event.stopPropagation();\n\n if (onClick) onClick(event);\n else copyToClipboard(value, { showToastr: false });\n\n setIsChecked(true);\n setTimeout(() => {\n setIsChecked(false);\n }, TIME_OUT); // Reset copied state after 2 seconds\n };\n\n useEffect(() => {\n if (!ref.current) return;\n const buttonWidth = ref.current.clientWidth;\n ref.current.style.minWidth = `${buttonWidth}px`;\n }, []);\n\n const tooltipOptions = label\n ? null\n : mergeAll([\n TOOLTIP_CONFIG,\n {\n content: isChecked\n ? successTooltipContent || t(\"neetoMolecules.common.copied\")\n : tooltipContent || t(\"neetoMolecules.common.copyToClipboard\"),\n },\n tooltipProps,\n ]);\n\n const buttonLabel =\n isChecked && label\n ? successLabel || t(\"neetoMolecules.common.copied\")\n : label;\n const buttonIcon = isChecked ? Check : icon;\n\n return (\n <Button\n {...{ ref, style }}\n data-cy=\"copy-to-clipboard-button\"\n data-testid=\"copy-button\"\n icon={buttonIcon}\n label={buttonLabel}\n tooltipProps={tooltipOptions}\n className={classnames(\"neeto-molecules-copy-button\", {\n [className]: className,\n \"neeto-molecules-copy-button--active\": isChecked,\n })}\n onClick={onHandleClick}\n {...otherProps}\n />\n );\n};\n\nCopyToClipboardButton.propTypes = {\n /**\n * To provide additional classnames to the button.\n */\n className: PropTypes.string,\n /**\n * To provide the icon to be passed to the button. Defaults to the Copy icon.\n */\n icon: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),\n /**\n * To provide the label to the button. By default there is no label.\n */\n label: PropTypes.string,\n /**\n * The label of button when the value is copied to clipboard. Defaults to 'Copied'.\n */\n successLabel: PropTypes.string,\n /**\n * The value to be copied to clipboard. (required)\n */\n value: PropTypes.string,\n /**\n * To specify the style of the Button.\n */\n style: PropTypes.oneOf(Object.values(BUTTON_STYLES)),\n /**\n * The content of the tooltip when the value is copied to clipboard. Defaults to 'Copy to clipboard'.\n */\n tooltipContent: PropTypes.string,\n /**\n * The content of the tooltip when the value is copied to clipboard. Defaults to 'Copied'.\n */\n successTooltipContent: PropTypes.string,\n};\n\nexport default CopyToClipboardButton;\n"],"names":["TIME_OUT","TOOLTIP_CONFIG","trigger","hideAfter","position","CopyToClipboardButton","_ref","className","_ref$icon","icon","Copy","_ref$label","label","successLabel","tooltipContent","successTooltipContent","value","style","tooltipProps","onClick","otherProps","_objectWithoutProperties","_excluded","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isChecked","setIsChecked","ref","useRef","onHandleClick","event","preventDefault","stopPropagation","copyToClipboard","showToastr","setTimeout","useEffect","current","buttonWidth","clientWidth","minWidth","concat","tooltipOptions","mergeAll","content","buttonLabel","buttonIcon","Check","_jsx","Button","_objectSpread","classnames","_defineProperty"],"mappings":";;;;;;;;;;;;;;AAAA,IAAMA,QAAQ,GAAG,IAAI,CAAA;AAErB,IAAMC,cAAc,GAAG;AACrBC,EAAAA,OAAO,EAAE,kBAAkB;AAC3BC,EAAAA,SAAS,EAAEH,QAAQ;AACnBI,EAAAA,QAAQ,EAAE,KAAA;AACZ,CAAC;;;;;;;;ACOD,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAAC,IAAA,EAYrB;AAAA,EAAA,IAXJC,SAAS,GAAAD,IAAA,CAATC,SAAS;IAAAC,SAAA,GAAAF,IAAA,CACTG,IAAI;AAAJA,IAAAA,IAAI,GAAAD,SAAA,KAAGE,KAAAA,CAAAA,GAAAA,IAAI,GAAAF,SAAA;IAAAG,UAAA,GAAAL,IAAA,CACXM,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,UAAA;IACVE,YAAY,GAAAP,IAAA,CAAZO,YAAY;IACZC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IACdC,qBAAqB,GAAAT,IAAA,CAArBS,qBAAqB;IACrBC,KAAK,GAAAV,IAAA,CAALU,KAAK;IACLC,KAAK,GAAAX,IAAA,CAALW,KAAK;IACLC,YAAY,GAAAZ,IAAA,CAAZY,YAAY;IACZC,OAAO,GAAAb,IAAA,CAAPa,OAAO;AACJC,IAAAA,UAAU,GAAAC,wBAAA,CAAAf,IAAA,EAAAgB,SAAA,CAAA,CAAA;AAEb,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AAET,EAAA,IAAAC,SAAA,GAAkCC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA1CI,IAAAA,SAAS,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,YAAY,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAE9B,EAAA,IAAMI,GAAG,GAAGC,MAAM,EAAE,CAAA;AAEpB,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,KAAK,EAAI;IAC7BA,KAAK,CAACC,cAAc,EAAE,CAAA;IACtBD,KAAK,CAACE,eAAe,EAAE,CAAA;IAEvB,IAAIlB,OAAO,EAAEA,OAAO,CAACgB,KAAK,CAAC,CAAC,KACvBG,eAAe,CAACtB,KAAK,EAAE;AAAEuB,MAAAA,UAAU,EAAE,KAAA;AAAM,KAAC,CAAC,CAAA;IAElDR,YAAY,CAAC,IAAI,CAAC,CAAA;AAClBS,IAAAA,UAAU,CAAC,YAAM;MACfT,YAAY,CAAC,KAAK,CAAC,CAAA;AACrB,KAAC,EAAE/B,QAAQ,CAAC,CAAC;GACd,CAAA;AAEDyC,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAI,CAACT,GAAG,CAACU,OAAO,EAAE,OAAA;AAClB,IAAA,IAAMC,WAAW,GAAGX,GAAG,CAACU,OAAO,CAACE,WAAW,CAAA;IAC3CZ,GAAG,CAACU,OAAO,CAACzB,KAAK,CAAC4B,QAAQ,GAAAC,EAAAA,CAAAA,MAAA,CAAMH,WAAW,EAAI,IAAA,CAAA,CAAA;GAChD,EAAE,EAAE,CAAC,CAAA;EAEN,IAAMI,cAAc,GAAGnC,KAAK,GACxB,IAAI,GACJoC,QAAQ,CAAC,CACP/C,cAAc,EACd;AACEgD,IAAAA,OAAO,EAAEnB,SAAS,GACdf,qBAAqB,IAAIU,CAAC,CAAC,8BAA8B,CAAC,GAC1DX,cAAc,IAAIW,CAAC,CAAC,uCAAuC,CAAA;GAChE,EACDP,YAAY,CACb,CAAC,CAAA;AAEN,EAAA,IAAMgC,WAAW,GACfpB,SAAS,IAAIlB,KAAK,GACdC,YAAY,IAAIY,CAAC,CAAC,8BAA8B,CAAC,GACjDb,KAAK,CAAA;AACX,EAAA,IAAMuC,UAAU,GAAGrB,SAAS,GAAGsB,KAAK,GAAG3C,IAAI,CAAA;AAE3C,EAAA,oBACE4C,GAAA,CAACC,MAAM,EAAAC,aAAA,CAAA;AACCvB,IAAAA,GAAG,EAAHA,GAAG;AAAEf,IAAAA,KAAK,EAALA,KAAK;AAChB,IAAA,SAAA,EAAQ,0BAA0B;AAClC,IAAA,aAAA,EAAY,aAAa;AACzBR,IAAAA,IAAI,EAAE0C,UAAW;AACjBvC,IAAAA,KAAK,EAAEsC,WAAY;AACnBhC,IAAAA,YAAY,EAAE6B,cAAe;AAC7BxC,IAAAA,SAAS,EAAEiD,UAAU,CAAC,6BAA6B,EAAAC,eAAA,CAAAA,eAAA,CAChDlD,EAAAA,EAAAA,SAAS,EAAGA,SAAS,CAAA,EACtB,qCAAqC,EAAEuB,SAAS,CACjD,CAAE;AACHX,IAAAA,OAAO,EAAEe,aAAAA;GACLd,EAAAA,UAAU,CACf,CAAC,CAAA;AAEN;;;;"}
|
package/dist/OptionFields.js
CHANGED
|
@@ -74,7 +74,7 @@ var BulkOptionModal = function BulkOptionModal(_ref) {
|
|
|
74
74
|
}
|
|
75
75
|
})
|
|
76
76
|
}), /*#__PURE__*/jsxs(Modal.Footer, {
|
|
77
|
-
className: "
|
|
77
|
+
className: "space-x-2",
|
|
78
78
|
children: [/*#__PURE__*/jsx(Button, {
|
|
79
79
|
"data-cy": "bulk-add-options-done-button",
|
|
80
80
|
"data-testid": "bulk-add-options-done-button",
|
package/dist/OptionFields.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OptionFields.js","sources":["../src/components/OptionFields/BulkOptionModal.jsx","../src/components/OptionFields/constants.js","../src/components/OptionFields/FormError.jsx","../src/components/OptionFields/utils.js","../src/components/OptionFields/hooks/useOptionFields.js","../src/components/OptionFields/DragHandle.jsx","../src/components/OptionFields/BlockOption.jsx","../src/components/OptionFields/InputOption.jsx","../src/components/OptionFields/OptionField.jsx","../src/components/OptionFields/index.jsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport { Button, Modal, Textarea, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nconst BulkOptionModal = ({\n isOpen,\n onClose,\n handleBulkAdd,\n bulkAddHelpDocUrl,\n}) => {\n const { t } = useTranslation();\n const [optionsString, setOptionsString] = useState(\"\");\n\n const handleSave = () => {\n handleBulkAdd(optionsString);\n handleClose();\n };\n\n const handleClose = () => {\n setOptionsString(\"\");\n onClose();\n };\n\n return (\n <Modal {...{ isOpen }} onClose={handleClose}>\n <Modal.Header>\n <Typography style=\"h3\">\n {t(\"neetoMolecules.optionFields.bulkOption.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <Textarea\n className=\"my-2\"\n data-cy=\"bulk-add-options-textarea\"\n data-testid=\"bulk-add-options-textarea\"\n label={t(\"neetoMolecules.optionFields.bulkOption.label\")}\n placeholder={t(\"neetoMolecules.optionFields.bulkOption.label\")}\n rows={8}\n value={optionsString}\n helpText={\n <Trans\n i18nKey=\"neetoMolecules.optionFields.bulkOption.helpText\"\n components={{\n Link: (\n <Button\n className=\"text-xs\"\n href={bulkAddHelpDocUrl}\n style=\"link\"\n target=\"_blank\"\n />\n ),\n }}\n />\n }\n onChange={e => setOptionsString(e.target.value)}\n />\n </Modal.Body>\n <Modal.Footer className=\"gap-x-2\">\n <Button\n data-cy=\"bulk-add-options-done-button\"\n data-testid=\"bulk-add-options-done-button\"\n label={t(\"neetoMolecules.common.actions.submit\")}\n onClick={handleSave}\n />\n <Button\n data-cy=\"bulk-add-options-cancel-button\"\n data-testid=\"bulk-add-options-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n style=\"text\"\n onClick={handleClose}\n />\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default BulkOptionModal;\n","import i18next from \"i18next\";\n\nexport const DEFAULT_OPTION_LABEL = i18next.t(\n \"neetoMolecules.optionFields.defaultOption\"\n);\n","import { isNotPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nconst FormError = ({ error }) => {\n if (isNotPresent(error) || typeof error !== \"string\") return null;\n\n return (\n <Typography\n className=\"neeto-ui-input__error\"\n data-testid=\"validation-error-container\"\n style=\"body3\"\n >\n {error}\n </Typography>\n );\n};\n\nexport default FormError;\n","import { slugify } from \"neetocist\";\nimport { pluck, prop, reject } from \"ramda\";\n\nexport const getOrderedOptions = (options = []) =>\n options.sort((a, b) => a.position - b.position);\n\nexport const filterDeletedRecords = (options, destroyFlagName) =>\n reject(prop(destroyFlagName), options);\n\nexport const randomId = () => Math.random().toString(36).substring(2, 13);\n\nexport const getUniqueOptionId = option =>\n option.altId ||\n option.id?.toString() ||\n option.position?.toString() ||\n slugify(option.label ?? \"\");\n\nexport const generatePlaceholder = (itemLabel, count) =>\n `${itemLabel} ${count + 1}`;\n\nexport const generateLabel = (itemLabel, options, count) => {\n const labelCount = count || options.length + 1;\n const tempLabel = `${itemLabel} ${labelCount}`;\n const isDuplicateLabel = pluck(\"label\", options).includes(tempLabel);\n\n return isDuplicateLabel\n ? generateLabel(itemLabel, options, labelCount + 1)\n : tempLabel;\n};\n\nexport const resolveFormikValue = (path, values) => {\n if (!path || typeof path !== \"string\") {\n return [];\n }\n\n return path\n .replace(/\\[|\\]/g, \".\")\n .split(\".\")\n .filter(Boolean)\n .reduce(\n (acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined),\n values\n );\n};\n","import { useRef, useState } from \"react\";\n\nimport { useField } from \"formik\";\nimport { isNotEmpty, findIndexById } from \"neetocist\";\nimport { append, assocPath, move, remove, prop } from \"ramda\";\n\nimport { filterDeletedRecords, generateLabel, randomId } from \"../utils\";\n\nconst attachPosition = options =>\n options.map((option, index) => ({ ...option, position: index }));\n\nconst useOptionFields = ({\n options,\n onChange,\n shouldDestroy,\n itemLabel,\n shouldResetEmptyOptionOnBlur,\n name,\n destroyFlagName,\n isNewItemsPrefilled,\n isAddOptionEnabled,\n}) => {\n const [shouldFocus, setShouldFocus] = useState(false);\n const editingOptionDetailsRef = useRef({ id: \"\", value: \"\" });\n\n const [__, _, helpers] = useField(name);\n const setValue = helpers.setValue;\n\n const handleChange = (id, value, isOnBlur = false) => {\n // Ignores onBlur events if the value in the input field is not cleared.\n // The value will be reset to the initial value if user clicks outside after clearing the value.\n // This can be controlled using the prop `shouldResetEmptyOptionOnBlur`.\n if (isOnBlur && (isNotEmpty(value) || !shouldResetEmptyOptionOnBlur)) {\n return;\n }\n\n const index = findIndexById(id, options);\n if (editingOptionDetailsRef.current.id !== id) {\n editingOptionDetailsRef.current = {\n id,\n value: options[index].label,\n };\n }\n\n // Resets the value to initial value if the user cleared and blurred the input field.\n const valueToUpdate = isOnBlur\n ? editingOptionDetailsRef.current.value\n : value;\n\n const nextOptions = assocPath([index, \"label\"], valueToUpdate, options);\n setValue(nextOptions);\n onChange?.(nextOptions);\n };\n\n const handleDelete = (id, arrayHelpers) => {\n let nextOptions;\n\n const indexToDelete = findIndexById(id, options);\n if (shouldDestroy) {\n nextOptions = assocPath([indexToDelete, destroyFlagName], true, options);\n setValue(nextOptions);\n } else {\n arrayHelpers.remove(indexToDelete);\n nextOptions = attachPosition(remove(indexToDelete, 1, options));\n }\n\n onChange?.(nextOptions);\n };\n\n const handleDragEnd = ({ source, destination }) => {\n // When dragged outside of draggable\n if (destination === null) return;\n\n const deletedOptions = options.filter(prop(destroyFlagName));\n const filteredOptions = filterDeletedRecords(options, destroyFlagName);\n const nextOptions = move(source.index, destination.index, filteredOptions);\n const finalOptions = attachPosition(nextOptions);\n setValue([...deletedOptions, ...finalOptions]);\n onChange?.([...deletedOptions, ...finalOptions]);\n };\n\n const handleAddOption = () => {\n const id = randomId();\n const newOption = {\n id: `draft-${id}`,\n altId: `alt-${id}`,\n label: isNewItemsPrefilled ? generateLabel(itemLabel, options) : \"\",\n position: options.length,\n };\n setShouldFocus(true);\n\n const nextOptions = append(newOption, options);\n setValue(nextOptions);\n onChange?.(nextOptions);\n };\n\n const handleBulkAddOption = optionsString => {\n setShouldFocus(true);\n const position = options.length;\n const newOptions = optionsString\n .trim()\n .split(/\\r?\\n|,/)\n .filter(isNotEmpty)\n .map((option, index) => ({\n id: `draft-${randomId()}`,\n altId: `alt-${randomId()}`,\n label: option.trim(),\n position: position + index,\n }));\n\n const nextOptions = [...options, ...newOptions];\n setValue(nextOptions);\n onChange?.(nextOptions);\n };\n\n const handleKeyDown = event => {\n if (event.key !== \"Enter\") return;\n\n const form = event.target.form;\n const inputs = Array.from(form.querySelectorAll(\"input\"));\n const currentInput = inputs.indexOf(event.target);\n\n if (currentInput >= inputs.length - 1) {\n isAddOptionEnabled && handleAddOption();\n } else {\n inputs[currentInput + 1]?.focus();\n event.preventDefault();\n }\n event.stopPropagation();\n };\n\n return {\n shouldFocus,\n handleAddOption,\n handleBulkAddOption,\n handleChange,\n handleKeyDown,\n handleDelete,\n handleDragEnd,\n };\n};\n\nexport default useOptionFields;\n","import { Drag } from \"neetoicons\";\n\nconst DragHandle = props => (\n <div\n className=\"neeto-ui-text-gray-500 flex h-8 flex-shrink-0 cursor-grab items-center\"\n data-cy=\"drag-handle\"\n data-testid=\"drag-handle\"\n {...props}\n >\n <Drag size={16} strokeWidth={2} />\n </div>\n);\n\nexport default DragHandle;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Delete, Edit } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\n\nimport DragHandle from \"./DragHandle\";\n\nconst BlockOption = withT(\n ({\n t,\n innerRef,\n hideDeleteOption = false,\n draggableProps,\n dragHandleProps,\n label,\n onEdit,\n handleDeleteClick,\n id,\n isDraggable,\n optionIndex,\n arrayHelpers,\n }) => (\n <div ref={innerRef} {...draggableProps} {...dragHandleProps}>\n <div\n className=\"neeto-ui-border-gray-400 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-sm shadow-xs group relative mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-colors duration-300 ease-in-out\"\n data-cy=\"address-field-block\"\n >\n {isDraggable && (\n <DragHandle\n {...dragHandleProps}\n data-testid={`drag-handle-${optionIndex}`}\n />\n )}\n <Typography\n className=\"flex-grow leading-4\"\n data-cy=\"address-text-field\"\n data-testid=\"address-text-field\"\n style=\"body2\"\n >\n {label}\n </Typography>\n <div className=\"flex items-center justify-end gap-2 opacity-0 group-hover:opacity-100\">\n <Button\n className=\"neeto-ui-rounded hover:neeto-ui-bg-gray-400 p-1\"\n data-cy=\"address-field-edit-button\"\n data-testid=\"address-field-edit-button\"\n icon={Edit}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.edit\"),\n position: \"top\",\n touch: [\"hold\", 500],\n }}\n onClick={() => onEdit(id)}\n />\n {!hideDeleteOption && (\n <Button\n className=\"neeto-ui-rounded hover:neeto-ui-bg-gray-400 p-1\"\n data-cy=\"address-field-delete-button\"\n data-testid={`delete-option-button-${optionIndex}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.delete\"),\n position: \"top\",\n touch: [\"hold\", 500],\n }}\n onClick={() => handleDeleteClick(id, arrayHelpers)}\n />\n )}\n </div>\n </div>\n </div>\n )\n);\n\nexport default BlockOption;\n","import { useField } from \"formik\";\nimport { ImageUpload, Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input, Textarea } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DragHandle from \"./DragHandle\";\n\nconst InputOption = ({\n shouldFocus,\n hideDeleteOption = false,\n innerRef,\n draggableProps,\n dragHandleProps,\n isPictureChoice,\n onKeyDown,\n onDelete,\n onChange,\n optionIndex,\n disabled,\n isTextArea,\n id,\n isDraggable,\n name,\n placeholder,\n onBlur,\n arrayHelpers,\n}) => {\n const { t } = useTranslation();\n const Component = isTextArea ? Textarea : Input;\n const [field] = useField(name);\n\n return (\n <div\n ref={innerRef}\n {...{ ...draggableProps, ...dragHandleProps }}\n data-cy=\"form-block-options\"\n >\n <div className=\"nf-input-options group relative mb-2 flex items-start gap-1\">\n {isDraggable && (\n <DragHandle\n {...dragHandleProps}\n data-testid={`drag-handle-${optionIndex}`}\n />\n )}\n {isPictureChoice && (\n <>\n {optionIndex === 0 ? (\n <img\n className=\"neeto-ui-rounded-sm h-8 w-8 cursor-pointer overflow-hidden object-cover\"\n data-testid=\"picture-choice-option\"\n src=\"https://i.pravatar.cc/300\"\n />\n ) : (\n <div className=\"hover:neeto-ui-bg-gray-100 neeto-ui-border-primary-600 neeto-ui-text-primary-800 neeto-ui-rounded-sm flex h-8 w-8 cursor-pointer items-center justify-center border border-dashed transition-all duration-300 ease-in-out\">\n <ImageUpload size={16} />\n </div>\n )}\n </>\n )}\n <Component\n {...{ disabled, name, onKeyDown, placeholder }}\n autoFocus={shouldFocus}\n data-cy={`option-input-${optionIndex}`}\n data-testid={`${\n isTextArea ? \"textarea-option\" : \"input-option\"\n }-${optionIndex}`}\n suffix={\n !hideDeleteOption && (\n <Button\n {...{ disabled }}\n className=\"p-0.5\"\n data-cy={`delete-option-button-${optionIndex}`}\n data-testid={`delete-option-button-${optionIndex}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.delete\"),\n position: \"top\",\n touch: [\"hold\", 500],\n }}\n onClick={() => onDelete(id, arrayHelpers)}\n />\n )\n }\n onChange={({ target }) => onChange(id, target.value)}\n onFocus={({ target }) => target.select()}\n onBlur={(event, ...args) => {\n onChange(id, event.target.value, true);\n onBlur?.(id, event.target.value);\n field.onBlur(event, ...args);\n }}\n />\n </div>\n </div>\n );\n};\n\nexport default InputOption;\n","import BlockOption from \"./BlockOption\";\nimport InputOption from \"./InputOption\";\nimport { generatePlaceholder } from \"./utils\";\n\nconst OptionField = ({\n option,\n editable,\n dragHandleProps,\n draggableProps,\n handleDeleteClick,\n hideDeleteOption,\n innerRef,\n onEdit,\n draggable,\n disabled,\n isPictureChoice,\n isTextArea,\n shouldFocus,\n isEditable,\n itemLabel,\n handleChange,\n handleKeyDown,\n name,\n optionIndex,\n onBlur,\n arrayHelpers,\n}) => {\n if (!editable) {\n return (\n <BlockOption\n {...{\n arrayHelpers,\n dragHandleProps,\n draggableProps,\n handleDeleteClick,\n hideDeleteOption,\n innerRef,\n onEdit,\n optionIndex,\n }}\n id={option.id}\n isDraggable={draggable && !disabled}\n label={option.label}\n />\n );\n }\n\n return (\n <InputOption\n {...{\n arrayHelpers,\n dragHandleProps,\n draggableProps,\n hideDeleteOption,\n innerRef,\n isPictureChoice,\n isTextArea,\n name,\n onBlur,\n optionIndex,\n shouldFocus,\n }}\n disabled={!isEditable || disabled}\n id={option.id}\n isDraggable={draggable && !disabled}\n placeholder={generatePlaceholder(itemLabel, optionIndex)}\n onChange={handleChange}\n onDelete={handleDeleteClick}\n onKeyDown={handleKeyDown}\n />\n );\n};\n\nexport default OptionField;\n","import { useState } from \"react\";\n\nimport { DragDropContext, Droppable, Draggable } from \"@hello-pangea/dnd\";\nimport { FieldArray, useField } from \"formik\";\nimport { findIndexById, noop } from \"neetocist\";\nimport { Plus } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkOptionModal from \"./BulkOptionModal\";\nimport { DEFAULT_OPTION_LABEL } from \"./constants\";\nimport FormError from \"./FormError\";\nimport useOptionFields from \"./hooks/useOptionFields\";\nimport OptionField from \"./OptionField\";\nimport {\n getOrderedOptions,\n getUniqueOptionId,\n resolveFormikValue,\n} from \"./utils\";\n\nconst OptionFields = ({\n name,\n error,\n onDelete,\n onChange,\n onBlur,\n onEdit = noop,\n buttonProps = {},\n minOptions = 0,\n draggable = false,\n editable = true,\n disabled = false,\n isAddOptionEnabled = true,\n isDeleteOptionEnabled = true,\n isPictureChoice = false,\n isTextArea = false,\n shouldDestroy = false,\n destroyFlagName = \"deleted\",\n shouldResetEmptyOptionOnBlur = true,\n isNewItemsPrefilled = true,\n itemLabel = DEFAULT_OPTION_LABEL,\n bulkActionProps = { enabled: false, bulkAddHelpDocUrl: \"\" },\n}) => {\n const { t } = useTranslation();\n const [isBulkOptionModalOpen, setIsBulkOptionModalOpen] = useState(false);\n const [field, meta] = useField(name);\n const fieldError = meta.touched ? meta.error : null;\n\n const options = field.value;\n\n const {\n shouldFocus,\n handleAddOption,\n handleBulkAddOption,\n handleChange,\n handleKeyDown,\n handleDelete,\n handleDragEnd,\n } = useOptionFields({\n options,\n onChange,\n shouldDestroy,\n itemLabel,\n shouldResetEmptyOptionOnBlur,\n destroyFlagName,\n name,\n isNewItemsPrefilled,\n isAddOptionEnabled,\n });\n\n // Temporarily disables the modifications to options when changed are getting saved to server\n // This condition only needed for server id generated types\n let isEditable = true;\n if (shouldDestroy) isEditable = options.every(prop(\"id\") || error);\n\n const orderedOptions = getOrderedOptions(options, destroyFlagName);\n const filteredOptions = orderedOptions.filter(\n ({ [destroyFlagName]: deleted }) => !deleted\n );\n\n const hideDeleteOption =\n filteredOptions.length <= minOptions || disabled || !isDeleteOptionEnabled;\n\n const optionFieldProps = {\n disabled,\n draggable,\n editable,\n handleChange,\n handleDeleteClick: onDelete ?? handleDelete,\n handleKeyDown,\n hideDeleteOption,\n isEditable,\n isPictureChoice,\n isTextArea,\n itemLabel,\n onEdit,\n onBlur,\n shouldFocus,\n };\n\n // To fix the element positioned incorrectly while dragging when in a pane or modal.\n // https://github.com/hello-pangea/dnd/issues/560#issuecomment-1679201455\n const renderDragClone = (provided, _, rubric) => {\n const draggingIndex = rubric[\"source\"].index;\n const option = filteredOptions[draggingIndex];\n const formikIndex = findIndexById(option.id, options);\n\n return (\n <OptionField\n {...{ ...optionFieldProps, option }}\n dragHandleProps={provided.dragHandleProps}\n innerRef={null}\n name={`${name}.${formikIndex}.label`}\n optionIndex={draggingIndex}\n draggableProps={{\n ...provided.draggableProps,\n style: { ...provided.draggableProps.style, zIndex: 999999 },\n }}\n />\n );\n };\n\n return (\n <form onSubmit={e => e.preventDefault()}>\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable\n droppableId={`neeto-molecules-option-fields-${name}`}\n isDropDisabled={!draggable}\n renderClone={renderDragClone}\n >\n {({ innerRef, droppableProps, placeholder }) => (\n <div ref={innerRef} {...droppableProps}>\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const options = resolveFormikValue(\n name,\n arrayHelpers.form.values\n );\n\n return options?.map((option, index) => {\n if (option?.[destroyFlagName]) return null;\n\n const optionIndex = findIndexById(\n option.id,\n filteredOptions\n );\n\n return (\n <Draggable\n dataKey={getUniqueOptionId(option)}\n draggableId={getUniqueOptionId(option)}\n index={optionIndex}\n isDragDisabled={!draggable}\n key={getUniqueOptionId(option)}\n >\n {({ innerRef, draggableProps, dragHandleProps }) => (\n <OptionField\n {...{\n ...optionFieldProps,\n arrayHelpers,\n dragHandleProps,\n draggableProps,\n innerRef,\n option,\n optionIndex,\n }}\n name={`${name}.${index}.label`}\n />\n )}\n </Draggable>\n );\n });\n }}\n </FieldArray>\n {placeholder}\n <FormError error={error ?? fieldError} />\n </div>\n )}\n </Droppable>\n <div className=\"mt-4 flex items-center justify-between\">\n {isAddOptionEnabled && (\n <Button\n data-cy=\"add-option-link\"\n data-testid=\"add-option-link\"\n disabled={!isEditable}\n icon={Plus}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.optionFields.addOption\")}\n size=\"small\"\n style=\"link\"\n onClick={handleAddOption}\n {...buttonProps}\n />\n )}\n {bulkActionProps.enabled && (\n <Button\n data-cy=\"add-bulk-option-link\"\n data-testid=\"add-bulk-option-link\"\n disabled={!isEditable}\n label={t(\"neetoMolecules.optionFields.addBulk\")}\n size=\"small\"\n style=\"text\"\n onClick={() => setIsBulkOptionModalOpen(true)}\n />\n )}\n </div>\n </DragDropContext>\n <BulkOptionModal\n bulkAddHelpDocUrl={bulkActionProps.bulkAddHelpDocUrl}\n handleBulkAdd={handleBulkAddOption}\n isOpen={isBulkOptionModalOpen}\n onClose={() => setIsBulkOptionModalOpen(false)}\n />\n </form>\n );\n};\n\nOptionFields.propTypes = {\n /**\n * Props to be passed to the add option button\n */\n buttonProps: PropTypes.object,\n\n /**\n * Enable drag and drop functionality\n */\n draggable: PropTypes.bool,\n\n /**\n * Enable edit functionality\n */\n editable: PropTypes.bool,\n\n /**\n * Error message to be displayed\n */\n error: PropTypes.string,\n\n /**\n * The field name in Formik state.\n */\n name: PropTypes.string,\n\n /**\n * Function to handle option deletion\n */\n onDelete: PropTypes.func,\n\n /**\n * Function to handle option edit\n *\n */\n onEdit: PropTypes.func,\n\n /**\n * Minimum number of options required\n */\n minOptions: PropTypes.number,\n\n /**\n * Options array\n */\n options: PropTypes.array,\n\n /**\n * Prop to switch between Input and Textarea\n */\n isTextArea: PropTypes.bool,\n\n /**\n * Function to handle options change\n */\n onChange: PropTypes.func,\n\n /**\n * Prop to switch between PictureChoice and normal options\n * */\n isPictureChoice: PropTypes.bool,\n\n /**\n * Prop to set the item label\n * */\n\n itemLabel: PropTypes.string,\n\n /**\n * Props for bulk action\n */\n bulkActionProps: PropTypes.shape({\n enabled: PropTypes.bool,\n bulkAddHelpDocUrl: PropTypes.string,\n }),\n /**\n * To disable the input fields.\n */\n disabled: PropTypes.bool,\n /**\n * This prop can be used to show/hide the `Add option` button below the options list.\n */\n isAddOptionEnabled: PropTypes.bool,\n /**\n * This prop can be used to show/hide the delete button in each of the option.\n */\n isDeleteOptionEnabled: PropTypes.bool,\n /**\n * The input fields emptied by the user will be reset to the original value\n * when the field is blurred. This prop can be used to disable resetting the empty value on blur.\n */\n shouldResetEmptyOptionOnBlur: PropTypes.bool,\n /**\n * Whether the option should be soft deleted. If yes, the specified destroy flag name\n * will be set to true, otherwise it will be removed from the array.\n */\n shouldDestroy: PropTypes.bool,\n /**\n * The flag to set to true when the shouldDestroy is set to true.\n * Default value is `deleted`.\n */\n destroyFlagName: PropTypes.string,\n /**\n * Function to be called when input field is blurred. The arguments includes\n * the field id and the value.\n */\n onBlur: PropTypes.func,\n /**\n * Whether to set a default value to the label of the new items added.\n * Default value is true, the items will have the `itemLabel` + index as the default value.\n * If set to false, the initial value will be \"\".\n */\n isNewItemsPrefilled: PropTypes.bool,\n};\n\nexport default OptionFields;\n"],"names":["BulkOptionModal","_ref","isOpen","onClose","handleBulkAdd","bulkAddHelpDocUrl","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","optionsString","setOptionsString","handleSave","handleClose","_jsxs","Modal","children","_jsx","Header","Typography","style","Body","Textarea","className","label","placeholder","rows","value","helpText","Trans","i18nKey","components","Link","Button","href","target","onChange","e","Footer","onClick","DEFAULT_OPTION_LABEL","i18next","FormError","error","isNotPresent","getOrderedOptions","options","arguments","length","undefined","sort","a","b","position","filterDeletedRecords","destroyFlagName","reject","prop","randomId","Math","random","toString","substring","getUniqueOptionId","option","_option$id","_option$position","_option$label","altId","id","slugify","generatePlaceholder","itemLabel","count","concat","generateLabel","labelCount","tempLabel","isDuplicateLabel","pluck","includes","resolveFormikValue","path","values","replace","split","filter","Boolean","reduce","acc","key","attachPosition","map","index","_objectSpread","useOptionFields","shouldDestroy","shouldResetEmptyOptionOnBlur","name","isNewItemsPrefilled","isAddOptionEnabled","shouldFocus","setShouldFocus","editingOptionDetailsRef","useRef","_useField","useField","_useField2","__","_","helpers","setValue","handleChange","isOnBlur","isNotEmpty","findIndexById","current","valueToUpdate","nextOptions","assocPath","handleDelete","arrayHelpers","indexToDelete","remove","handleDragEnd","_ref2","source","destination","deletedOptions","filteredOptions","move","finalOptions","_toConsumableArray","handleAddOption","newOption","append","handleBulkAddOption","newOptions","trim","handleKeyDown","event","form","inputs","Array","from","querySelectorAll","currentInput","indexOf","_inputs","focus","preventDefault","stopPropagation","DragHandle","props","Drag","size","strokeWidth","BlockOption","withT","innerRef","_ref$hideDeleteOption","hideDeleteOption","draggableProps","dragHandleProps","onEdit","handleDeleteClick","isDraggable","optionIndex","ref","icon","Edit","tooltipProps","content","touch","Delete","InputOption","isPictureChoice","onKeyDown","onDelete","disabled","isTextArea","onBlur","Component","Input","field","_Fragment","src","ImageUpload","autoFocus","suffix","onFocus","_ref3","select","_len","args","_key","apply","OptionField","editable","draggable","isEditable","OptionFields","_ref$onEdit","noop","_ref$buttonProps","buttonProps","_ref$minOptions","minOptions","_ref$draggable","_ref$editable","_ref$disabled","_ref$isAddOptionEnabl","_ref$isDeleteOptionEn","isDeleteOptionEnabled","_ref$isPictureChoice","_ref$isTextArea","_ref$shouldDestroy","_ref$destroyFlagName","_ref$shouldResetEmpty","_ref$isNewItemsPrefil","_ref$itemLabel","_ref$bulkActionProps","bulkActionProps","enabled","isBulkOptionModalOpen","setIsBulkOptionModalOpen","meta","fieldError","touched","_useOptionFields","every","orderedOptions","deleted","optionFieldProps","renderDragClone","provided","rubric","draggingIndex","formikIndex","zIndex","onSubmit","DragDropContext","onDragEnd","Droppable","droppableId","isDropDisabled","renderClone","droppableProps","FieldArray","Draggable","dataKey","draggableId","isDragDisabled","_ref4","Plus","iconPosition"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OptionFields.js","sources":["../src/components/OptionFields/BulkOptionModal.jsx","../src/components/OptionFields/constants.js","../src/components/OptionFields/FormError.jsx","../src/components/OptionFields/utils.js","../src/components/OptionFields/hooks/useOptionFields.js","../src/components/OptionFields/DragHandle.jsx","../src/components/OptionFields/BlockOption.jsx","../src/components/OptionFields/InputOption.jsx","../src/components/OptionFields/OptionField.jsx","../src/components/OptionFields/index.jsx"],"sourcesContent":["import { useState } from \"react\";\n\nimport { Button, Modal, Textarea, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nconst BulkOptionModal = ({\n isOpen,\n onClose,\n handleBulkAdd,\n bulkAddHelpDocUrl,\n}) => {\n const { t } = useTranslation();\n const [optionsString, setOptionsString] = useState(\"\");\n\n const handleSave = () => {\n handleBulkAdd(optionsString);\n handleClose();\n };\n\n const handleClose = () => {\n setOptionsString(\"\");\n onClose();\n };\n\n return (\n <Modal {...{ isOpen }} onClose={handleClose}>\n <Modal.Header>\n <Typography style=\"h3\">\n {t(\"neetoMolecules.optionFields.bulkOption.title\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <Textarea\n className=\"my-2\"\n data-cy=\"bulk-add-options-textarea\"\n data-testid=\"bulk-add-options-textarea\"\n label={t(\"neetoMolecules.optionFields.bulkOption.label\")}\n placeholder={t(\"neetoMolecules.optionFields.bulkOption.label\")}\n rows={8}\n value={optionsString}\n helpText={\n <Trans\n i18nKey=\"neetoMolecules.optionFields.bulkOption.helpText\"\n components={{\n Link: (\n <Button\n className=\"text-xs\"\n href={bulkAddHelpDocUrl}\n style=\"link\"\n target=\"_blank\"\n />\n ),\n }}\n />\n }\n onChange={e => setOptionsString(e.target.value)}\n />\n </Modal.Body>\n <Modal.Footer className=\"space-x-2\">\n <Button\n data-cy=\"bulk-add-options-done-button\"\n data-testid=\"bulk-add-options-done-button\"\n label={t(\"neetoMolecules.common.actions.submit\")}\n onClick={handleSave}\n />\n <Button\n data-cy=\"bulk-add-options-cancel-button\"\n data-testid=\"bulk-add-options-cancel-button\"\n label={t(\"neetoMolecules.common.actions.cancel\")}\n style=\"text\"\n onClick={handleClose}\n />\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default BulkOptionModal;\n","import i18next from \"i18next\";\n\nexport const DEFAULT_OPTION_LABEL = i18next.t(\n \"neetoMolecules.optionFields.defaultOption\"\n);\n","import { isNotPresent } from \"neetocist\";\nimport { Typography } from \"neetoui\";\n\nconst FormError = ({ error }) => {\n if (isNotPresent(error) || typeof error !== \"string\") return null;\n\n return (\n <Typography\n className=\"neeto-ui-input__error\"\n data-testid=\"validation-error-container\"\n style=\"body3\"\n >\n {error}\n </Typography>\n );\n};\n\nexport default FormError;\n","import { slugify } from \"neetocist\";\nimport { pluck, prop, reject } from \"ramda\";\n\nexport const getOrderedOptions = (options = []) =>\n options.sort((a, b) => a.position - b.position);\n\nexport const filterDeletedRecords = (options, destroyFlagName) =>\n reject(prop(destroyFlagName), options);\n\nexport const randomId = () => Math.random().toString(36).substring(2, 13);\n\nexport const getUniqueOptionId = option =>\n option.altId ||\n option.id?.toString() ||\n option.position?.toString() ||\n slugify(option.label ?? \"\");\n\nexport const generatePlaceholder = (itemLabel, count) =>\n `${itemLabel} ${count + 1}`;\n\nexport const generateLabel = (itemLabel, options, count) => {\n const labelCount = count || options.length + 1;\n const tempLabel = `${itemLabel} ${labelCount}`;\n const isDuplicateLabel = pluck(\"label\", options).includes(tempLabel);\n\n return isDuplicateLabel\n ? generateLabel(itemLabel, options, labelCount + 1)\n : tempLabel;\n};\n\nexport const resolveFormikValue = (path, values) => {\n if (!path || typeof path !== \"string\") {\n return [];\n }\n\n return path\n .replace(/\\[|\\]/g, \".\")\n .split(\".\")\n .filter(Boolean)\n .reduce(\n (acc, key) => (acc && acc[key] !== undefined ? acc[key] : undefined),\n values\n );\n};\n","import { useRef, useState } from \"react\";\n\nimport { useField } from \"formik\";\nimport { isNotEmpty, findIndexById } from \"neetocist\";\nimport { append, assocPath, move, remove, prop } from \"ramda\";\n\nimport { filterDeletedRecords, generateLabel, randomId } from \"../utils\";\n\nconst attachPosition = options =>\n options.map((option, index) => ({ ...option, position: index }));\n\nconst useOptionFields = ({\n options,\n onChange,\n shouldDestroy,\n itemLabel,\n shouldResetEmptyOptionOnBlur,\n name,\n destroyFlagName,\n isNewItemsPrefilled,\n isAddOptionEnabled,\n}) => {\n const [shouldFocus, setShouldFocus] = useState(false);\n const editingOptionDetailsRef = useRef({ id: \"\", value: \"\" });\n\n const [__, _, helpers] = useField(name);\n const setValue = helpers.setValue;\n\n const handleChange = (id, value, isOnBlur = false) => {\n // Ignores onBlur events if the value in the input field is not cleared.\n // The value will be reset to the initial value if user clicks outside after clearing the value.\n // This can be controlled using the prop `shouldResetEmptyOptionOnBlur`.\n if (isOnBlur && (isNotEmpty(value) || !shouldResetEmptyOptionOnBlur)) {\n return;\n }\n\n const index = findIndexById(id, options);\n if (editingOptionDetailsRef.current.id !== id) {\n editingOptionDetailsRef.current = {\n id,\n value: options[index].label,\n };\n }\n\n // Resets the value to initial value if the user cleared and blurred the input field.\n const valueToUpdate = isOnBlur\n ? editingOptionDetailsRef.current.value\n : value;\n\n const nextOptions = assocPath([index, \"label\"], valueToUpdate, options);\n setValue(nextOptions);\n onChange?.(nextOptions);\n };\n\n const handleDelete = (id, arrayHelpers) => {\n let nextOptions;\n\n const indexToDelete = findIndexById(id, options);\n if (shouldDestroy) {\n nextOptions = assocPath([indexToDelete, destroyFlagName], true, options);\n setValue(nextOptions);\n } else {\n arrayHelpers.remove(indexToDelete);\n nextOptions = attachPosition(remove(indexToDelete, 1, options));\n }\n\n onChange?.(nextOptions);\n };\n\n const handleDragEnd = ({ source, destination }) => {\n // When dragged outside of draggable\n if (destination === null) return;\n\n const deletedOptions = options.filter(prop(destroyFlagName));\n const filteredOptions = filterDeletedRecords(options, destroyFlagName);\n const nextOptions = move(source.index, destination.index, filteredOptions);\n const finalOptions = attachPosition(nextOptions);\n setValue([...deletedOptions, ...finalOptions]);\n onChange?.([...deletedOptions, ...finalOptions]);\n };\n\n const handleAddOption = () => {\n const id = randomId();\n const newOption = {\n id: `draft-${id}`,\n altId: `alt-${id}`,\n label: isNewItemsPrefilled ? generateLabel(itemLabel, options) : \"\",\n position: options.length,\n };\n setShouldFocus(true);\n\n const nextOptions = append(newOption, options);\n setValue(nextOptions);\n onChange?.(nextOptions);\n };\n\n const handleBulkAddOption = optionsString => {\n setShouldFocus(true);\n const position = options.length;\n const newOptions = optionsString\n .trim()\n .split(/\\r?\\n|,/)\n .filter(isNotEmpty)\n .map((option, index) => ({\n id: `draft-${randomId()}`,\n altId: `alt-${randomId()}`,\n label: option.trim(),\n position: position + index,\n }));\n\n const nextOptions = [...options, ...newOptions];\n setValue(nextOptions);\n onChange?.(nextOptions);\n };\n\n const handleKeyDown = event => {\n if (event.key !== \"Enter\") return;\n\n const form = event.target.form;\n const inputs = Array.from(form.querySelectorAll(\"input\"));\n const currentInput = inputs.indexOf(event.target);\n\n if (currentInput >= inputs.length - 1) {\n isAddOptionEnabled && handleAddOption();\n } else {\n inputs[currentInput + 1]?.focus();\n event.preventDefault();\n }\n event.stopPropagation();\n };\n\n return {\n shouldFocus,\n handleAddOption,\n handleBulkAddOption,\n handleChange,\n handleKeyDown,\n handleDelete,\n handleDragEnd,\n };\n};\n\nexport default useOptionFields;\n","import { Drag } from \"neetoicons\";\n\nconst DragHandle = props => (\n <div\n className=\"neeto-ui-text-gray-500 flex h-8 flex-shrink-0 cursor-grab items-center\"\n data-cy=\"drag-handle\"\n data-testid=\"drag-handle\"\n {...props}\n >\n <Drag size={16} strokeWidth={2} />\n </div>\n);\n\nexport default DragHandle;\n","import { withT } from \"neetocommons/react-utils\";\nimport { Delete, Edit } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\n\nimport DragHandle from \"./DragHandle\";\n\nconst BlockOption = withT(\n ({\n t,\n innerRef,\n hideDeleteOption = false,\n draggableProps,\n dragHandleProps,\n label,\n onEdit,\n handleDeleteClick,\n id,\n isDraggable,\n optionIndex,\n arrayHelpers,\n }) => (\n <div ref={innerRef} {...draggableProps} {...dragHandleProps}>\n <div\n className=\"neeto-ui-border-gray-400 hover:neeto-ui-bg-gray-200 neeto-ui-rounded-sm shadow-xs group relative mb-2 flex h-10 cursor-pointer items-center gap-2 border p-3 transition-colors duration-300 ease-in-out\"\n data-cy=\"address-field-block\"\n >\n {isDraggable && (\n <DragHandle\n {...dragHandleProps}\n data-testid={`drag-handle-${optionIndex}`}\n />\n )}\n <Typography\n className=\"flex-grow leading-4\"\n data-cy=\"address-text-field\"\n data-testid=\"address-text-field\"\n style=\"body2\"\n >\n {label}\n </Typography>\n <div className=\"flex items-center justify-end gap-2 opacity-0 group-hover:opacity-100\">\n <Button\n className=\"neeto-ui-rounded hover:neeto-ui-bg-gray-400 p-1\"\n data-cy=\"address-field-edit-button\"\n data-testid=\"address-field-edit-button\"\n icon={Edit}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.edit\"),\n position: \"top\",\n touch: [\"hold\", 500],\n }}\n onClick={() => onEdit(id)}\n />\n {!hideDeleteOption && (\n <Button\n className=\"neeto-ui-rounded hover:neeto-ui-bg-gray-400 p-1\"\n data-cy=\"address-field-delete-button\"\n data-testid={`delete-option-button-${optionIndex}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.delete\"),\n position: \"top\",\n touch: [\"hold\", 500],\n }}\n onClick={() => handleDeleteClick(id, arrayHelpers)}\n />\n )}\n </div>\n </div>\n </div>\n )\n);\n\nexport default BlockOption;\n","import { useField } from \"formik\";\nimport { ImageUpload, Delete } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport { Input, Textarea } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport DragHandle from \"./DragHandle\";\n\nconst InputOption = ({\n shouldFocus,\n hideDeleteOption = false,\n innerRef,\n draggableProps,\n dragHandleProps,\n isPictureChoice,\n onKeyDown,\n onDelete,\n onChange,\n optionIndex,\n disabled,\n isTextArea,\n id,\n isDraggable,\n name,\n placeholder,\n onBlur,\n arrayHelpers,\n}) => {\n const { t } = useTranslation();\n const Component = isTextArea ? Textarea : Input;\n const [field] = useField(name);\n\n return (\n <div\n ref={innerRef}\n {...{ ...draggableProps, ...dragHandleProps }}\n data-cy=\"form-block-options\"\n >\n <div className=\"nf-input-options group relative mb-2 flex items-start gap-1\">\n {isDraggable && (\n <DragHandle\n {...dragHandleProps}\n data-testid={`drag-handle-${optionIndex}`}\n />\n )}\n {isPictureChoice && (\n <>\n {optionIndex === 0 ? (\n <img\n className=\"neeto-ui-rounded-sm h-8 w-8 cursor-pointer overflow-hidden object-cover\"\n data-testid=\"picture-choice-option\"\n src=\"https://i.pravatar.cc/300\"\n />\n ) : (\n <div className=\"hover:neeto-ui-bg-gray-100 neeto-ui-border-primary-600 neeto-ui-text-primary-800 neeto-ui-rounded-sm flex h-8 w-8 cursor-pointer items-center justify-center border border-dashed transition-all duration-300 ease-in-out\">\n <ImageUpload size={16} />\n </div>\n )}\n </>\n )}\n <Component\n {...{ disabled, name, onKeyDown, placeholder }}\n autoFocus={shouldFocus}\n data-cy={`option-input-${optionIndex}`}\n data-testid={`${\n isTextArea ? \"textarea-option\" : \"input-option\"\n }-${optionIndex}`}\n suffix={\n !hideDeleteOption && (\n <Button\n {...{ disabled }}\n className=\"p-0.5\"\n data-cy={`delete-option-button-${optionIndex}`}\n data-testid={`delete-option-button-${optionIndex}`}\n icon={Delete}\n size=\"small\"\n style=\"text\"\n tooltipProps={{\n content: t(\"neetoMolecules.common.actions.delete\"),\n position: \"top\",\n touch: [\"hold\", 500],\n }}\n onClick={() => onDelete(id, arrayHelpers)}\n />\n )\n }\n onChange={({ target }) => onChange(id, target.value)}\n onFocus={({ target }) => target.select()}\n onBlur={(event, ...args) => {\n onChange(id, event.target.value, true);\n onBlur?.(id, event.target.value);\n field.onBlur(event, ...args);\n }}\n />\n </div>\n </div>\n );\n};\n\nexport default InputOption;\n","import BlockOption from \"./BlockOption\";\nimport InputOption from \"./InputOption\";\nimport { generatePlaceholder } from \"./utils\";\n\nconst OptionField = ({\n option,\n editable,\n dragHandleProps,\n draggableProps,\n handleDeleteClick,\n hideDeleteOption,\n innerRef,\n onEdit,\n draggable,\n disabled,\n isPictureChoice,\n isTextArea,\n shouldFocus,\n isEditable,\n itemLabel,\n handleChange,\n handleKeyDown,\n name,\n optionIndex,\n onBlur,\n arrayHelpers,\n}) => {\n if (!editable) {\n return (\n <BlockOption\n {...{\n arrayHelpers,\n dragHandleProps,\n draggableProps,\n handleDeleteClick,\n hideDeleteOption,\n innerRef,\n onEdit,\n optionIndex,\n }}\n id={option.id}\n isDraggable={draggable && !disabled}\n label={option.label}\n />\n );\n }\n\n return (\n <InputOption\n {...{\n arrayHelpers,\n dragHandleProps,\n draggableProps,\n hideDeleteOption,\n innerRef,\n isPictureChoice,\n isTextArea,\n name,\n onBlur,\n optionIndex,\n shouldFocus,\n }}\n disabled={!isEditable || disabled}\n id={option.id}\n isDraggable={draggable && !disabled}\n placeholder={generatePlaceholder(itemLabel, optionIndex)}\n onChange={handleChange}\n onDelete={handleDeleteClick}\n onKeyDown={handleKeyDown}\n />\n );\n};\n\nexport default OptionField;\n","import { useState } from \"react\";\n\nimport { DragDropContext, Droppable, Draggable } from \"@hello-pangea/dnd\";\nimport { FieldArray, useField } from \"formik\";\nimport { findIndexById, noop } from \"neetocist\";\nimport { Plus } from \"neetoicons\";\nimport { Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport BulkOptionModal from \"./BulkOptionModal\";\nimport { DEFAULT_OPTION_LABEL } from \"./constants\";\nimport FormError from \"./FormError\";\nimport useOptionFields from \"./hooks/useOptionFields\";\nimport OptionField from \"./OptionField\";\nimport {\n getOrderedOptions,\n getUniqueOptionId,\n resolveFormikValue,\n} from \"./utils\";\n\nconst OptionFields = ({\n name,\n error,\n onDelete,\n onChange,\n onBlur,\n onEdit = noop,\n buttonProps = {},\n minOptions = 0,\n draggable = false,\n editable = true,\n disabled = false,\n isAddOptionEnabled = true,\n isDeleteOptionEnabled = true,\n isPictureChoice = false,\n isTextArea = false,\n shouldDestroy = false,\n destroyFlagName = \"deleted\",\n shouldResetEmptyOptionOnBlur = true,\n isNewItemsPrefilled = true,\n itemLabel = DEFAULT_OPTION_LABEL,\n bulkActionProps = { enabled: false, bulkAddHelpDocUrl: \"\" },\n}) => {\n const { t } = useTranslation();\n const [isBulkOptionModalOpen, setIsBulkOptionModalOpen] = useState(false);\n const [field, meta] = useField(name);\n const fieldError = meta.touched ? meta.error : null;\n\n const options = field.value;\n\n const {\n shouldFocus,\n handleAddOption,\n handleBulkAddOption,\n handleChange,\n handleKeyDown,\n handleDelete,\n handleDragEnd,\n } = useOptionFields({\n options,\n onChange,\n shouldDestroy,\n itemLabel,\n shouldResetEmptyOptionOnBlur,\n destroyFlagName,\n name,\n isNewItemsPrefilled,\n isAddOptionEnabled,\n });\n\n // Temporarily disables the modifications to options when changed are getting saved to server\n // This condition only needed for server id generated types\n let isEditable = true;\n if (shouldDestroy) isEditable = options.every(prop(\"id\") || error);\n\n const orderedOptions = getOrderedOptions(options, destroyFlagName);\n const filteredOptions = orderedOptions.filter(\n ({ [destroyFlagName]: deleted }) => !deleted\n );\n\n const hideDeleteOption =\n filteredOptions.length <= minOptions || disabled || !isDeleteOptionEnabled;\n\n const optionFieldProps = {\n disabled,\n draggable,\n editable,\n handleChange,\n handleDeleteClick: onDelete ?? handleDelete,\n handleKeyDown,\n hideDeleteOption,\n isEditable,\n isPictureChoice,\n isTextArea,\n itemLabel,\n onEdit,\n onBlur,\n shouldFocus,\n };\n\n // To fix the element positioned incorrectly while dragging when in a pane or modal.\n // https://github.com/hello-pangea/dnd/issues/560#issuecomment-1679201455\n const renderDragClone = (provided, _, rubric) => {\n const draggingIndex = rubric[\"source\"].index;\n const option = filteredOptions[draggingIndex];\n const formikIndex = findIndexById(option.id, options);\n\n return (\n <OptionField\n {...{ ...optionFieldProps, option }}\n dragHandleProps={provided.dragHandleProps}\n innerRef={null}\n name={`${name}.${formikIndex}.label`}\n optionIndex={draggingIndex}\n draggableProps={{\n ...provided.draggableProps,\n style: { ...provided.draggableProps.style, zIndex: 999999 },\n }}\n />\n );\n };\n\n return (\n <form onSubmit={e => e.preventDefault()}>\n <DragDropContext onDragEnd={handleDragEnd}>\n <Droppable\n droppableId={`neeto-molecules-option-fields-${name}`}\n isDropDisabled={!draggable}\n renderClone={renderDragClone}\n >\n {({ innerRef, droppableProps, placeholder }) => (\n <div ref={innerRef} {...droppableProps}>\n <FieldArray {...{ name }}>\n {arrayHelpers => {\n const options = resolveFormikValue(\n name,\n arrayHelpers.form.values\n );\n\n return options?.map((option, index) => {\n if (option?.[destroyFlagName]) return null;\n\n const optionIndex = findIndexById(\n option.id,\n filteredOptions\n );\n\n return (\n <Draggable\n dataKey={getUniqueOptionId(option)}\n draggableId={getUniqueOptionId(option)}\n index={optionIndex}\n isDragDisabled={!draggable}\n key={getUniqueOptionId(option)}\n >\n {({ innerRef, draggableProps, dragHandleProps }) => (\n <OptionField\n {...{\n ...optionFieldProps,\n arrayHelpers,\n dragHandleProps,\n draggableProps,\n innerRef,\n option,\n optionIndex,\n }}\n name={`${name}.${index}.label`}\n />\n )}\n </Draggable>\n );\n });\n }}\n </FieldArray>\n {placeholder}\n <FormError error={error ?? fieldError} />\n </div>\n )}\n </Droppable>\n <div className=\"mt-4 flex items-center justify-between\">\n {isAddOptionEnabled && (\n <Button\n data-cy=\"add-option-link\"\n data-testid=\"add-option-link\"\n disabled={!isEditable}\n icon={Plus}\n iconPosition=\"left\"\n label={t(\"neetoMolecules.optionFields.addOption\")}\n size=\"small\"\n style=\"link\"\n onClick={handleAddOption}\n {...buttonProps}\n />\n )}\n {bulkActionProps.enabled && (\n <Button\n data-cy=\"add-bulk-option-link\"\n data-testid=\"add-bulk-option-link\"\n disabled={!isEditable}\n label={t(\"neetoMolecules.optionFields.addBulk\")}\n size=\"small\"\n style=\"text\"\n onClick={() => setIsBulkOptionModalOpen(true)}\n />\n )}\n </div>\n </DragDropContext>\n <BulkOptionModal\n bulkAddHelpDocUrl={bulkActionProps.bulkAddHelpDocUrl}\n handleBulkAdd={handleBulkAddOption}\n isOpen={isBulkOptionModalOpen}\n onClose={() => setIsBulkOptionModalOpen(false)}\n />\n </form>\n );\n};\n\nOptionFields.propTypes = {\n /**\n * Props to be passed to the add option button\n */\n buttonProps: PropTypes.object,\n\n /**\n * Enable drag and drop functionality\n */\n draggable: PropTypes.bool,\n\n /**\n * Enable edit functionality\n */\n editable: PropTypes.bool,\n\n /**\n * Error message to be displayed\n */\n error: PropTypes.string,\n\n /**\n * The field name in Formik state.\n */\n name: PropTypes.string,\n\n /**\n * Function to handle option deletion\n */\n onDelete: PropTypes.func,\n\n /**\n * Function to handle option edit\n *\n */\n onEdit: PropTypes.func,\n\n /**\n * Minimum number of options required\n */\n minOptions: PropTypes.number,\n\n /**\n * Options array\n */\n options: PropTypes.array,\n\n /**\n * Prop to switch between Input and Textarea\n */\n isTextArea: PropTypes.bool,\n\n /**\n * Function to handle options change\n */\n onChange: PropTypes.func,\n\n /**\n * Prop to switch between PictureChoice and normal options\n * */\n isPictureChoice: PropTypes.bool,\n\n /**\n * Prop to set the item label\n * */\n\n itemLabel: PropTypes.string,\n\n /**\n * Props for bulk action\n */\n bulkActionProps: PropTypes.shape({\n enabled: PropTypes.bool,\n bulkAddHelpDocUrl: PropTypes.string,\n }),\n /**\n * To disable the input fields.\n */\n disabled: PropTypes.bool,\n /**\n * This prop can be used to show/hide the `Add option` button below the options list.\n */\n isAddOptionEnabled: PropTypes.bool,\n /**\n * This prop can be used to show/hide the delete button in each of the option.\n */\n isDeleteOptionEnabled: PropTypes.bool,\n /**\n * The input fields emptied by the user will be reset to the original value\n * when the field is blurred. This prop can be used to disable resetting the empty value on blur.\n */\n shouldResetEmptyOptionOnBlur: PropTypes.bool,\n /**\n * Whether the option should be soft deleted. If yes, the specified destroy flag name\n * will be set to true, otherwise it will be removed from the array.\n */\n shouldDestroy: PropTypes.bool,\n /**\n * The flag to set to true when the shouldDestroy is set to true.\n * Default value is `deleted`.\n */\n destroyFlagName: PropTypes.string,\n /**\n * Function to be called when input field is blurred. The arguments includes\n * the field id and the value.\n */\n onBlur: PropTypes.func,\n /**\n * Whether to set a default value to the label of the new items added.\n * Default value is true, the items will have the `itemLabel` + index as the default value.\n * If set to false, the initial value will be \"\".\n */\n isNewItemsPrefilled: PropTypes.bool,\n};\n\nexport default OptionFields;\n"],"names":["BulkOptionModal","_ref","isOpen","onClose","handleBulkAdd","bulkAddHelpDocUrl","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","optionsString","setOptionsString","handleSave","handleClose","_jsxs","Modal","children","_jsx","Header","Typography","style","Body","Textarea","className","label","placeholder","rows","value","helpText","Trans","i18nKey","components","Link","Button","href","target","onChange","e","Footer","onClick","DEFAULT_OPTION_LABEL","i18next","FormError","error","isNotPresent","getOrderedOptions","options","arguments","length","undefined","sort","a","b","position","filterDeletedRecords","destroyFlagName","reject","prop","randomId","Math","random","toString","substring","getUniqueOptionId","option","_option$id","_option$position","_option$label","altId","id","slugify","generatePlaceholder","itemLabel","count","concat","generateLabel","labelCount","tempLabel","isDuplicateLabel","pluck","includes","resolveFormikValue","path","values","replace","split","filter","Boolean","reduce","acc","key","attachPosition","map","index","_objectSpread","useOptionFields","shouldDestroy","shouldResetEmptyOptionOnBlur","name","isNewItemsPrefilled","isAddOptionEnabled","shouldFocus","setShouldFocus","editingOptionDetailsRef","useRef","_useField","useField","_useField2","__","_","helpers","setValue","handleChange","isOnBlur","isNotEmpty","findIndexById","current","valueToUpdate","nextOptions","assocPath","handleDelete","arrayHelpers","indexToDelete","remove","handleDragEnd","_ref2","source","destination","deletedOptions","filteredOptions","move","finalOptions","_toConsumableArray","handleAddOption","newOption","append","handleBulkAddOption","newOptions","trim","handleKeyDown","event","form","inputs","Array","from","querySelectorAll","currentInput","indexOf","_inputs","focus","preventDefault","stopPropagation","DragHandle","props","Drag","size","strokeWidth","BlockOption","withT","innerRef","_ref$hideDeleteOption","hideDeleteOption","draggableProps","dragHandleProps","onEdit","handleDeleteClick","isDraggable","optionIndex","ref","icon","Edit","tooltipProps","content","touch","Delete","InputOption","isPictureChoice","onKeyDown","onDelete","disabled","isTextArea","onBlur","Component","Input","field","_Fragment","src","ImageUpload","autoFocus","suffix","onFocus","_ref3","select","_len","args","_key","apply","OptionField","editable","draggable","isEditable","OptionFields","_ref$onEdit","noop","_ref$buttonProps","buttonProps","_ref$minOptions","minOptions","_ref$draggable","_ref$editable","_ref$disabled","_ref$isAddOptionEnabl","_ref$isDeleteOptionEn","isDeleteOptionEnabled","_ref$isPictureChoice","_ref$isTextArea","_ref$shouldDestroy","_ref$destroyFlagName","_ref$shouldResetEmpty","_ref$isNewItemsPrefil","_ref$itemLabel","_ref$bulkActionProps","bulkActionProps","enabled","isBulkOptionModalOpen","setIsBulkOptionModalOpen","meta","fieldError","touched","_useOptionFields","every","orderedOptions","deleted","optionFieldProps","renderDragClone","provided","rubric","draggingIndex","formikIndex","zIndex","onSubmit","DragDropContext","onDragEnd","Droppable","droppableId","isDropDisabled","renderClone","droppableProps","FieldArray","Draggable","dataKey","draggableId","isDragDisabled","_ref4","Plus","iconPosition"],"mappings":"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"}
|