@bigbinary/neeto-molecules 3.15.16 → 3.15.18

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.
Files changed (99) hide show
  1. package/dist/BoardView.js +2 -2
  2. package/dist/BoardView.js.map +1 -1
  3. package/dist/BrowserSupport.js +3 -3
  4. package/dist/BrowserSupport.js.map +1 -1
  5. package/dist/Builder.js +1 -1
  6. package/dist/Builder.js.map +1 -1
  7. package/dist/CalendarView.js +2 -2
  8. package/dist/CalendarView.js.map +1 -1
  9. package/dist/CustomDomain.js +1 -1
  10. package/dist/CustomDomainDashboard.js +2 -2
  11. package/dist/CustomDomainDashboard.js.map +1 -1
  12. package/dist/DateRangeFilter.js +4 -4
  13. package/dist/DateRangeFilter.js.map +1 -1
  14. package/dist/DocumentEditor.js +7 -7
  15. package/dist/DocumentEditor.js.map +1 -1
  16. package/dist/ErrorPage.js +3 -3
  17. package/dist/ErrorPage.js.map +1 -1
  18. package/dist/FloatingActionMenu.js +7 -7
  19. package/dist/FloatingActionMenu.js.map +1 -1
  20. package/dist/IconPicker.js +2 -2
  21. package/dist/IconPicker.js.map +1 -1
  22. package/dist/InlineInput.js +3 -3
  23. package/dist/InlineInput.js.map +1 -1
  24. package/dist/KeyboardShortcuts.js +2 -2
  25. package/dist/KeyboardShortcuts.js.map +1 -1
  26. package/dist/OptionFields.js +7 -7
  27. package/dist/OptionFields.js.map +1 -1
  28. package/dist/PhoneNumber.js +2 -2
  29. package/dist/ProductEmbed.js +2 -2
  30. package/dist/ProductEmbed.js.map +1 -1
  31. package/dist/Rename.js +3 -3
  32. package/dist/Rename.js.map +1 -1
  33. package/dist/Search.js +2 -2
  34. package/dist/Search.js.map +1 -1
  35. package/dist/SendToFields.js +1 -1
  36. package/dist/SendToFields.js.map +1 -1
  37. package/dist/SessionEnvironment.js +1 -1
  38. package/dist/Settings.js +1 -1
  39. package/dist/Settings.js.map +1 -1
  40. package/dist/ShareViaLink.js +1 -1
  41. package/dist/ShareViaLink.js.map +1 -1
  42. package/dist/SuffixedInput.js +1 -1
  43. package/dist/SuffixedInput.js.map +1 -1
  44. package/dist/ToggleFeatureCard.js +1 -1
  45. package/dist/ToggleFeatureCard.js.map +1 -1
  46. package/dist/cjs/BoardView.js +2 -2
  47. package/dist/cjs/BoardView.js.map +1 -1
  48. package/dist/cjs/BrowserSupport.js +3 -3
  49. package/dist/cjs/BrowserSupport.js.map +1 -1
  50. package/dist/cjs/Builder.js +1 -1
  51. package/dist/cjs/Builder.js.map +1 -1
  52. package/dist/cjs/CalendarView.js +2 -2
  53. package/dist/cjs/CalendarView.js.map +1 -1
  54. package/dist/cjs/CustomDomain.js +1 -1
  55. package/dist/cjs/CustomDomainDashboard.js +2 -2
  56. package/dist/cjs/CustomDomainDashboard.js.map +1 -1
  57. package/dist/cjs/DateRangeFilter.js +4 -4
  58. package/dist/cjs/DateRangeFilter.js.map +1 -1
  59. package/dist/cjs/DocumentEditor.js +7 -7
  60. package/dist/cjs/DocumentEditor.js.map +1 -1
  61. package/dist/cjs/ErrorPage.js +3 -3
  62. package/dist/cjs/ErrorPage.js.map +1 -1
  63. package/dist/cjs/FloatingActionMenu.js +7 -7
  64. package/dist/cjs/FloatingActionMenu.js.map +1 -1
  65. package/dist/cjs/IconPicker.js +2 -2
  66. package/dist/cjs/IconPicker.js.map +1 -1
  67. package/dist/cjs/InlineInput.js +3 -3
  68. package/dist/cjs/InlineInput.js.map +1 -1
  69. package/dist/cjs/KeyboardShortcuts.js +2 -2
  70. package/dist/cjs/KeyboardShortcuts.js.map +1 -1
  71. package/dist/cjs/OptionFields.js +7 -7
  72. package/dist/cjs/OptionFields.js.map +1 -1
  73. package/dist/cjs/PhoneNumber.js +1 -1
  74. package/dist/cjs/ProductEmbed.js +2 -2
  75. package/dist/cjs/ProductEmbed.js.map +1 -1
  76. package/dist/cjs/Rename.js +3 -3
  77. package/dist/cjs/Rename.js.map +1 -1
  78. package/dist/cjs/Search.js +2 -2
  79. package/dist/cjs/Search.js.map +1 -1
  80. package/dist/cjs/SendToFields.js +1 -1
  81. package/dist/cjs/SendToFields.js.map +1 -1
  82. package/dist/cjs/SessionEnvironment.js +1 -1
  83. package/dist/cjs/Settings.js +1 -1
  84. package/dist/cjs/Settings.js.map +1 -1
  85. package/dist/cjs/ShareViaLink.js +1 -1
  86. package/dist/cjs/ShareViaLink.js.map +1 -1
  87. package/dist/cjs/SuffixedInput.js +1 -1
  88. package/dist/cjs/SuffixedInput.js.map +1 -1
  89. package/dist/cjs/ToggleFeatureCard.js +1 -1
  90. package/dist/cjs/ToggleFeatureCard.js.map +1 -1
  91. package/dist/cjs/{index-C4nGx1kT.js → index-CQS1l-EP.js} +2 -2
  92. package/dist/cjs/{index-C4nGx1kT.js.map → index-CQS1l-EP.js.map} +1 -1
  93. package/dist/cjs/{phone-number-CPwIzezl.js → phone-number-BN-c0rfv.js} +2 -2
  94. package/dist/cjs/{phone-number-CPwIzezl.js.map → phone-number-BN-c0rfv.js.map} +1 -1
  95. package/dist/{index-BXT7Ma5O.js → index-7O-LlcxR.js} +2 -2
  96. package/dist/{index-BXT7Ma5O.js.map → index-7O-LlcxR.js.map} +1 -1
  97. package/dist/{phone-number-BQlzXtYl.js → phone-number-CXCBroLh.js} +2 -2
  98. package/dist/{phone-number-BQlzXtYl.js.map → phone-number-CXCBroLh.js.map} +1 -1
  99. package/package.json +46 -44
@@ -173,7 +173,7 @@ var InlineInput = /*#__PURE__*/forwardRef(function (props, ref) {
173
173
  }),
174
174
  onChange: function onChange(e) {
175
175
  var _otherProps$onChange;
176
- otherProps === null || otherProps === void 0 ? void 0 : (_otherProps$onChange = otherProps.onChange) === null || _otherProps$onChange === void 0 ? void 0 : _otherProps$onChange.call(otherProps, e);
176
+ otherProps === null || otherProps === void 0 || (_otherProps$onChange = otherProps.onChange) === null || _otherProps$onChange === void 0 || _otherProps$onChange.call(otherProps, e);
177
177
  setInternalValue(e.target.value);
178
178
  }
179
179
  }))
@@ -202,7 +202,7 @@ var FormikInlineInput = function FormikInlineInput(_ref) {
202
202
  var handleSubmit = function handleSubmit(value) {
203
203
  var _props$handleSubmit;
204
204
  setValue(value);
205
- (_props$handleSubmit = props.handleSubmit) === null || _props$handleSubmit === void 0 ? void 0 : _props$handleSubmit.call(props, value);
205
+ (_props$handleSubmit = props.handleSubmit) === null || _props$handleSubmit === void 0 || _props$handleSubmit.call(props, value);
206
206
  return submitForm();
207
207
  };
208
208
  return /*#__PURE__*/jsx(InlineInput, _objectSpread(_objectSpread(_objectSpread({
@@ -212,7 +212,7 @@ var FormikInlineInput = function FormikInlineInput(_ref) {
212
212
  handleCancel: function handleCancel() {
213
213
  var _props$handleCancel;
214
214
  resetForm();
215
- (_props$handleCancel = props.handleCancel) === null || _props$handleCancel === void 0 ? void 0 : _props$handleCancel.call(props);
215
+ (_props$handleCancel = props.handleCancel) === null || _props$handleCancel === void 0 || _props$handleCancel.call(props);
216
216
  }
217
217
  }, _objectSpread(_objectSpread({
218
218
  handleSubmit: handleSubmit
@@ -1 +1 @@
1
- {"version":3,"file":"InlineInput.js","sources":["../src/components/InlineInput/constants.js","../src/components/InlineInput/utils.js","../src/components/InlineInput/InlineInput.jsx","../src/components/InlineInput/FormikInlineInput.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const TOOLTIP_PROPS = {\n save: {\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n delay: 300,\n },\n cancel: {\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n delay: 300,\n },\n};\n","export const mergeRefs =\n (...refs) =>\n node =>\n refs.forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { forwardRef, useEffect, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, noop } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport useStateWithDependency from \"neetocommons/react-utils/useStateWithDependency\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\n\nimport { TOOLTIP_PROPS } from \"./constants\";\nimport \"./inlineinput.scss\";\nimport { mergeRefs } from \"./utils\";\n\nconst InlineInput = forwardRef((props, ref) => {\n const {\n saveOnBlur = false,\n clearOnSave = false,\n nullable = false,\n value = \"\",\n isSaving,\n className = \"\",\n handleSubmit = noop,\n handleCancel = noop,\n submitButtonProps = {},\n cancelButtonProps = {},\n dirty,\n onInlineInputBlur = noop,\n ...otherProps\n } = props;\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [internalValue, setInternalValue] = useStateWithDependency(value ?? \"\");\n const inputRef = useRef(null);\n const inputWrapperRef = useRef(null);\n const trimmedValue = internalValue && internalValue?.trim();\n const isValidValue =\n nullable || (isNotEmpty(trimmedValue) && isNotNil(trimmedValue));\n\n const isDirty = internalValue !== value || dirty;\n\n const handleFocusOut = () => {\n if (!isValidValue || isSubmitting) return;\n\n onInlineInputBlur(trimmedValue);\n\n if (saveOnBlur && isDirty) {\n onSubmit();\n\n return;\n }\n\n onCancel();\n };\n\n useOnClickOutside(inputWrapperRef, handleFocusOut);\n\n const onSubmit = async () => {\n setIsSubmitting(true);\n await handleSubmit(trimmedValue);\n setIsSubmitting(false);\n clearOnSave && setInternalValue(\"\");\n };\n\n const onCancel = () => {\n handleCancel(trimmedValue);\n };\n\n const closeRef = useHotkeys(\n \"escape\",\n event => {\n event.stopPropagation();\n onCancel();\n },\n { mode: \"scoped\" }\n );\n\n const submitRef = useHotkeys([\"command+return\", \"return\"], () => onSubmit(), {\n mode: \"scoped\",\n enabled: isValidValue,\n });\n\n useEffect(() => inputRef.current && inputRef.current.focus(), [isSubmitting]);\n\n return (\n <div\n className={classnames(\"flex flex-grow\", { [className]: className })}\n ref={inputWrapperRef}\n >\n <Input\n disableTrimOnBlur\n className=\"neeto-molecules-autosave-input\"\n data-testid=\"neeto-molecules-autosave-input\"\n disabled={isSubmitting}\n ref={mergeRefs(inputRef, closeRef, submitRef)}\n value={internalValue}\n {...otherProps}\n suffix={\n <>\n <Button\n data-testid=\"neeto-molecules-autosave-input-save\"\n icon={Check}\n loading={isSubmitting || isSaving}\n size=\"small\"\n style=\"text\"\n tabIndex={-1}\n tooltipProps={TOOLTIP_PROPS[\"save\"]}\n onClick={onSubmit}\n {...submitButtonProps}\n disabled={\n !isValidValue ||\n isSubmitting ||\n isSaving ||\n submitButtonProps.disabled ||\n !isDirty\n }\n />\n <Button\n {...{ ref }}\n data-testid=\"neeto-molecules-autosave-input-cancel\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n tabIndex={-1}\n tooltipProps={TOOLTIP_PROPS[\"cancel\"]}\n onClick={onCancel}\n {...cancelButtonProps}\n disabled={isSubmitting || isSaving || cancelButtonProps.disabled}\n />\n </>\n }\n onChange={e => {\n otherProps?.onChange?.(e);\n setInternalValue(e.target.value);\n }}\n />\n </div>\n );\n});\n\nInlineInput.displayName = \"InlineInput\";\n\nInlineInput.propTypes = {\n /**\n * To provide additional classes to the component.\n */\n className: PropTypes.string,\n /**\n * To specify the text to be displayed in the component.\n */\n value: PropTypes.string,\n /**\n * To enable submission of empty values.\n */\n nullable: PropTypes.bool,\n /**\n * To specify whether the value is being saved.\n */\n isSaving: PropTypes.bool,\n /**\n * To specify whether to save the value on blur.\n */\n saveOnBlur: PropTypes.bool,\n /**\n * To specify whether to clear the input on save.\n */\n clearOnSave: PropTypes.bool,\n /**\n * To specify additional props for submit button.\n */\n submitButtonProps: PropTypes.object,\n /**\n * To specify additional props for cancel button.\n */\n cancelButtonProps: PropTypes.object,\n /**\n * Function to be called on clicking the submit button.\n */\n handleSubmit: PropTypes.func,\n /**\n * Function to be called on clicking the cancel button .\n */\n handleCancel: PropTypes.func,\n};\n\nexport default InlineInput;\n","import { useField, useFormikContext } from \"formik\";\nimport { omit } from \"ramda\";\n\nimport InlineInput from \"./InlineInput\";\n\nconst FormikInlineInput = ({ name, ...props }) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n\n const { submitForm, isSubmitting, resetForm, dirty } = useFormikContext();\n\n const handleSubmit = value => {\n setValue(value);\n\n props.handleSubmit?.(value);\n\n return submitForm();\n };\n\n return (\n <InlineInput\n error={meta.touched ? meta.error : \"\"}\n isSaving={isSubmitting}\n {...props}\n handleCancel={() => {\n resetForm();\n props.handleCancel?.();\n }}\n {...{ handleSubmit, ...omit([\"onBlur\"], field), dirty }}\n onInlineInputBlur={trimmedValue => {\n setValue(trimmedValue);\n setTouched(true);\n }}\n />\n );\n};\n\nexport default FormikInlineInput;\n"],"names":["TOOLTIP_PROPS","save","content","t","position","delay","cancel","mergeRefs","_len","arguments","length","refs","Array","_key","node","forEach","ref","current","InlineInput","forwardRef","props","_props$saveOnBlur","saveOnBlur","_props$clearOnSave","clearOnSave","_props$nullable","nullable","_props$value","value","isSaving","_props$className","className","_props$handleSubmit","handleSubmit","noop","_props$handleCancel","handleCancel","_props$submitButtonPr","submitButtonProps","_props$cancelButtonPr","cancelButtonProps","dirty","_props$onInlineInputB","onInlineInputBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isSubmitting","setIsSubmitting","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","internalValue","setInternalValue","inputRef","useRef","inputWrapperRef","trimmedValue","trim","isValidValue","isNotEmpty","isNotNil","isDirty","handleFocusOut","onSubmit","onCancel","useOnClickOutside","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","apply","closeRef","useHotkeys","event","stopPropagation","mode","submitRef","enabled","useEffect","focus","_jsx","classnames","_defineProperty","children","Input","_objectSpread","disableTrimOnBlur","disabled","suffix","_jsxs","_Fragment","Button","icon","Check","loading","size","style","tabIndex","tooltipProps","onClick","Close","onChange","e","_otherProps$onChange","call","target","displayName","FormikInlineInput","name","_useField","useField","_useField2","field","meta","_useField2$","setValue","setTouched","_useFormikContext","useFormikContext","submitForm","resetForm","error","touched","omit"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,IAAI,EAAE;AACJC,IAAAA,OAAO,EAAEC,CAAC,CAAC,oCAAoC,CAAC;AAChDC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,KAAK,EAAE,GAAA;GACR;AACDC,EAAAA,MAAM,EAAE;AACNJ,IAAAA,OAAO,EAAEC,CAAC,CAAC,sCAAsC,CAAC;AAClDC,IAAAA,QAAQ,EAAE,KAAK;AACfC,IAAAA,KAAK,EAAE,GAAA;AACT,GAAA;AACF,CAAC;;;;;ACbM,IAAME,SAAS,GACpB,SADWA,SAASA,GAAA;AAAA,EAAA,KAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAChBC,IAAI,GAAAC,IAAAA,KAAA,CAAAJ,IAAA,GAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAAJF,IAAAA,IAAI,CAAAE,IAAA,CAAAJ,GAAAA,SAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,OACR,UAAAC,IAAI,EAAA;AAAA,IAAA,OACFH,IAAI,CAACI,OAAO,CAAC,UAAAC,GAAG,EAAA;AAAA,MAAA,OACd,OAAOA,GAAG,KAAK,UAAU,GAAGA,GAAG,CAACF,IAAI,CAAC,GAAIE,GAAG,CAACC,OAAO,GAAGH,IAAK,CAAA;AAAA,KAC9D,CAAC,CAAA;AAAA,GAAA,CAAA;AAAA,CAAA;;;;;ACWCI,IAAAA,WAAW,gBAAGC,UAAU,CAAC,UAACC,KAAK,EAAEJ,GAAG,EAAK;AAC7C,EAAA,IAAAK,iBAAA,GAcID,KAAK,CAbPE,UAAU;AAAVA,IAAAA,UAAU,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,iBAAA;IAAAE,kBAAA,GAahBH,KAAK,CAZPI,WAAW;AAAXA,IAAAA,WAAW,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,kBAAA;IAAAE,eAAA,GAYjBL,KAAK,CAXPM,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;IAAAE,YAAA,GAWdP,KAAK,CAVPQ,KAAK;AAALA,IAAAA,KAAK,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,YAAA;IACVE,QAAQ,GASNT,KAAK,CATPS,QAAQ;IAAAC,gBAAA,GASNV,KAAK,CARPW,SAAS;AAATA,IAAAA,SAAS,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,gBAAA;IAAAE,mBAAA,GAQZZ,KAAK,CAPPa,YAAY;AAAZA,IAAAA,YAAY,GAAAD,mBAAA,KAAGE,KAAAA,CAAAA,GAAAA,IAAI,GAAAF,mBAAA;IAAAG,mBAAA,GAOjBf,KAAK,CANPgB,YAAY;AAAZA,IAAAA,YAAY,GAAAD,mBAAA,KAAGD,KAAAA,CAAAA,GAAAA,IAAI,GAAAC,mBAAA;IAAAE,qBAAA,GAMjBjB,KAAK,CALPkB,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAKpBnB,KAAK,CAJPoB,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,qBAAA;IACtBE,KAAK,GAGHrB,KAAK,CAHPqB,KAAK;IAAAC,qBAAA,GAGHtB,KAAK,CAFPuB,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAGR,KAAAA,CAAAA,GAAAA,IAAI,GAAAQ,qBAAA;AACrBE,IAAAA,UAAU,GAAAC,wBAAA,CACXzB,KAAK,EAAA0B,WAAA,CAAA,CAAA;AAET,EAAA,IAAAC,SAAA,GAAwCC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAhDI,IAAAA,YAAY,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,eAAe,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;EACpC,IAAAI,qBAAA,GAA0CC,sBAAsB,CAAC1B,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAK,GAAI,EAAE,CAAC;IAAA2B,sBAAA,GAAAL,cAAA,CAAAG,qBAAA,EAAA,CAAA,CAAA;AAAtEG,IAAAA,aAAa,GAAAD,sBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gBAAgB,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;AACtC,EAAA,IAAMG,QAAQ,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAC7B,EAAA,IAAMC,eAAe,GAAGD,MAAM,CAAC,IAAI,CAAC,CAAA;AACpC,EAAA,IAAME,YAAY,GAAGL,aAAa,KAAIA,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAbA,aAAa,CAAEM,IAAI,EAAE,CAAA,CAAA;AAC3D,EAAA,IAAMC,YAAY,GAChBrC,QAAQ,IAAKsC,UAAU,CAACH,YAAY,CAAC,IAAII,QAAQ,CAACJ,YAAY,CAAE,CAAA;AAElE,EAAA,IAAMK,OAAO,GAAGV,aAAa,KAAK5B,KAAK,IAAIa,KAAK,CAAA;AAEhD,EAAA,IAAM0B,cAAc,GAAG,SAAjBA,cAAcA,GAAS;AAC3B,IAAA,IAAI,CAACJ,YAAY,IAAIZ,YAAY,EAAE,OAAA;IAEnCR,iBAAiB,CAACkB,YAAY,CAAC,CAAA;IAE/B,IAAIvC,UAAU,IAAI4C,OAAO,EAAE;AACzBE,MAAAA,QAAQ,EAAE,CAAA;AAEV,MAAA,OAAA;AACF,KAAA;AAEAC,IAAAA,QAAQ,EAAE,CAAA;GACX,CAAA;AAEDC,EAAAA,iBAAiB,CAACV,eAAe,EAAEO,cAAc,CAAC,CAAA;AAElD,EAAA,IAAMC,QAAQ,gBAAA,YAAA;IAAA,IAAAG,IAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAA,GAAA;AAAA,MAAA,OAAAF,mBAAA,CAAAG,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;YACf5B,eAAe,CAAC,IAAI,CAAC,CAAA;AAAC0B,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;YAAA,OAChB/C,YAAY,CAAC4B,YAAY,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA;YAChCT,eAAe,CAAC,KAAK,CAAC,CAAA;AACtB5B,YAAAA,WAAW,IAAIiC,gBAAgB,CAAC,EAAE,CAAC,CAAA;AAAC,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAqB,QAAA,CAAAG,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAN,OAAA,CAAA,CAAA;KACrC,CAAA,CAAA,CAAA;AAAA,IAAA,OAAA,SALKP,QAAQA,GAAA;AAAA,MAAA,OAAAG,IAAA,CAAAW,KAAA,CAAA,IAAA,EAAAzE,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;GAKb,EAAA,CAAA;AAED,EAAA,IAAM4D,QAAQ,GAAG,SAAXA,QAAQA,GAAS;IACrBjC,YAAY,CAACyB,YAAY,CAAC,CAAA;GAC3B,CAAA;EAED,IAAMsB,QAAQ,GAAGC,UAAU,CACzB,QAAQ,EACR,UAAAC,KAAK,EAAI;IACPA,KAAK,CAACC,eAAe,EAAE,CAAA;AACvBjB,IAAAA,QAAQ,EAAE,CAAA;AACZ,GAAC,EACD;AAAEkB,IAAAA,IAAI,EAAE,QAAA;AAAS,GACnB,CAAC,CAAA;EAED,IAAMC,SAAS,GAAGJ,UAAU,CAAC,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE,YAAA;IAAA,OAAMhB,QAAQ,EAAE,CAAA;GAAE,EAAA;AAC3EmB,IAAAA,IAAI,EAAE,QAAQ;AACdE,IAAAA,OAAO,EAAE1B,YAAAA;AACX,GAAC,CAAC,CAAA;AAEF2B,EAAAA,SAAS,CAAC,YAAA;IAAA,OAAMhC,QAAQ,CAACzC,OAAO,IAAIyC,QAAQ,CAACzC,OAAO,CAAC0E,KAAK,EAAE,CAAA;GAAE,EAAA,CAACxC,YAAY,CAAC,CAAC,CAAA;AAE7E,EAAA,oBACEyC,GAAA,CAAA,KAAA,EAAA;IACE7D,SAAS,EAAE8D,UAAU,CAAC,gBAAgB,EAAAC,eAAA,CAAA,EAAA,EAAK/D,SAAS,EAAGA,SAAS,CAAE,CAAE;AACpEf,IAAAA,GAAG,EAAE4C,eAAgB;AAAAmC,IAAAA,QAAA,eAErBH,GAAA,CAACI,KAAK,EAAAC,eAAA,CAAAA,eAAA,CAAA;MACJC,iBAAiB,EAAA,IAAA;AACjBnE,MAAAA,SAAS,EAAC,gCAAgC;AAC1C,MAAA,aAAA,EAAY,gCAAgC;AAC5CoE,MAAAA,QAAQ,EAAEhD,YAAa;MACvBnC,GAAG,EAAET,SAAS,CAACmD,QAAQ,EAAEyB,QAAQ,EAAEK,SAAS,CAAE;AAC9C5D,MAAAA,KAAK,EAAE4B,aAAAA;AAAc,KAAA,EACjBZ,UAAU,CAAA,EAAA,EAAA,EAAA;MACdwD,MAAM,eACJC,IAAA,CAAAC,QAAA,EAAA;AAAAP,QAAAA,QAAA,gBACEH,GAAA,CAACW,MAAM,EAAAN,eAAA,CAAAA,eAAA,CAAA;AACL,UAAA,aAAA,EAAY,qCAAqC;AACjDO,UAAAA,IAAI,EAAEC,KAAM;UACZC,OAAO,EAAEvD,YAAY,IAAItB,QAAS;AAClC8E,UAAAA,IAAI,EAAC,OAAO;AACZC,UAAAA,KAAK,EAAC,MAAM;UACZC,QAAQ,EAAE,CAAC,CAAE;AACbC,UAAAA,YAAY,EAAE9G,aAAa,CAAC,MAAM,CAAE;AACpC+G,UAAAA,OAAO,EAAE3C,QAAAA;AAAS,SAAA,EACd9B,iBAAiB,CAAA,EAAA,EAAA,EAAA;AACrB6D,UAAAA,QAAQ,EACN,CAACpC,YAAY,IACbZ,YAAY,IACZtB,QAAQ,IACRS,iBAAiB,CAAC6D,QAAQ,IAC1B,CAACjC,OAAAA;SAEJ,CAAA,CAAC,eACF0B,GAAA,CAACW,MAAM,EAAAN,eAAA,CAAAA,eAAA,CAAA;AACCjF,UAAAA,GAAG,EAAHA,GAAG;AACT,UAAA,aAAA,EAAY,uCAAuC;AACnDwF,UAAAA,IAAI,EAAEQ,KAAM;AACZL,UAAAA,IAAI,EAAC,OAAO;AACZC,UAAAA,KAAK,EAAC,MAAM;UACZC,QAAQ,EAAE,CAAC,CAAE;AACbC,UAAAA,YAAY,EAAE9G,aAAa,CAAC,QAAQ,CAAE;AACtC+G,UAAAA,OAAO,EAAE1C,QAAAA;AAAS,SAAA,EACd7B,iBAAiB,CAAA,EAAA,EAAA,EAAA;AACrB2D,UAAAA,QAAQ,EAAEhD,YAAY,IAAItB,QAAQ,IAAIW,iBAAiB,CAAC2D,QAAAA;AAAS,SAAA,CAClE,CAAC,CAAA;AAAA,OACF,CACH;AACDc,MAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEC,CAAC,EAAI;AAAA,QAAA,IAAAC,oBAAA,CAAA;AACbvE,QAAAA,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAuE,oBAAA,GAAVvE,UAAU,CAAEqE,QAAQ,MAAA,IAAA,IAAAE,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAApBA,oBAAA,CAAAC,IAAA,CAAAxE,UAAU,EAAasE,CAAC,CAAC,CAAA;AACzBzD,QAAAA,gBAAgB,CAACyD,CAAC,CAACG,MAAM,CAACzF,KAAK,CAAC,CAAA;AAClC,OAAA;KACD,CAAA,CAAA;AAAC,GACC,CAAC,CAAA;AAEV,CAAC,EAAC;AAEFV,WAAW,CAACoG,WAAW,GAAG,aAAa;;;;;ACzIvC,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAhD,IAAA,EAA2B;AAAA,EAAA,IAArBiD,IAAI,GAAAjD,IAAA,CAAJiD,IAAI;AAAKpG,IAAAA,KAAK,GAAAyB,wBAAA,CAAA0B,IAAA,EAAAzB,SAAA,CAAA,CAAA;AACzC,EAAA,IAAA2E,SAAA,GAAgDC,QAAQ,CAACF,IAAI,CAAC;IAAAG,UAAA,GAAAzE,cAAA,CAAAuE,SAAA,EAAA,CAAA,CAAA;AAAvDG,IAAAA,KAAK,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,IAAI,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAAG,IAAAA,WAAA,GAAAH,UAAA,CAAA,CAAA,CAAA;IAAII,QAAQ,GAAAD,WAAA,CAARC,QAAQ;IAAEC,UAAU,GAAAF,WAAA,CAAVE,UAAU,CAAA;AAE1C,EAAA,IAAAC,iBAAA,GAAuDC,gBAAgB,EAAE;IAAjEC,UAAU,GAAAF,iBAAA,CAAVE,UAAU;IAAEhF,YAAY,GAAA8E,iBAAA,CAAZ9E,YAAY;IAAEiF,SAAS,GAAAH,iBAAA,CAATG,SAAS;IAAE3F,KAAK,GAAAwF,iBAAA,CAALxF,KAAK,CAAA;AAElD,EAAA,IAAMR,YAAY,GAAG,SAAfA,YAAYA,CAAGL,KAAK,EAAI;AAAA,IAAA,IAAAI,mBAAA,CAAA;IAC5B+F,QAAQ,CAACnG,KAAK,CAAC,CAAA;AAEf,IAAA,CAAAI,mBAAA,GAAAZ,KAAK,CAACa,YAAY,MAAAD,IAAAA,IAAAA,mBAAA,KAAlBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAAAoF,IAAA,CAAAhG,KAAK,EAAgBQ,KAAK,CAAC,CAAA;IAE3B,OAAOuG,UAAU,EAAE,CAAA;GACpB,CAAA;EAED,oBACEvC,GAAA,CAAC1E,WAAW,EAAA+E,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;IACVoC,KAAK,EAAER,IAAI,CAACS,OAAO,GAAGT,IAAI,CAACQ,KAAK,GAAG,EAAG;AACtCxG,IAAAA,QAAQ,EAAEsB,YAAAA;AAAa,GAAA,EACnB/B,KAAK,CAAA,EAAA,EAAA,EAAA;AACTgB,IAAAA,YAAY,EAAE,SAAdA,YAAYA,GAAQ;AAAA,MAAA,IAAAD,mBAAA,CAAA;AAClBiG,MAAAA,SAAS,EAAE,CAAA;AACX,MAAA,CAAAjG,mBAAA,GAAAf,KAAK,CAACgB,YAAY,MAAA,IAAA,IAAAD,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAlBA,mBAAA,CAAAiF,IAAA,CAAAhG,KAAqB,CAAC,CAAA;AACxB,KAAA;GAAE6E,EAAAA,aAAA,CAAAA,aAAA,CAAA;AACIhE,IAAAA,YAAY,EAAZA,YAAAA;AAAY,GAAA,EAAKsG,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAEX,KAAK,CAAC,CAAA,EAAA,EAAA,EAAA;AAAEnF,IAAAA,KAAK,EAALA,KAAAA;AAAK,GAAA,CAAA,CAAA,EAAA,EAAA,EAAA;AACrDE,IAAAA,iBAAiB,EAAE,SAAnBA,iBAAiBA,CAAEkB,YAAY,EAAI;MACjCkE,QAAQ,CAAClE,YAAY,CAAC,CAAA;MACtBmE,UAAU,CAAC,IAAI,CAAC,CAAA;AAClB,KAAA;AAAE,GAAA,CACH,CAAC,CAAA;AAEN;;;;"}
1
+ {"version":3,"file":"InlineInput.js","sources":["../src/components/InlineInput/constants.js","../src/components/InlineInput/utils.js","../src/components/InlineInput/InlineInput.jsx","../src/components/InlineInput/FormikInlineInput.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const TOOLTIP_PROPS = {\n save: {\n content: t(\"neetoMolecules.common.actions.save\"),\n position: \"top\",\n delay: 300,\n },\n cancel: {\n content: t(\"neetoMolecules.common.actions.cancel\"),\n position: \"top\",\n delay: 300,\n },\n};\n","export const mergeRefs =\n (...refs) =>\n node =>\n refs.forEach(ref =>\n typeof ref === \"function\" ? ref(node) : (ref.current = node)\n );\n","import { forwardRef, useEffect, useState, useRef } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, noop } from \"neetocist\";\nimport useOnClickOutside from \"neetocommons/react-utils/useOnClickOutside\";\nimport useStateWithDependency from \"neetocommons/react-utils/useStateWithDependency\";\nimport useHotkeys from \"neetohotkeys\";\nimport { Check, Close } from \"neetoicons\";\nimport { Button, Input } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isNotNil } from \"ramda\";\n\nimport { TOOLTIP_PROPS } from \"./constants\";\nimport \"./inlineinput.scss\";\nimport { mergeRefs } from \"./utils\";\n\nconst InlineInput = forwardRef((props, ref) => {\n const {\n saveOnBlur = false,\n clearOnSave = false,\n nullable = false,\n value = \"\",\n isSaving,\n className = \"\",\n handleSubmit = noop,\n handleCancel = noop,\n submitButtonProps = {},\n cancelButtonProps = {},\n dirty,\n onInlineInputBlur = noop,\n ...otherProps\n } = props;\n\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [internalValue, setInternalValue] = useStateWithDependency(value ?? \"\");\n const inputRef = useRef(null);\n const inputWrapperRef = useRef(null);\n const trimmedValue = internalValue && internalValue?.trim();\n const isValidValue =\n nullable || (isNotEmpty(trimmedValue) && isNotNil(trimmedValue));\n\n const isDirty = internalValue !== value || dirty;\n\n const handleFocusOut = () => {\n if (!isValidValue || isSubmitting) return;\n\n onInlineInputBlur(trimmedValue);\n\n if (saveOnBlur && isDirty) {\n onSubmit();\n\n return;\n }\n\n onCancel();\n };\n\n useOnClickOutside(inputWrapperRef, handleFocusOut);\n\n const onSubmit = async () => {\n setIsSubmitting(true);\n await handleSubmit(trimmedValue);\n setIsSubmitting(false);\n clearOnSave && setInternalValue(\"\");\n };\n\n const onCancel = () => {\n handleCancel(trimmedValue);\n };\n\n const closeRef = useHotkeys(\n \"escape\",\n event => {\n event.stopPropagation();\n onCancel();\n },\n { mode: \"scoped\" }\n );\n\n const submitRef = useHotkeys([\"command+return\", \"return\"], () => onSubmit(), {\n mode: \"scoped\",\n enabled: isValidValue,\n });\n\n useEffect(() => inputRef.current && inputRef.current.focus(), [isSubmitting]);\n\n return (\n <div\n className={classnames(\"flex flex-grow\", { [className]: className })}\n ref={inputWrapperRef}\n >\n <Input\n disableTrimOnBlur\n className=\"neeto-molecules-autosave-input\"\n data-testid=\"neeto-molecules-autosave-input\"\n disabled={isSubmitting}\n ref={mergeRefs(inputRef, closeRef, submitRef)}\n value={internalValue}\n {...otherProps}\n suffix={\n <>\n <Button\n data-testid=\"neeto-molecules-autosave-input-save\"\n icon={Check}\n loading={isSubmitting || isSaving}\n size=\"small\"\n style=\"text\"\n tabIndex={-1}\n tooltipProps={TOOLTIP_PROPS[\"save\"]}\n onClick={onSubmit}\n {...submitButtonProps}\n disabled={\n !isValidValue ||\n isSubmitting ||\n isSaving ||\n submitButtonProps.disabled ||\n !isDirty\n }\n />\n <Button\n {...{ ref }}\n data-testid=\"neeto-molecules-autosave-input-cancel\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n tabIndex={-1}\n tooltipProps={TOOLTIP_PROPS[\"cancel\"]}\n onClick={onCancel}\n {...cancelButtonProps}\n disabled={isSubmitting || isSaving || cancelButtonProps.disabled}\n />\n </>\n }\n onChange={e => {\n otherProps?.onChange?.(e);\n setInternalValue(e.target.value);\n }}\n />\n </div>\n );\n});\n\nInlineInput.displayName = \"InlineInput\";\n\nInlineInput.propTypes = {\n /**\n * To provide additional classes to the component.\n */\n className: PropTypes.string,\n /**\n * To specify the text to be displayed in the component.\n */\n value: PropTypes.string,\n /**\n * To enable submission of empty values.\n */\n nullable: PropTypes.bool,\n /**\n * To specify whether the value is being saved.\n */\n isSaving: PropTypes.bool,\n /**\n * To specify whether to save the value on blur.\n */\n saveOnBlur: PropTypes.bool,\n /**\n * To specify whether to clear the input on save.\n */\n clearOnSave: PropTypes.bool,\n /**\n * To specify additional props for submit button.\n */\n submitButtonProps: PropTypes.object,\n /**\n * To specify additional props for cancel button.\n */\n cancelButtonProps: PropTypes.object,\n /**\n * Function to be called on clicking the submit button.\n */\n handleSubmit: PropTypes.func,\n /**\n * Function to be called on clicking the cancel button .\n */\n handleCancel: PropTypes.func,\n};\n\nexport default InlineInput;\n","import { useField, useFormikContext } from \"formik\";\nimport { omit } from \"ramda\";\n\nimport InlineInput from \"./InlineInput\";\n\nconst FormikInlineInput = ({ name, ...props }) => {\n const [field, meta, { setValue, setTouched }] = useField(name);\n\n const { submitForm, isSubmitting, resetForm, dirty } = useFormikContext();\n\n const handleSubmit = value => {\n setValue(value);\n\n props.handleSubmit?.(value);\n\n return submitForm();\n };\n\n return (\n <InlineInput\n error={meta.touched ? meta.error : \"\"}\n isSaving={isSubmitting}\n {...props}\n handleCancel={() => {\n resetForm();\n props.handleCancel?.();\n }}\n {...{ handleSubmit, ...omit([\"onBlur\"], field), dirty }}\n onInlineInputBlur={trimmedValue => {\n setValue(trimmedValue);\n setTouched(true);\n }}\n />\n );\n};\n\nexport default FormikInlineInput;\n"],"names":["TOOLTIP_PROPS","save","content","t","position","delay","cancel","mergeRefs","_len","arguments","length","refs","Array","_key","node","forEach","ref","current","InlineInput","forwardRef","props","_props$saveOnBlur","saveOnBlur","_props$clearOnSave","clearOnSave","_props$nullable","nullable","_props$value","value","isSaving","_props$className","className","_props$handleSubmit","handleSubmit","noop","_props$handleCancel","handleCancel","_props$submitButtonPr","submitButtonProps","_props$cancelButtonPr","cancelButtonProps","dirty","_props$onInlineInputB","onInlineInputBlur","otherProps","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isSubmitting","setIsSubmitting","_useStateWithDependen","useStateWithDependency","_useStateWithDependen2","internalValue","setInternalValue","inputRef","useRef","inputWrapperRef","trimmedValue","trim","isValidValue","isNotEmpty","isNotNil","isDirty","handleFocusOut","onSubmit","onCancel","useOnClickOutside","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","stop","apply","closeRef","useHotkeys","event","stopPropagation","mode","submitRef","enabled","useEffect","focus","_jsx","classnames","_defineProperty","children","Input","_objectSpread","disableTrimOnBlur","disabled","suffix","_jsxs","_Fragment","Button","icon","Check","loading","size","style","tabIndex","tooltipProps","onClick","Close","onChange","e","_otherProps$onChange","call","target","displayName","FormikInlineInput","name","_useField","useField","_useField2","field","meta","_useField2$","setValue","setTouched","_useFormikContext","useFormikContext","submitForm","resetForm","error","touched","omit"],"mappings":"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"}
@@ -95,9 +95,9 @@ var convertHotKeyToWindows = function convertHotKeyToWindows(hotkey) {
95
95
  return hotkey;
96
96
  };
97
97
  var convertHotkeyToUsersPlatform = function convertHotkeyToUsersPlatform(hotkey) {
98
- var _platformInfo$os, _platformInfo$os$fami;
98
+ var _platformInfo$os;
99
99
  var platformInfo = platform.parse(navigator.userAgent);
100
- var isOSX = (_platformInfo$os = platformInfo.os) === null || _platformInfo$os === void 0 ? void 0 : (_platformInfo$os$fami = _platformInfo$os.family) === null || _platformInfo$os$fami === void 0 ? void 0 : _platformInfo$os$fami.includes(OS.mac);
100
+ var isOSX = (_platformInfo$os = platformInfo.os) === null || _platformInfo$os === void 0 || (_platformInfo$os = _platformInfo$os.family) === null || _platformInfo$os === void 0 ? void 0 : _platformInfo$os.includes(OS.mac);
101
101
  if (isOSX) return hotkey;
102
102
  return convertHotKeyToWindows(hotkey);
103
103
  };
@@ -1 +1 @@
1
- {"version":3,"file":"KeyboardShortcuts.js","sources":["../src/components/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js","../src/components/KeyboardShortcuts/Pane/constants.js","../src/components/KeyboardShortcuts/Pane/utils.js","../src/components/KeyboardShortcuts/Pane/HotKey.jsx","../src/components/KeyboardShortcuts/Pane/HotKeyList.jsx","../src/components/KeyboardShortcuts/Pane/index.jsx","../src/components/KeyboardShortcuts/index.js"],"sourcesContent":["import withImmutableActions from \"neetocommons/react-utils/withImmutableActions\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useKeyboardShortcutsStore = create(\n withImmutableActions(set => ({\n isOpen: false,\n\n setIsOpen: arg => {\n if (typeof arg === \"function\") {\n set(state => ({ isOpen: arg(state.isOpen) }));\n } else {\n set({ isOpen: arg });\n }\n },\n }))\n);\n\nconst useKeyboardShortcutsPaneState = () => {\n const { isOpen, setIsOpen } = useKeyboardShortcutsStore.pick();\n\n return [isOpen, setIsOpen];\n};\n\nexport default useKeyboardShortcutsPaneState;\n","export const KEY_SHORTFORM_MAP = {\n command: \"⌘\",\n escape: \"esc\",\n control: \"ctrl\",\n option: \"opt\",\n return: \"enter\",\n};\n\nexport const MAC_TO_WINDOWS_KEYS_MAP = {\n option: \"alt\",\n command: \"ctrl\",\n return: \"enter\",\n delete: \"backspace\",\n};\n\nexport const OS = { mac: \"OS X\", windows: \"Windows\" };\n\nexport const FULL_SHORTCUTS_LINK_PROP_NAME = \"fullShortcutsLink\";\n\nexport const TOOLTIP_CONTENT = {\n \"⌘\": \"command\",\n esc: \"escape\",\n ctrl: \"control\",\n opt: \"option\",\n backspace: \"delete\",\n};\n","import i18next from \"i18next\";\nimport platform from \"platform\";\nimport { toPairs } from \"ramda\";\n\nimport {\n KEY_SHORTFORM_MAP,\n MAC_TO_WINDOWS_KEYS_MAP,\n OS,\n TOOLTIP_CONTENT,\n} from \"./constants\";\n\nconst isMultipleHotkey = hotkey => Array.isArray(hotkey);\n\nconst replaceKeys = (hotkey, keyName, replaceWith) =>\n isMultipleHotkey(hotkey)\n ? hotkey.map(item => item.replaceAll(keyName, replaceWith))\n : hotkey.replaceAll(keyName, replaceWith);\n\nconst convertHotKeyToWindows = hotkey => {\n toPairs(MAC_TO_WINDOWS_KEYS_MAP).forEach(([macKey, windowsKey]) => {\n hotkey = replaceKeys(hotkey, macKey, windowsKey);\n });\n\n return hotkey;\n};\n\nexport const convertHotkeyToUsersPlatform = hotkey => {\n const platformInfo = platform.parse(navigator.userAgent);\n const isOSX = platformInfo.os?.family?.includes(OS.mac);\n if (isOSX) return hotkey;\n\n return convertHotKeyToWindows(hotkey);\n};\n\nexport const shortenHotKey = hotkey => {\n let result = hotkey;\n Object.entries(KEY_SHORTFORM_MAP).forEach(([longform, shortform]) => {\n result = result.replaceAll(longform, shortform);\n });\n\n return result;\n};\n\nexport const getGlobalShortcuts = () => ({\n [i18next.t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")]: {\n openKeyboardShortcutsPane: {\n sequence: \"shift+/\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openKeyboardShortcutsPane\"\n ),\n },\n close: {\n sequence: \"esc\",\n description: i18next.t(\"neetoMolecules.keyboardShortcuts.global.close\"),\n },\n submitForm: {\n sequence: \"command+return\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.submitForm\"\n ),\n },\n },\n});\n\nexport const getTooltipProps = key => {\n if (TOOLTIP_CONTENT[key]) {\n return {\n position: \"top\",\n content: TOOLTIP_CONTENT[key],\n followCursor: \"horizontal\",\n };\n }\n\n return null;\n};\n","import { memo, Fragment } from \"react\";\n\n// eslint-disable-next-line @bigbinary/neeto/use-webpack-alias\nimport { Kbd, Typography } from \"@bigbinary/neetoui\";\n\nimport {\n convertHotkeyToUsersPlatform,\n shortenHotKey,\n getTooltipProps,\n} from \"./utils\";\n\nconst HotKey = ({ description, sequence }) => {\n const hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));\n const isSequentialHotkey = hotkey.includes(\" \");\n const isSimultaneousHotkey = hotkey.includes(\"+\");\n const isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;\n let sequences = [];\n\n if (isSingleKeyHotkey) {\n sequences = [hotkey];\n } else if (isSequentialHotkey) {\n sequences = hotkey.split(\" \");\n } else if (isSimultaneousHotkey) {\n sequences = hotkey.split(\"+\");\n }\n\n return (\n <div className=\"my-3 w-full\">\n <div\n className=\"flex items-center justify-between gap-3\"\n data-cy=\"hotkey-item\"\n data-testid=\"hotkey-item\"\n >\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n <div className=\"flex flex-shrink-0 items-center gap-1\">\n {sequences.map((keyName, idx) => (\n <Fragment key={idx}>\n <Kbd {...{ keyName }} tooltipProps={getTooltipProps(keyName)} />\n {isSequentialHotkey && idx + 1 !== sequences.length && (\n <Kbd keyName=\"then\" />\n )}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport default memo(HotKey);\n","import { memo } from \"react\";\n\n// eslint-disable-next-line @bigbinary/neeto/use-webpack-alias\nimport { Button, Typography } from \"@bigbinary/neetoui\";\nimport { withT } from \"neetocommons/react-utils\";\n\nimport { FULL_SHORTCUTS_LINK_PROP_NAME } from \"./constants\";\nimport HotKey from \"./HotKey\";\n\nconst HotKeyList = withT(({ t, hotkeys }) =>\n Object.keys(hotkeys).map(categoryName => {\n const categoryValues = hotkeys[categoryName];\n const fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];\n\n return (\n <div className=\"mt-4 px-4\" key={categoryName}>\n <Typography style=\"h6\" textTransform=\"uppercase\" weight=\"bold\">\n {categoryName}\n </Typography>\n {Object.entries(categoryValues).map(\n ([, { sequence, description }]) =>\n sequence && <HotKey {...{ description, sequence }} key={sequence} />\n )}\n {fullShortcutsLink && (\n <Button\n className=\"mb-3\"\n href={fullShortcutsLink}\n style=\"link\"\n target=\"_blank\"\n label={t(\n \"neetoMolecules.keyboardShortcuts.viewFullListOfShortcuts\"\n )}\n />\n )}\n </div>\n );\n })\n);\n\nexport default memo(HotKeyList);\n","/* eslint-disable @bigbinary/neeto/use-webpack-alias */\nimport { Close } from \"@bigbinary/neeto-icons\";\nimport { Typography, Button } from \"@bigbinary/neetoui\";\nimport { manager } from \"@bigbinary/neetoui/managers\";\nimport classnames from \"classnames\";\nimport useHotkeys from \"neetohotkeys\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport HotKeyList from \"./HotKeyList\";\nimport \"./keyboard-shortcuts.scss\";\nimport { getGlobalShortcuts } from \"./utils\";\n\nimport useKeyboardShortcutsPaneState from \"../hooks/useKeyboardShortcutsPaneState\";\n\nconst KeyboardShortcutsPane = ({ productShortcuts = {} }) => {\n const [isOpen, setIsOpen] = useKeyboardShortcutsPaneState();\n const hasOverlays = manager.hasOverlays();\n // eslint-disable-next-line @bigbinary/neeto/no-dangling-constants\n const GLOBAL_SHORTCUTS = getGlobalShortcuts();\n const { t } = useTranslation();\n\n const shortcuts =\n GLOBAL_SHORTCUTS[t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")];\n\n useHotkeys(shortcuts.openKeyboardShortcutsPane.sequence, () =>\n setIsOpen(prevIsOpen => !prevIsOpen)\n );\n\n useHotkeys(shortcuts.close.sequence, () => setIsOpen(false));\n\n return (\n <div\n data-cy=\"keyboard-shortcuts-pane\"\n className={classnames(\n \"neeto-molecules-keyboard-shortcuts-pane neeto-ui-border-gray-300 transition-width neeto-ui-bg-white ml-auto h-screen overflow-hidden border-l duration-300 ease-in-out\",\n {\n \"w-80\": isOpen,\n \"w-0\": !isOpen,\n absolute: hasOverlays,\n \"right-0\": hasOverlays,\n }\n )}\n >\n <div className=\"h-full w-80 overflow-y-auto\">\n <div className=\"neeto-ui-border-gray-300 my-2 flex items-center justify-between border-b px-4 pb-2\">\n <Typography data-cy=\"keyboard-shortcuts-pane-title\" style=\"h4\">\n {t(\"neetoMolecules.keyboardShortcuts.title\")}\n </Typography>\n <Button\n data-cy=\"keyboard-shortcuts-pane-close-button\"\n icon={Close}\n style=\"text\"\n onClick={() => setIsOpen(false)}\n />\n </div>\n <HotKeyList hotkeys={GLOBAL_SHORTCUTS} />\n <HotKeyList hotkeys={productShortcuts} />\n </div>\n </div>\n );\n};\n\nKeyboardShortcutsPane.propTypes = {\n /**\n * Used to pass in the product specific keyboard shortcuts.\n */\n productShortcuts: PropTypes.object,\n};\n\nexport default KeyboardShortcutsPane;\n","import useKeyboardShortcutsPaneState from \"./hooks/useKeyboardShortcutsPaneState\";\nimport KeyboardShortcutsPane from \"./Pane\";\nimport { getGlobalShortcuts } from \"./Pane/utils\";\n\nconst KeyboardShortcuts = {\n Pane: KeyboardShortcutsPane,\n usePaneState: useKeyboardShortcutsPaneState,\n GLOBAL_SHORTCUTS: getGlobalShortcuts(),\n};\n\nexport default KeyboardShortcuts;\n"],"names":["useKeyboardShortcutsStore","create","withImmutableActions","set","isOpen","setIsOpen","arg","state","useKeyboardShortcutsPaneState","_useKeyboardShortcuts","store","shallow","KEY_SHORTFORM_MAP","command","escape","control","option","MAC_TO_WINDOWS_KEYS_MAP","OS","mac","windows","FULL_SHORTCUTS_LINK_PROP_NAME","TOOLTIP_CONTENT","esc","ctrl","opt","backspace","isMultipleHotkey","hotkey","Array","isArray","replaceKeys","keyName","replaceWith","map","item","replaceAll","convertHotKeyToWindows","toPairs","forEach","_ref","_ref2","_slicedToArray","macKey","windowsKey","convertHotkeyToUsersPlatform","_platformInfo$os","_platformInfo$os$fami","platformInfo","platform","parse","navigator","userAgent","isOSX","os","family","includes","shortenHotKey","result","Object","entries","_ref3","_ref4","longform","shortform","getGlobalShortcuts","_defineProperty","i18next","t","openKeyboardShortcutsPane","sequence","description","close","submitForm","getTooltipProps","key","position","content","followCursor","HotKey","isSequentialHotkey","isSimultaneousHotkey","isSingleKeyHotkey","sequences","split","_jsx","className","children","_jsxs","Typography","lineHeight","style","idx","Fragment","Kbd","tooltipProps","length","memo","HotKeyList","withT","hotkeys","keys","categoryName","categoryValues","fullShortcutsLink","textTransform","weight","_ref3$","_createElement","Button","href","target","label","KeyboardShortcutsPane","_ref$productShortcuts","productShortcuts","_useKeyboardShortcuts2","hasOverlays","manager","GLOBAL_SHORTCUTS","_useTranslation","useTranslation","shortcuts","useHotkeys","prevIsOpen","classnames","absolute","icon","Close","onClick","KeyboardShortcuts","Pane","usePaneState"],"mappings":"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"}
1
+ {"version":3,"file":"KeyboardShortcuts.js","sources":["../src/components/KeyboardShortcuts/hooks/useKeyboardShortcutsPaneState.js","../src/components/KeyboardShortcuts/Pane/constants.js","../src/components/KeyboardShortcuts/Pane/utils.js","../src/components/KeyboardShortcuts/Pane/HotKey.jsx","../src/components/KeyboardShortcuts/Pane/HotKeyList.jsx","../src/components/KeyboardShortcuts/Pane/index.jsx","../src/components/KeyboardShortcuts/index.js"],"sourcesContent":["import withImmutableActions from \"neetocommons/react-utils/withImmutableActions\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useKeyboardShortcutsStore = create(\n withImmutableActions(set => ({\n isOpen: false,\n\n setIsOpen: arg => {\n if (typeof arg === \"function\") {\n set(state => ({ isOpen: arg(state.isOpen) }));\n } else {\n set({ isOpen: arg });\n }\n },\n }))\n);\n\nconst useKeyboardShortcutsPaneState = () => {\n const { isOpen, setIsOpen } = useKeyboardShortcutsStore.pick();\n\n return [isOpen, setIsOpen];\n};\n\nexport default useKeyboardShortcutsPaneState;\n","export const KEY_SHORTFORM_MAP = {\n command: \"⌘\",\n escape: \"esc\",\n control: \"ctrl\",\n option: \"opt\",\n return: \"enter\",\n};\n\nexport const MAC_TO_WINDOWS_KEYS_MAP = {\n option: \"alt\",\n command: \"ctrl\",\n return: \"enter\",\n delete: \"backspace\",\n};\n\nexport const OS = { mac: \"OS X\", windows: \"Windows\" };\n\nexport const FULL_SHORTCUTS_LINK_PROP_NAME = \"fullShortcutsLink\";\n\nexport const TOOLTIP_CONTENT = {\n \"⌘\": \"command\",\n esc: \"escape\",\n ctrl: \"control\",\n opt: \"option\",\n backspace: \"delete\",\n};\n","import i18next from \"i18next\";\nimport platform from \"platform\";\nimport { toPairs } from \"ramda\";\n\nimport {\n KEY_SHORTFORM_MAP,\n MAC_TO_WINDOWS_KEYS_MAP,\n OS,\n TOOLTIP_CONTENT,\n} from \"./constants\";\n\nconst isMultipleHotkey = hotkey => Array.isArray(hotkey);\n\nconst replaceKeys = (hotkey, keyName, replaceWith) =>\n isMultipleHotkey(hotkey)\n ? hotkey.map(item => item.replaceAll(keyName, replaceWith))\n : hotkey.replaceAll(keyName, replaceWith);\n\nconst convertHotKeyToWindows = hotkey => {\n toPairs(MAC_TO_WINDOWS_KEYS_MAP).forEach(([macKey, windowsKey]) => {\n hotkey = replaceKeys(hotkey, macKey, windowsKey);\n });\n\n return hotkey;\n};\n\nexport const convertHotkeyToUsersPlatform = hotkey => {\n const platformInfo = platform.parse(navigator.userAgent);\n const isOSX = platformInfo.os?.family?.includes(OS.mac);\n if (isOSX) return hotkey;\n\n return convertHotKeyToWindows(hotkey);\n};\n\nexport const shortenHotKey = hotkey => {\n let result = hotkey;\n Object.entries(KEY_SHORTFORM_MAP).forEach(([longform, shortform]) => {\n result = result.replaceAll(longform, shortform);\n });\n\n return result;\n};\n\nexport const getGlobalShortcuts = () => ({\n [i18next.t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")]: {\n openKeyboardShortcutsPane: {\n sequence: \"shift+/\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.openKeyboardShortcutsPane\"\n ),\n },\n close: {\n sequence: \"esc\",\n description: i18next.t(\"neetoMolecules.keyboardShortcuts.global.close\"),\n },\n submitForm: {\n sequence: \"command+return\",\n description: i18next.t(\n \"neetoMolecules.keyboardShortcuts.global.submitForm\"\n ),\n },\n },\n});\n\nexport const getTooltipProps = key => {\n if (TOOLTIP_CONTENT[key]) {\n return {\n position: \"top\",\n content: TOOLTIP_CONTENT[key],\n followCursor: \"horizontal\",\n };\n }\n\n return null;\n};\n","import { memo, Fragment } from \"react\";\n\n// eslint-disable-next-line @bigbinary/neeto/use-webpack-alias\nimport { Kbd, Typography } from \"@bigbinary/neetoui\";\n\nimport {\n convertHotkeyToUsersPlatform,\n shortenHotKey,\n getTooltipProps,\n} from \"./utils\";\n\nconst HotKey = ({ description, sequence }) => {\n const hotkey = shortenHotKey(convertHotkeyToUsersPlatform(sequence));\n const isSequentialHotkey = hotkey.includes(\" \");\n const isSimultaneousHotkey = hotkey.includes(\"+\");\n const isSingleKeyHotkey = !isSequentialHotkey && !isSimultaneousHotkey;\n let sequences = [];\n\n if (isSingleKeyHotkey) {\n sequences = [hotkey];\n } else if (isSequentialHotkey) {\n sequences = hotkey.split(\" \");\n } else if (isSimultaneousHotkey) {\n sequences = hotkey.split(\"+\");\n }\n\n return (\n <div className=\"my-3 w-full\">\n <div\n className=\"flex items-center justify-between gap-3\"\n data-cy=\"hotkey-item\"\n data-testid=\"hotkey-item\"\n >\n <Typography\n className=\"neeto-ui-text-gray-800 min-w-0 flex-grow break-words\"\n lineHeight=\"normal\"\n style=\"body2\"\n >\n {description}\n </Typography>\n <div className=\"flex flex-shrink-0 items-center gap-1\">\n {sequences.map((keyName, idx) => (\n <Fragment key={idx}>\n <Kbd {...{ keyName }} tooltipProps={getTooltipProps(keyName)} />\n {isSequentialHotkey && idx + 1 !== sequences.length && (\n <Kbd keyName=\"then\" />\n )}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n};\n\nexport default memo(HotKey);\n","import { memo } from \"react\";\n\n// eslint-disable-next-line @bigbinary/neeto/use-webpack-alias\nimport { Button, Typography } from \"@bigbinary/neetoui\";\nimport { withT } from \"neetocommons/react-utils\";\n\nimport { FULL_SHORTCUTS_LINK_PROP_NAME } from \"./constants\";\nimport HotKey from \"./HotKey\";\n\nconst HotKeyList = withT(({ t, hotkeys }) =>\n Object.keys(hotkeys).map(categoryName => {\n const categoryValues = hotkeys[categoryName];\n const fullShortcutsLink = categoryValues[FULL_SHORTCUTS_LINK_PROP_NAME];\n\n return (\n <div className=\"mt-4 px-4\" key={categoryName}>\n <Typography style=\"h6\" textTransform=\"uppercase\" weight=\"bold\">\n {categoryName}\n </Typography>\n {Object.entries(categoryValues).map(\n ([, { sequence, description }]) =>\n sequence && <HotKey {...{ description, sequence }} key={sequence} />\n )}\n {fullShortcutsLink && (\n <Button\n className=\"mb-3\"\n href={fullShortcutsLink}\n style=\"link\"\n target=\"_blank\"\n label={t(\n \"neetoMolecules.keyboardShortcuts.viewFullListOfShortcuts\"\n )}\n />\n )}\n </div>\n );\n })\n);\n\nexport default memo(HotKeyList);\n","/* eslint-disable @bigbinary/neeto/use-webpack-alias */\nimport { Close } from \"@bigbinary/neeto-icons\";\nimport { Typography, Button } from \"@bigbinary/neetoui\";\nimport { manager } from \"@bigbinary/neetoui/managers\";\nimport classnames from \"classnames\";\nimport useHotkeys from \"neetohotkeys\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport HotKeyList from \"./HotKeyList\";\nimport \"./keyboard-shortcuts.scss\";\nimport { getGlobalShortcuts } from \"./utils\";\n\nimport useKeyboardShortcutsPaneState from \"../hooks/useKeyboardShortcutsPaneState\";\n\nconst KeyboardShortcutsPane = ({ productShortcuts = {} }) => {\n const [isOpen, setIsOpen] = useKeyboardShortcutsPaneState();\n const hasOverlays = manager.hasOverlays();\n // eslint-disable-next-line @bigbinary/neeto/no-dangling-constants\n const GLOBAL_SHORTCUTS = getGlobalShortcuts();\n const { t } = useTranslation();\n\n const shortcuts =\n GLOBAL_SHORTCUTS[t(\"neetoMolecules.keyboardShortcuts.global.categoryName\")];\n\n useHotkeys(shortcuts.openKeyboardShortcutsPane.sequence, () =>\n setIsOpen(prevIsOpen => !prevIsOpen)\n );\n\n useHotkeys(shortcuts.close.sequence, () => setIsOpen(false));\n\n return (\n <div\n data-cy=\"keyboard-shortcuts-pane\"\n className={classnames(\n \"neeto-molecules-keyboard-shortcuts-pane neeto-ui-border-gray-300 transition-width neeto-ui-bg-white ml-auto h-screen overflow-hidden border-l duration-300 ease-in-out\",\n {\n \"w-80\": isOpen,\n \"w-0\": !isOpen,\n absolute: hasOverlays,\n \"right-0\": hasOverlays,\n }\n )}\n >\n <div className=\"h-full w-80 overflow-y-auto\">\n <div className=\"neeto-ui-border-gray-300 my-2 flex items-center justify-between border-b px-4 pb-2\">\n <Typography data-cy=\"keyboard-shortcuts-pane-title\" style=\"h4\">\n {t(\"neetoMolecules.keyboardShortcuts.title\")}\n </Typography>\n <Button\n data-cy=\"keyboard-shortcuts-pane-close-button\"\n icon={Close}\n style=\"text\"\n onClick={() => setIsOpen(false)}\n />\n </div>\n <HotKeyList hotkeys={GLOBAL_SHORTCUTS} />\n <HotKeyList hotkeys={productShortcuts} />\n </div>\n </div>\n );\n};\n\nKeyboardShortcutsPane.propTypes = {\n /**\n * Used to pass in the product specific keyboard shortcuts.\n */\n productShortcuts: PropTypes.object,\n};\n\nexport default KeyboardShortcutsPane;\n","import useKeyboardShortcutsPaneState from \"./hooks/useKeyboardShortcutsPaneState\";\nimport KeyboardShortcutsPane from \"./Pane\";\nimport { getGlobalShortcuts } from \"./Pane/utils\";\n\nconst KeyboardShortcuts = {\n Pane: KeyboardShortcutsPane,\n usePaneState: useKeyboardShortcutsPaneState,\n GLOBAL_SHORTCUTS: getGlobalShortcuts(),\n};\n\nexport default KeyboardShortcuts;\n"],"names":["useKeyboardShortcutsStore","create","withImmutableActions","set","isOpen","setIsOpen","arg","state","useKeyboardShortcutsPaneState","_useKeyboardShortcuts","store","shallow","KEY_SHORTFORM_MAP","command","escape","control","option","MAC_TO_WINDOWS_KEYS_MAP","OS","mac","windows","FULL_SHORTCUTS_LINK_PROP_NAME","TOOLTIP_CONTENT","esc","ctrl","opt","backspace","isMultipleHotkey","hotkey","Array","isArray","replaceKeys","keyName","replaceWith","map","item","replaceAll","convertHotKeyToWindows","toPairs","forEach","_ref","_ref2","_slicedToArray","macKey","windowsKey","convertHotkeyToUsersPlatform","_platformInfo$os","platformInfo","platform","parse","navigator","userAgent","isOSX","os","family","includes","shortenHotKey","result","Object","entries","_ref3","_ref4","longform","shortform","getGlobalShortcuts","_defineProperty","i18next","t","openKeyboardShortcutsPane","sequence","description","close","submitForm","getTooltipProps","key","position","content","followCursor","HotKey","isSequentialHotkey","isSimultaneousHotkey","isSingleKeyHotkey","sequences","split","_jsx","className","children","_jsxs","Typography","lineHeight","style","idx","Fragment","Kbd","tooltipProps","length","memo","HotKeyList","withT","hotkeys","keys","categoryName","categoryValues","fullShortcutsLink","textTransform","weight","_ref3$","_createElement","Button","href","target","label","KeyboardShortcutsPane","_ref$productShortcuts","productShortcuts","_useKeyboardShortcuts2","hasOverlays","manager","GLOBAL_SHORTCUTS","_useTranslation","useTranslation","shortcuts","useHotkeys","prevIsOpen","classnames","absolute","icon","Close","onClick","KeyboardShortcuts","Pane","usePaneState"],"mappings":"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"}
@@ -191,7 +191,7 @@ var useOptionFields = function useOptionFields(_ref) {
191
191
  var valueToUpdate = isOnBlur ? editingOptionDetailsRef.current.value : value;
192
192
  var nextOptions = assocPath([index, "label"], valueToUpdate, options);
193
193
  setValue(nextOptions);
194
- onChange === null || onChange === void 0 ? void 0 : onChange(nextOptions);
194
+ onChange === null || onChange === void 0 || onChange(nextOptions);
195
195
  };
196
196
  var handleDelete = function handleDelete(id, arrayHelpers) {
197
197
  var nextOptions;
@@ -203,7 +203,7 @@ var useOptionFields = function useOptionFields(_ref) {
203
203
  arrayHelpers.remove(indexToDelete);
204
204
  nextOptions = attachPosition(remove(indexToDelete, 1, options));
205
205
  }
206
- onChange === null || onChange === void 0 ? void 0 : onChange(nextOptions);
206
+ onChange === null || onChange === void 0 || onChange(nextOptions);
207
207
  };
208
208
  var handleDragEnd = function handleDragEnd(_ref2) {
209
209
  var source = _ref2.source,
@@ -215,7 +215,7 @@ var useOptionFields = function useOptionFields(_ref) {
215
215
  var nextOptions = move(source.index, destination.index, filteredOptions);
216
216
  var finalOptions = attachPosition(nextOptions);
217
217
  setValue([].concat(_toConsumableArray(deletedOptions), _toConsumableArray(finalOptions)));
218
- onChange === null || onChange === void 0 ? void 0 : onChange([].concat(_toConsumableArray(deletedOptions), _toConsumableArray(finalOptions)));
218
+ onChange === null || onChange === void 0 || onChange([].concat(_toConsumableArray(deletedOptions), _toConsumableArray(finalOptions)));
219
219
  };
220
220
  var handleAddOption = function handleAddOption() {
221
221
  var id = randomId();
@@ -228,7 +228,7 @@ var useOptionFields = function useOptionFields(_ref) {
228
228
  setShouldFocus(true);
229
229
  var nextOptions = append(newOption, options);
230
230
  setValue(nextOptions);
231
- onChange === null || onChange === void 0 ? void 0 : onChange(nextOptions);
231
+ onChange === null || onChange === void 0 || onChange(nextOptions);
232
232
  };
233
233
  var handleBulkAddOption = function handleBulkAddOption(optionsString) {
234
234
  setShouldFocus(true);
@@ -243,7 +243,7 @@ var useOptionFields = function useOptionFields(_ref) {
243
243
  });
244
244
  var nextOptions = [].concat(_toConsumableArray(options), _toConsumableArray(newOptions));
245
245
  setValue(nextOptions);
246
- onChange === null || onChange === void 0 ? void 0 : onChange(nextOptions);
246
+ onChange === null || onChange === void 0 || onChange(nextOptions);
247
247
  };
248
248
  var handleKeyDown = function handleKeyDown(event) {
249
249
  if (event.key !== "Enter") return;
@@ -254,7 +254,7 @@ var useOptionFields = function useOptionFields(_ref) {
254
254
  isAddOptionEnabled && handleAddOption();
255
255
  } else {
256
256
  var _inputs;
257
- (_inputs = inputs[currentInput + 1]) === null || _inputs === void 0 ? void 0 : _inputs.focus();
257
+ (_inputs = inputs[currentInput + 1]) === null || _inputs === void 0 || _inputs.focus();
258
258
  event.preventDefault();
259
259
  }
260
260
  event.stopPropagation();
@@ -435,7 +435,7 @@ var InputOption = function InputOption(_ref) {
435
435
  },
436
436
  onBlur: function onBlur(event) {
437
437
  _onChange(id, event.target.value, true);
438
- _onBlur === null || _onBlur === void 0 ? void 0 : _onBlur(id, event.target.value);
438
+ _onBlur === null || _onBlur === void 0 || _onBlur(id, event.target.value);
439
439
  for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
440
440
  args[_key - 1] = arguments[_key];
441
441
  }
@@ -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=\"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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"}